text:
// Author: nikhilmadan@google.com (Nikhil Madan)

#include "net/instaweb/rewriter/public/lazyload_images_filter.h"

#include "net/instaweb/http/public/log_record.h"
#include "net/instaweb/rewriter/public/critical_images_finder.h"
#include "net/instaweb/rewriter/public/request_properties.h"
#include "net/instaweb/rewriter/public/rewrite_driver.h"
#include "net/instaweb/rewriter/public/rewrite_options.h"
#include "net/instaweb/rewriter/public/server_context.h"
#include "net/instaweb/rewriter/public/static_asset_manager.h"
#include "net/instaweb/util/public/fallback_property_page.h"
#include "pagespeed/kernel/base/string.h"
#include "pagespeed/kernel/base/string_util.h"
#include "pagespeed/kernel/html/html_element.h"
#include "pagespeed/kernel/html/html_name.h"
#include "pagespeed/kernel/html/html_node.h"
#include "pagespeed/kernel/http/data_url.h"
#include "pagespeed/kernel/http/google_url.h"
#include "pagespeed/kernel/http/request_headers.h"
#include "pagespeed/opt/logging/enums.pb.h"

namespace net_instaweb {

namespace {

const char kTrue[] = "true";
const char kFalse[] = "false";
const char kJquerySlider[] = "jquery.sexyslider";

}  // namespace

const char* LazyloadImagesFilter::kImageOnloadCode =
    "pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);";

const char* LazyloadImagesFilter::kLoadAllImages =
    "pagespeed.lazyLoadImages.loadAllImages();";

const char* LazyloadImagesFilter::kOverrideAttributeFunctions =
    "pagespeed.lazyLoadImages.overrideAttributeFunctions();";

const char* LazyloadImagesFilter::kIsLazyloadScriptInsertedPropertyName =
    "is_lazyload_script_inserted";

LazyloadImagesFilter::LazyloadImagesFilter(RewriteDriver* driver)
    : CommonFilter(driver) {
  Clear();
  blank_image_url_ = GetBlankImageSrc(
      driver->options(),
      driver->server_context()->static_asset_manager());
}
LazyloadImagesFilter::~LazyloadImagesFilter() {}

void LazyloadImagesFilter::DetermineEnabled(GoogleString* disabled_reason) {
  RewriterHtmlApplication::Status should_apply = ShouldApply(driver());
  set_is_enabled(should_apply == RewriterHtmlApplication::ACTIVE);
  if (!driver()->flushing_early()) {
    driver()->log_record()->LogRewriterHtmlStatus(
        RewriteOptions::FilterId(RewriteOptions::kLazyloadImages),
        should_apply);
  }
}

void LazyloadImagesFilter::StartDocumentImpl() {
  Clear();
}

void LazyloadImagesFilter::EndDocument() {
  driver()->UpdatePropertyValueInDomCohort(
      driver()->fallback_property_page(),
      kIsLazyloadScriptInsertedPropertyName,
      main_script_inserted_ ? "1" : "0");
}

void LazyloadImagesFilter::Clear() {
  skip_rewrite_ = NULL;
  main_script_inserted_ = false;
  abort_rewrite_ = false;
  abort_script_inserted_ = false;
  num_images_lazily_loaded_ = 0;
}

RewriterHtmlApplication::Status LazyloadImagesFilter::ShouldApply(
    RewriteDriver* driver) {
  // Note: there's similar UA logic in
  // DedupInlinedImagedFilter::DetermineEnabled, so if this logic changes that
  // logic may well require alteration too.
  if (!driver->request_properties()->SupportsLazyloadImages()) {
    return RewriterHtmlApplication::USER_AGENT_NOT_SUPPORTED;
  }
  if (driver->flushing_early() ||
      (driver->request_headers() != NULL &&
       driver->request_headers()->IsXmlHttpRequest())) {
    return RewriterHtmlApplication::DISABLED;
  }
  CriticalImagesFinder* finder =
      driver->server_context()->critical_images_finder();
  if (finder->Available(driver) == CriticalImagesFinder::kNoDataYet) {
    // Don't lazyload images on a page that's waiting for critical image data.
    // However, this page should later be rewritten when data arrives.  Contrast
    // this with the case where beaconing is explicitly disabled, and all images
    // are lazy loaded.
    return RewriterHtmlApplication::DISABLED;
  }
  return RewriterHtmlApplication::ACTIVE;
}

void LazyloadImagesFilter::StartElementImpl(HtmlElement* element) {
  if (noscript_element() != NULL) {
    return;
  }
  if (skip_rewrite_ == NULL) {
    if (element->keyword() == HtmlName::kNoembed ||
        element->keyword() == HtmlName::kMarquee) {
      skip_rewrite_ = element;
      return;
    }
    // Check if lazyloading is enabled for the given class name. If not,
    // skip rewriting all images till we reach the end of this element.
    HtmlElement::Attribute* class_attribute = element->FindAttribute(
        HtmlName::kClass);
    if (class_attribute != NULL) {
      StringPiece class_value(class_attribute->DecodedValueOrNull());
      if (!class_value.empty()) {
        GoogleString class_string;
        class_value.CopyToString(&class_string);
        LowerString(&class_string);
        if (!driver()->options()->IsLazyloadEnabledForClassName(
            class_string)) {
          skip_rewrite_ = element;
          return;
        }
      }
    }
  }
  if (element->keyword() == HtmlName::kScript) {
    // This filter does not currently work with the jquery slider. We just don't
    // rewrite the page in this case.
    HtmlElement::Attribute* src = element->FindAttribute(HtmlName::kSrc);
    if (src != NULL) {
      StringPiece url(src->DecodedValueOrNull());
      if (url.find(kJquerySlider) != StringPiece::npos) {
        abort_rewrite_ = true;
        return;
      }
    }
    InsertOverrideAttributesScript(element, true);
  }
}

void LazyloadImagesFilter::EndElementImpl(HtmlElement* element) {
  if (noscript_element() != NULL || skip_rewrite_ != NULL) {
    if (skip_rewrite_ == element) {
      skip_rewrite_ = NULL;
    }
    return;
  }
  if (abort_rewrite_) {
    if (!abort_script_inserted_ && main_script_inserted_) {
      // If we have already rewritten some elements on the page, insert a
      // script to load all previously rewritten images.
      HtmlElement* script = driver()->NewElement(element, HtmlName::kScript);
      driver()->AddAttribute(script, HtmlName::kType, "text/javascript");
      HtmlNode* script_code = driver()->NewCharactersNode(
          script, kLoadAllImages);
      driver()->InsertNodeAfterNode(element, script);
      driver()->AppendChild(script, script_code);
      abort_script_inserted_ = true;
    }
    return;
  }
  if (element->keyword() == HtmlName::kBody) {
    InsertOverrideAttributesScript(element, false);
    return;
  }
  // Only rewrite <img> tags. Don't rewrite <input> tags since the onload
  // event is not fired for them in some browsers.
  if (!driver()->IsRewritable(element) ||
      element->keyword() != HtmlName::kImg) {
    return;
  }

  HtmlElement::Attribute* src = element->FindAttribute(HtmlName::kSrc);
  if (src == NULL) {
    return;
  }

  StringPiece url(src->DecodedValueOrNull());
  if (url.empty() || IsDataUrl(url) ||
      element->FindAttribute(HtmlName::kPagespeedNoDefer) != NULL) {
    // TODO(rahulbansal): Log separately for pagespeed_no_defer.
    return;
  }
  AbstractLogRecord* log_record = driver()->log_record();
  if (!CanAddPagespeedOnloadToImage(*element) ||
      element->FindAttribute(HtmlName::kDataSrc) != NULL ||
      element->FindAttribute(HtmlName::kPagespeedLazySrc) != NULL) {
    log_record->LogLazyloadFilter(
        RewriteOptions::FilterId(RewriteOptions::kLazyloadImages),
        RewriterApplication::NOT_APPLIED, false, false);
    return;
  }
  // Decode the url if it is rewritten.
  GoogleUrl gurl(base_url(), url);
  StringVector decoded_url_vector;
  if (driver()->DecodeUrl(gurl, &decoded_url_vector) &&
      decoded_url_vector.size() == 1) {
    // We only handle the case where the rewritten url corresponds to
    // a single original url which should be sufficient for all cases
    // other than image sprites.
    gurl.Reset(decoded_url_vector[0]);
  }
  if (!gurl.IsAnyValid()) {
    // Do not lazily load images with invalid urls.
    return;
  }
  StringPiece full_url = gurl.Spec();
  if (full_url.empty()) {
    return;
  }
  if (!driver()->options()->IsAllowed(full_url)) {
    // Do not lazily load images with blacklisted urls.
    log_record->LogLazyloadFilter(
        RewriteOptions::FilterId(RewriteOptions::kLazyloadImages),
        RewriterApplication::NOT_APPLIED, true, false);
    return;
  }

  CriticalImagesFinder* finder =
      driver()->server_context()->critical_images_finder();
  // Note that if the platform lacks a CriticalImageFinder implementation, we
  // consider all images to be non-critical and try to lazily load them.
  // Similarly, if we have disabled data gathering for lazy load, we again lazy
  // load all images.  If, however, we simply haven't gathered enough data yet,
  // we consider all images to be critical and disable lazy loading (in
  // ShouldApply above) in order to provide better above-the-fold loading.
  if (finder->Available(driver()) == CriticalImagesFinder::kAvailable) {
    // Decode the url since the critical images in the finder are not
    // rewritten.
    if (finder->IsHtmlCriticalImage(full_url, driver())) {
      log_record->LogLazyloadFilter(
          RewriteOptions::FilterId(RewriteOptions::kLazyloadImages),
          RewriterApplication::NOT_APPLIED, false, true);
      // Do not try to lazily load this image since it is critical.
      return;
    }
  }
  if (!main_script_inserted_) {
    InsertLazyloadJsCode(element);
  }
  // Replace the src with pagespeed_lazy_src.
  driver()->SetAttributeName(src, HtmlName::kPagespeedLazySrc);
  // Rename srcset -> pagespeed_high_res_srcset
  HtmlElement::Attribute* srcset =
      element->FindAttribute(HtmlName::kSrcset);
  if (srcset != NULL) {
    driver()->SetAttributeName(srcset, HtmlName::kPagespeedLazySrcset);
  }
  driver()->AddAttribute(element, HtmlName::kSrc, blank_image_url_);
  log_record->LogLazyloadFilter(
      RewriteOptions::FilterId(RewriteOptions::kLazyloadImages),
      RewriterApplication::APPLIED_OK, false, false);
  // Add an onload function to load the image if it is visible and then do
  // the criticality check. Since we check CanAddPagespeedOnloadToImage
  // before coming here, the only onload handler that we would delete would
  // be the one added by our very own beaconing code. We re-introduce this
  // beaconing onload logic via kImageOnloadCode.
  // TODO(jud): Add these with addEventListener rather than with the attributes.
  element->DeleteAttribute(HtmlName::kOnload);
  driver()->AddAttribute(element, HtmlName::kOnload, kImageOnloadCode);
  // Add onerror handler just in case the temporary pixel doesn't load.
  element->DeleteAttribute(HtmlName::kOnerror);
  // Note: this.onerror=null to avoid infinitely repeating on failure:
  //   See: http://stackoverflow.com/questions/3984287
  driver()->AddAttribute(element, HtmlName::kOnerror,
                         StrCat("this.onerror=null;", kImageOnloadCode));
  ++num_images_lazily_loaded_;
}

void LazyloadImagesFilter::InsertLazyloadJsCode(HtmlElement* element) {
  if (!driver()->is_lazyload_script_flushed()) {
    HtmlElement* script = driver()->NewElement(element, HtmlName::kScript);
    driver()->InsertNodeBeforeNode(element, script);
    StaticAssetManager* static_asset_manager =
        driver()->server_context()->static_asset_manager();
    GoogleString lazyload_js = GetLazyloadJsSnippet(
        driver()->options(), static_asset_manager);
    AddJsToElement(lazyload_js, script);
    driver()->AddAttribute(script, HtmlName::kPagespeedNoDefer, NULL);
  }
  main_script_inserted_ = true;
}

void LazyloadImagesFilter::InsertOverrideAttributesScript(
    HtmlElement* element, bool is_before_script) {
  if (num_images_lazily_loaded_ > 0) {
    HtmlElement* script = driver()->NewElement(element, HtmlName::kScript);
    driver()->AddAttribute(script, HtmlName::kType, "text/javascript");
    driver()->AddAttribute(script, HtmlName::kPagespeedNoDefer, NULL);
    HtmlNode* script_code = driver()->NewCharactersNode(
        script, kOverrideAttributeFunctions);
    if (is_before_script) {
      driver()->InsertNodeBeforeNode(element, script);
    } else {
      driver()->AppendChild(element, script);
    }
    driver()->AppendChild(script, script_code);
    num_images_lazily_loaded_ = 0;
  }
}

GoogleString LazyloadImagesFilter::GetBlankImageSrc(
    const RewriteOptions* options,
    const StaticAssetManager* static_asset_manager) {
  const GoogleString& options_url = options->lazyload_images_blank_url();
  if (options_url.empty()) {
    return static_asset_manager->GetAssetUrl(StaticAssetEnum::BLANK_GIF,
                                             options);
  } else {
    return options_url;
  }
}

GoogleString LazyloadImagesFilter::GetLazyloadJsSnippet(
    const RewriteOptions* options,
    StaticAssetManager* static_asset_manager) {
  const GoogleString& load_onload =
      options->lazyload_images_after_onload() ? kTrue : kFalse;
  StringPiece lazyload_images_js =
      static_asset_manager->GetAsset(
          StaticAssetEnum::LAZYLOAD_IMAGES_JS, options);
  const GoogleString& blank_image_url =
      GetBlankImageSrc(options, static_asset_manager);
  GoogleString lazyload_js =
      StrCat(lazyload_images_js, "\npagespeed.lazyLoadInit(",
             load_onload, ", \"", blank_image_url, "\");\n");
  return lazyload_js;
}

}  // namespace net_instaweb


text:
Posted on May 22, 2019 by Fairborn Daily Herald
Beavercreek girls set regional meet record
Rain doesn't stop athletes from advancing to state
By John Bombatch - jbombatch@aimmediamidwest.com
The Beavercreek girls 3,200-meter relay team of (left-to-right) Juliann Williams, Savannah Roark, Jodie Pierce and Taylor Ewert smashed the previous regional meet record in Wednesday's final at Heidkamp Stadium at Huber Heights Wayne High School. Beavercreek beat the previous mark by more than 10 seconds.
Xenia's Meaghan Wakefield receives her second-place medal in the Division I girls high jump, May 22, in Huber Heights.
Beavercreek senior Riley Buchholz battles for the early lead with a Cincinnati St. Xavier runner, May 22, in the Division I boys 3,200-meter final, at Heidkamp Stadium in Huber Heights.
Beavercreek senior Tyler Wasson clears a personal-best 14 feet, 3 inches in the Division I boys pole vault competition to finish fifth overall, May 22 in Huber Heights.
A member of the Wayne High School Athletic Department runs a mechanized blow dryer down the front stretch in hopes of drying the track for the day's running events, May 22 at Heidkamp Stadium in Huber Heights.
HUBER HEIGHTS — Records fell and some area athletes booked trips to the state championships following a soggy first day of the Division I regional track & field championships at Wayne High School's Heidkamp Stadium.
Competing in the girls 3,200-meter relay final, the Beavercreek quartet of Juliann Williams, Savannah Roark, Jodie Pierce and Taylor Ewert obliterated the previous regional meet record by more than 10 seconds. Beavercreek won the event in a new-record time of 9 minutes, 0.46 seconds, to easily surpass the 2017 mark of 9:10.81 set by Mason.
Another Greene County-area student athlete headed to the state meet in Columbus will be Xenia's Meaghan Wakefield, who tied Monroe's Jenna Hensley for second place overall in the High Jump with a leap of 5 feet, 2 inches.
According to the Greater Western Ohio Conference website, Wednesday's leap is not Wakefield's season best. She cleared 5-3 at an earlier meet.
The top-4 finishers in each final will qualify for next weekend's state championships at the famed Jesse Owens Memorial Stadium on the Ohio State University campus.
'Creek's Tyler Wasson vaulted to a potential personal-best clearance of 14 feet, 3 inches to finish fifth in the D-I boys pole vault final, and Carroll's Brady Obleness cleared the 14-feet mark to place eighth, in what also appeared to be a personal-best finish.
Among other area athletes competing in event finals, Bellbrook's Naika Nagy placed 13th in the girls high jump, Fairborn's Joshua Greene was 11th in the long jump, Carroll's David Litteral placed eighth in the discus final, and the Beavercreek boys 3,200-meter relay team of Riley Buchholz, Mark Boyd, Connor Ewert and Caleb Russell finished 11th as well.
In Wednesday's preliminary heats, several area athletes were among the top-8 finishers to move on to Friday's finals.
Donovan LaJeunesse of Carroll qualified to the Friday finals in both the boys 110- and 300-meter hurdles events. Beavercreek's Abigail Hobbs finished fourth in the 400-meter prelims to advance, and Hobbs, Ashtyn Gluck, Jodie Pierce and Julianna Williams placed third in the girls 1,600-meter relay to also advance.
Area athletes competing in Friday field event finals are Carroll's Aaron Cooper (High Jump) and Litteral (Shot Put), Beavercreek's Eileen Yang (Pole Vault) and Xenia's Camille Hughes (Discus).
The Division I regional championships resume on Friday, May 24. Field events are scheduled to begin at 4:30 p.m. with running finals set for a 6 o'clock start.
https://www.fairborndailyherald.com/wp-content/uploads/sites/50/2019/05/web1_CreekG3200Relay_PS.jpgThe Beavercreek girls 3,200-meter relay team of (left-to-right) Juliann Williams, Savannah Roark, Jodie Pierce and Taylor Ewert smashed the previous regional meet record in Wednesday's final at Heidkamp Stadium at Huber Heights Wayne High School. Beavercreek beat the previous mark by more than 10 seconds.
https://www.fairborndailyherald.com/wp-content/uploads/sites/50/2019/05/web1_WakefieldMedal_PS.jpgXenia's Meaghan Wakefield receives her second-place medal in the Division I girls high jump, May 22, in Huber Heights.
https://www.fairborndailyherald.com/wp-content/uploads/sites/50/2019/05/web1_BuchholzX3200_PS.jpgBeavercreek senior Riley Buchholz battles for the early lead with a Cincinnati St. Xavier runner, May 22, in the Division I boys 3,200-meter final, at Heidkamp Stadium in Huber Heights.
https://www.fairborndailyherald.com/wp-content/uploads/sites/50/2019/05/web1_WassonPVault_PS.jpgBeavercreek senior Tyler Wasson clears a personal-best 14 feet, 3 inches in the Division I boys pole vault competition to finish fifth overall, May 22 in Huber Heights.
https://www.fairborndailyherald.com/wp-content/uploads/sites/50/2019/05/web1_BlowDryer_PS.jpgA member of the Wayne High School Athletic Department runs a mechanized blow dryer down the front stretch in hopes of drying the track for the day's running events, May 22 at Heidkamp Stadium in Huber Heights.
By John Bombatch
jbombatch@aimmediamidwest.com
Contact John Bombatch at 937-372-4444, Ext. 2123.
Hi! A visitor to our site felt the following article might be of interest to you: Beavercreek girls set regional meet record. Here is a link to that story: https://www.fairborndailyherald.com/sports/35272/beavercreek-girls-set-regional-meet-record

redpajama_set_name: RedPajamaCommonCrawl


Next Meeting: Wed, April 10, 7:30 AM at Flag Hill Distillery & Winery in Lee, NH. Guest Speaker : Steve Turner, "Bring Back the Trades".
Upcoming meeting: Wed, April 17, 7:30 AM at Flag Hill Distillery & Winery in Lee, NH. Club Forum.
Durham Great Bay Rotary will be hosting the Independence Day Celebration and Fireworks in July of 2019 at Wildcat Stadium in Durham in conjunction with the University of NH and the Town of Durham. Great photos from last year's evening are on our Facebook page and can be seen on this website as well in the Photo Albums section. Thanks to all who participated and attended and thank you to all the great sponsors! We have some great opportunities for other organizations to participate and/or for sponsorship opportunities - Contact Us to find out more!
Our members do great things - serving in the military for our country, free home repairs for those with need in the community, volunteering with the Red Cross on relief efforts in NC, raising funds to eradicate Polio once and for all and countless other activities to serve our local and international community! We're still looking for more great men and women who enjoy friendship, service and being part of the community you live in. Contact info@durhamgreatbayrotary.org today!
Our club is growing! We have so many exciting things going on this year! Want to know a little more about Rotary, shoot us an email using our Contact Us page!


As tortoises begin to emerge sleepily into the bright spring, their owners are being warned to lock them up and install CCTV in the garden because thefts soared last year. 'Rare pets mean top prices, and that's the lure,' explains John Hayward, co-ordinator of the National Theft Register. He advises tortoise owners to take detailed photographs of their animals and have them microchipped.
Tortoise charities say the Government has failed to halt the growth of illegal imports, apparently chiefly from Slovenia; the Tortoise Protection Group is to present Defra with a petition to ban imports (www.tortoise-protection-group.org.uk).


The 18-hole "Linden" course at the Linden Country Club facility in Linden, Alabama features 6,336 yards of golf from the longest tees for a par of 72 . Designed by Neil R. Bruce, the Linden golf course opened in 1969.
The course has two ponds that come into play twice, and the several dogleg fairways will force the average golfer to make some real skill shots.
Host your outing at Linden Country Club. Click the link below to go directly to their tournament and outing information page. Or call them at .


Wonderful News! Intergalactic Medicine Show bought my story The Late Mr. Folsom's Luminosity Shop, and will be publishing it in October! I'm so excited to finally share the story of Florence Leilani Folsom and Oren Honeydew! This story merges my long standing love for luminescent jelly-mermaids, and delight for heroic low-level bureaucrats.


American Heart Association wants hearts to keep beating — and for everyone to live a long and healthy life.
The American Heart Association wants hearts to keep beating — and for everyone to live a long and healthy life.
With that in mind, the West TN area American Heart Association held its third annual "Feast In the Field" at the Farm at Casey Jones Village. West Tennessee area donors and volunteers joined AHA staff Oct. 16 at the Casey Jones Village Teaching Gardens for heart-healthy food, live music and an inspirational message from the American Heart Association.
At the annual event, Jeff Agee, CEO of First Citizens National Bank, and Larry White, CEO of White & Associates Insurance and White & Associates Home Assistance, spoke about the importance of workplace wellness and how the health of their employees plays a vital role in their success.
The American Heart Association knows building a healthy workplace and encouraging a healthy workforce can lead to increased productivity, less absenteeism, and health-spend savings for employees and employers, according to a press release. During the evening the AHA shared with donors, volunteers, and supporters how AHA benefits the local West TN community not just through research and education, but also their programs, and highlighted the resources available to all West Tennessee employers — at no cost.
"I'm so proud of the work of this organization. We work for all to have healthier lives free of cardiovascular disease and stroke, and we are thankful to our supporters for helping us move the needle, specifically here in West Tennessee," Futrell added.
The American Heart Association is devoted to saving people from heart disease and stroke – America's No. 1 and No. 5 killers. We team with millions of volunteers to fund innovative research, fight for stronger public health policies, and provide lifesaving tools and information to prevent and treat these diseases. The Dallas-based association is the nation's oldest and largest voluntary organization dedicated to fighting heart disease and stroke. To learn more or to get involved, call 1-800-AHA-USA1, visit heart.org or call any of our offices around the country.


text:
Lori 1 Wind Farm is a wind farm in Armenia located along the Bazum Mountains at Pushkin Pass in Lori, Armenia.  It is the country's only wind farm. The wind farm consists of four 660-kW wind turbines and has a capacity of 2.64 MWe.  Completed in December 2005 by the Iranian company Sunir with US$3.2 million funding from Iran, it is owned by the High-Voltage Electric Networks of Armenia.  In 2006, the Lori 1 generated only 2.6 GWh of electricity (a yearly average of 296.8 KWe—about 11% of installed capacity).

The Armenian and Iranian authorities have agreed to expand the wind farm up to 90 MW.

References

Wind farms in Armenia
Armenia–Iran relations
Articles containing video clips

redpajama_set_name: RedPajamaWikipedia


In this final week, in Module 8, we ask you to reflect on your learning in the course and particularly on the use of progressions and developmental thinking in the way C21 skills are taught and assessed. If you submitted an Assignment in Week 5, you will assess the work of your peers in the major Assignment.
Well, here we are at week six.
It seems to have gone by very quickly.
We have had lots and lots of discussion on the forum.
And we've looked at the first assignment.
We are about to look at the second assignment.
the conversations that you've had on the forum.
we remember that what we've been doing is really telling a story in this mook.
of education in the 21st century as we move more into a digital type age.
explore education, the way in which we identify what people have learned.
So we started out by exploring a developmental model.
And explaining the difference between a development and a deficit bottle.
to higher levels of learning, or deeper learning and deeper understanding.
development assessment in that kind of framework.
needed in the 21st century.
solving through a composite type of skill called collaborative problem solving.
We then began to explore the differences between collaboration and cooperation.
Let's just summarize that for a moment.
unless every member of the group participates.
every member of the group controls a piece of information, a resource, a product.
And they have to like, build a jigsaw puzzle to put those things together.
So everybody has to participate.
We then looked at how we might describe these skills using a developmental model.
And we introduced a different way of reporting.
in terms of a skill that people were ready to learn.
it became a natural progression to move on to, how do we teach that.
And then we started to talk with teachers about how they worked in their classrooms.
And with Yaso, who was researching that type of information.
any one of the strands through teaching intervention strategy.
we communicate that assessment, needs to be based on something other than a score.


text:
Q: To which group is $Gal(\mathbb{Q}(i+\sqrt{2}):\mathbb{Q})$ isomorphic I am trying to see to which group $Gal(\mathbb{Q}(i+\sqrt{2}):\mathbb{Q})$ is isomorphic to. I have shown that the order of the group is $4$ and so it must be isomorphic either to the klein group or the cyclic group of order $4$ but I am not sure how to see which one it is?

A: You can immediately see two intermediate fields, namely $\mathbb Q(i)$ and $\mathbb Q(\sqrt{2})$ (Of course there is a third, but who cares...). Thus the galois group has at least two subgroups of order two. Hence it cannot be cyclic. The correct answer is the klein group.

A: Klein four group has a property that $\forall v\in\textbf{V}, v*v=e$, it's easy to check that $Gal(\mathbb{Q}(i, \sqrt{2}):\mathbb{Q})$ satisfies this condition for sure.

A: An idea for you to mull (fill in details): since
$$(\sqrt2+i)(\sqrt2-i)=3\implies\sqrt2-i=\frac3{\sqrt2+i}\in\Bbb Q(\sqrt2+i)$$
and thus also
$$(\sqrt2+i)+(\sqrt2-i)=2\sqrt2\implies \sqrt2\in \Bbb Q(\sqrt2+i)$$
and likewise $\;i\in\Bbb Q(\sqrt2+i)\;$ , so $\;\Bbb Q(\sqrt2,i)=\Bbb Q(\sqrt2+i)\;$ (details)...

redpajama_set_name: RedPajamaStackExchange


text:
Prince Estate Claims Legal Victory in Battle Over Unreleased Music
Jacinta Howard Published: January 29, 2018
In the latest episode in the never-ending saga regarding Prince's music the late icon's estate says it won a legal battle with the sound engineer who's fighting to put out unreleased music, according to TMZ.
Documents filed by the estate say that sound engineer George Boxill failed to respond to the estate's lawsuit and is now asking a court to declare them the winner's of the battle.
Back in April 2017, Prince's estate and Paisley Park filed a federal lawsuit against sound engineer George Ian Boxill for control of the six Deliverance tracks featured on Prince's then unreleased Deliverance EP. The lawsuit reportedly estimated the value of the recordings at over $75,000. The six-song EP included tracks recorded between 2006-2008.
Boxill had until Jan. 23 to respond to the estate's lawsuit, which aimed to keep him from releasing the music. The estate says he failed to respond. If the court signs off the estate's request, he won't be able to release the music.
In other Prince news, the estate has its own plans to drop new, previously unreleased music soon. Additionally, the Prince Estate is planning to celebrate the Purple One with a four-day memorial extravaganza in his native hometown of Minneapolis in April. The highlight of the festivities is a live concert presentation titled Prince: Live on the Big Screen at the Target Center on April 21.
EVERY PRINCE ALBUM RANKED
Source: Prince Estate Claims Legal Victory in Battle Over Unreleased Music
Filed Under: prince
TONIGHT! Two-Hour Prince Tribute On CBS on the 4-Year Anniversary of His Death
12 Celebrities Who Tragically Lost a Child
Eazy-E Clowns Dr. Dre: Oct. 19 in Hip-Hop History
Prince's 'Dirty Mind': A Guide to Every Track
'Soul Train' Is Ready to Board, Ja Rule and More: October 2 In Hip-Hop History
Prince's 'The Gold Experience': A Guide to Every Track
2Pac Asks 'How Long Will They Mourn Me?': Sept. 26 in Hip-Hop History
Prince Can't Wait Until 'Wednesday'
Prince Explores His Gospel Roots With 'Mary Don't You Weep'


text:
Govt to build more green expressways : Nitin Gadkari
The government will be building 26 green expressways in the country in the next three years and India's road infrastructure will be as good as that in the United States by 2024, Transport minister Nitin Gadkari told Rajya Sabha on Wednesday.
Replying to supplementaries during the Question Hour, the minister said there is no shortage of funds with the National Highways Authority of India (NHAI) which has AA rating and is financially very sound.
He said the NHAI can build five lakh km roads in a year.
"In the next three years, we are building 26 green expressways," he said, adding that one can travel from Delhi to Dehradun, Haridwar or Jaipur in two hours thereafter.
He also claimed that once the expressways are built, one can travel from Delhi to Chandigarh in 2.5 hours, Delhi to Amritsar in four hours, Delgi to Katra in six hours, Delhi to Srinagar in eight hours and Delhi to Mumbai in 12 hours and Chennai to Bengaluru in two hours.
It used to earlier take 4.5 hours to travel from Meerut to Delhi but now people are coming in 40 minutes, he claimed.
"Under Narendra Modi's leadership before 2024, India's road infrastructure will be the same as that in the United States, I promise. There is no shortage of funds," Gadkari said, adding, we will change the entire infrastructure of the country.
Previous articleIndia's services sector growth falls to 4-month low in July
Next articleEx-Cong leader Kuldeep Bishnoi to join BJP
Bharat Bandh: Congress Party president kick-start protest from Rajghat, Delhi
Opportunities being created to make farmers entrepreneurs: PM Modi
Encountering prowess must not be misused
Lucknow: Sonakshi Sinha holds roadshow for mother Poonam Sinha
Rahul Gandhi targets PM Modi, says 'India is reeling under Modi-made...
Kejriwal seeks appointment with Shah over killing of Kashmiri Pandits in...
INX media case: SC allows Karti Chidambaram to travel abroad, asks...
Amid opposition walkout, Rajnath Singh says no question of mediation on...


text:
Подкасты на тему CISSP
CISSP открытые [search 0]
CISSP Training
CyberSecStudy
CyberSecStudy is the most efficient and effective way to prepare for the CISSP exam. Add audio to your study process and gain a new perspective.
Certified Information System Security Professional Training(CISSP)
Disha Agrawal
Byte sized episodes to study for CISSP exam.
CISSP Training - Domain 1 - Lecture 23 6:05
Hey Guys!!! Welcome to episode 23 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the different types of intellectual property protection. Link to my novel - https://my.w.tt/FYFG473rF9 Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https:…
Hey Guys!!! Welcome to episode 21 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the import and export controls. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 20 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the import and export controls. The link to the image - https://docs.google.com/document/d/1pxSJfnl1NGiWBbD4pGeaeZaBRXmO8oUwo04wbDduSyM/edit?usp=sharing Do subscribe to my patreon to get access to written lecture notes…
Hey Guys!!! Welcome to episode 19 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the common legal system. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 18 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about privacy compliance and legal systems around the world. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and…
Hey Guys!!! Welcome to episode 17 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about privacy compliance. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 16 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about what are some of the compliance that we might need to be in compliance with. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/security…
Hey Guys!!! Welcome to episode 15 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about what are some of the available control frameworks that we can use to establish our framework for governance. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. …
Hey Guys!!! Welcome to episode 14 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about what are all the things our policy documents must comprehensively describe. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityi…
Hey Guys!!! Welcome to episode 13 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about each policy document must contain. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 12 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the different types of policy documents in the framework of governance. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinmin…
Hey Guys!!! Welcome to episode 11 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the current status of security in enterprises and what drives our security program. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/s…
Hey Guys!!! Welcome to episode 10 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the components of the security program in detail. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have…
CISSP Training - Domain 1 - Lecture 9 2:56
Hey Guys!!! Welcome to episode 9 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the governance through the security program in an enterprise. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thanky…
Hey Guys!!! Welcome to episode 8 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the framework for governance. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 7 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the types of countermeasures/controls. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!…
Hey Guys!!! Welcome to episode 6 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the threat of litigation. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 5 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the different threats that affect the CIA of our data or asset. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Than…
CISSP Training- Domain 1 - Lecture 4 3:52
Hey Guys!!! Welcome to episode 4 of this byte-sized tutorial series for CISSP training. In today's episode, we'll be talking about the different types of threats. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Hey Guys!!! Welcome to episode 3 of this byte-sized tutorial series for CISSP training. In this episode we'll be talking about the common risk terminologies and try to understand what risk is. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thanky…
Hey Guys!!! Welcome to episode 2 of this byte-sized CISSP training. In this episode we'll be talking about the CIA triad of security. Do subscribe to my patreon to get access to written lecture notes and to clear any doubts. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!
Hey Guys!! Welcome to episode 1 of CISSP training. Today we'll be discussing about why we need security and what assets are. Do subscribe to my patreon to get access to written lecture notes for quick revision and to clear any doubts that you may have. https://www.patreon.com/securityinminutes Thankyou and have a nice day!!!…
Introduction to CISSP tutorial series - EP 0 3:04
Hello Guys!!! This is a series of byte-sized tutorials that'll help you prepare for the CISSP Exam. The episode will small and literally byte-sized so that you can listen to them quickly while doing other things. Do subscribe to my patreon for any doubts and exclusive access to written lecture-wise notes. https://www.patreon.com/securityinminutes T…
D1E1 - Security & Risk Management - Free Version 10:27
Domain #1 Episode #1 - CISSP
D2E1 - Asset Security - Free Version 10:31
D3E1 - Security Engineering - Free Version 10:21
D3E3 - Security Engineering - Free Version 9:55


text:
require 'rails_helper'

describe PurchaseRequestsController do
  fixtures :all

  describe 'GET index', solr: true do
    before do
      PurchaseRequest.reindex
    end

    describe 'When logged in as Administrator' do
      login_fixture_admin

      it 'assigns all purchase_requests as @purchase_requests' do
        get :index
        assigns(:purchase_requests).should_not be_empty
      end
    end

    describe 'When logged in as Librarian' do
      login_fixture_librarian

      it 'assigns all purchase_requests as @purchase_requests' do
        get :index
        assigns(:purchase_requests).total_entries.should eq PurchaseRequest.count
        assigns(:purchase_requests).should_not be_empty
      end

      it "should get other user's index with user_id" do
        get :index, params: { user_id: users(:user1).username }
        response.should be_successful
        assigns(:purchase_requests).total_entries.should eq users(:user1).purchase_requests.count
        assigns(:purchase_requests).should_not be_empty
      end

      it "should get other user's index with order_list_id" do
        get :index, params: { order_list_id: 1 }
        response.should be_successful
        assigns(:purchase_requests).total_entries.should eq order_lists(:order_list_00001).purchase_requests.count
        assigns(:purchase_requests).should_not be_empty
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      it 'assigns my purchase_requests as @purchase_requests' do
        get :index
        assigns(:purchase_requests).should_not be_empty
      end

      it 'should be get my index without user_id' do
        get :index
        assigns(:purchase_requests).should eq users(:user1).purchase_requests
        assigns(:purchase_requests).total_entries.should eq users(:user1).purchase_requests.count
        response.should be_successful
      end

      it 'should get my index' do
        get :index, params: { user_id: users(:user1).username }
        response.should redirect_to purchase_requests_url
        assigns(:purchase_requests).should be_nil
      end

      it 'should not get index with order_list_id' do
        get :index, params: { order_list_id: 1 }
        response.should be_forbidden
        assigns(:purchase_requests).should be_nil
      end

      it 'should get my index in csv format' do
        get :index, params: { user_id: users(:user1).username, format: 'csv' }
        response.should redirect_to purchase_requests_url(format: :csv)
        assigns(:purchase_requests).should be_nil
      end

      it 'should get my index in rss format' do
        get :index, params: { user_id: users(:user1).username, format: 'rss' }
        response.should redirect_to purchase_requests_url(format: :rss)
        assigns(:purchase_requests).should be_nil
      end

      it "should not get other user's index" do
        get :index, params: { user_id: users(:librarian1).username }
        response.should be_forbidden
      end
    end

    describe 'When not logged in' do
      it 'assigns empty as @purchase_requests' do
        get :index
        assigns(:purchase_requests).should be_nil
        response.should redirect_to(new_user_session_url)
      end
    end
  end

  describe 'GET show' do
    before(:each) do
      @purchase_request = purchase_requests(:purchase_request_00003)
    end

    describe 'When logged in as Administrator' do
      login_admin

      it 'assigns the requested purchase_request as @purchase_request' do
        get :show, params: { id: @purchase_request.id }
        assigns(:purchase_request).should eq(@purchase_request)
      end
    end

    describe 'When logged in as Librarian' do
      login_fixture_librarian

      it 'assigns the requested purchase_request as @purchase_request' do
        get :show, params: { id: @purchase_request.id }
        assigns(:purchase_request).should eq(@purchase_request)
      end

      it 'should show purchase_request without user_id' do
        get :show, params: { id: purchase_requests(:purchase_request_00002).id }
        response.should be_successful
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      it 'assigns the requested purchase_request as @purchase_request' do
        get :show, params: { id: @purchase_request.id }
        assigns(:purchase_request).should eq(@purchase_request)
      end

      it 'should show my purchase request' do
        get :show, params: { id: @purchase_request.id }
        response.should be_successful
      end

      it "should not show other user's purchase request" do
        get :show, params: { id: purchase_requests(:purchase_request_00001).id }
        response.should be_forbidden
      end

      render_views
      it 'should not show add or delete order link' do
        get :show, params: { id: @purchase_request.id }
        response.should be_successful
        response.body.should_not match /\/order\/new/
        response.body.should_not match /delete.*\/order/
      end
    end

    describe 'When not logged in' do
      it 'assigns the requested purchase_request as @purchase_request' do
        get :show, params: { id: @purchase_request.id }
        assigns(:purchase_request).should eq(@purchase_request)
        response.should redirect_to new_user_session_url
      end
    end
  end

  describe 'GET new' do
    describe 'When logged in as Administrator' do
      login_admin

      it 'assigns the requested purchase_request as @purchase_request' do
        get :new
        assigns(:purchase_request).should_not be_valid
        response.should be_successful
      end
    end

    describe 'When logged in as Librarian' do
      login_fixture_librarian

      it 'should not assign the requested purchase_request as @purchase_request' do
        get :new
        assigns(:purchase_request).should_not be_valid
        response.should be_successful
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      it 'should not assign the requested purchase_request as @purchase_request' do
        get :new
        assigns(:purchase_request).should_not be_valid
        response.should be_successful
      end
    end

    describe 'When not logged in' do
      it 'should not assign the requested purchase_request as @purchase_request' do
        get :new
        assigns(:purchase_request).should be_nil
        response.should redirect_to(new_user_session_url)
      end
    end
  end

  describe 'GET edit' do
    describe 'When logged in as Administrator' do
      login_fixture_admin

      it 'should assign the requested purchase_request as @purchase_request' do
        get :edit, params: { id: purchase_requests(:purchase_request_00001).id }
        assigns(:purchase_request).should eq(purchase_requests(:purchase_request_00001))
        response.should be_successful
      end
    end

    describe 'When logged in as Librarian' do
      login_fixture_librarian

      it 'should assign the requested purchase_request as @purchase_request' do
        get :edit, params: { id: purchase_requests(:purchase_request_00001).id }
        assigns(:purchase_request).should eq(purchase_requests(:purchase_request_00001))
        response.should be_successful
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      it 'should edit my purchase_request' do
        get :edit, params: { id: purchase_requests(:purchase_request_00003).id }
        response.should be_successful
      end

      it "should not edit other user's purchase_request" do
        get :edit, params: { id: purchase_requests(:purchase_request_00002).id }
        response.should be_forbidden
      end
    end

    describe 'When not logged in' do
      it 'should not assign the requested purchase_request as @purchase_request' do
        get :edit, params: { id: purchase_requests(:purchase_request_00001).id }
        response.should redirect_to new_user_session_url
      end
    end
  end

  describe 'POST create' do
    before(:each) do
      @attrs = FactoryBot.attributes_for(:purchase_request)
      @invalid_attrs = { title: '' }
    end

    describe 'When logged in as Administrator' do
      login_fixture_admin

      describe 'with valid params' do
        it 'assigns a newly created purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @attrs }
          assigns(:purchase_request).should be_valid
        end

        it 'redirects to the created purchase_request' do
          post :create, params: { purchase_request: @attrs }
          response.should redirect_to(purchase_request_url(assigns(:purchase_request)))
        end
      end

      describe 'with invalid params' do
        it 'assigns a newly created but unsaved purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @invalid_attrs }
          assigns(:purchase_request).should_not be_valid
        end

        it "re-renders the 'new' template" do
          post :create, params: { purchase_request: @invalid_attrs }
          response.should render_template('new')
        end
      end
    end

    describe 'When logged in as Librarian' do
      login_fixture_librarian

      describe 'with valid params' do
        it 'assigns a newly created purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @attrs }
          assigns(:purchase_request).should be_valid
        end

        it 'redirects to the created purchase_request' do
          post :create, params: { purchase_request: @attrs }
          response.should redirect_to(purchase_request_url(assigns(:purchase_request)))
        end
      end

      describe 'with invalid params' do
        it 'assigns a newly created but unsaved purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @invalid_attrs }
          assigns(:purchase_request).should_not be_valid
        end

        it "re-renders the 'new' template" do
          post :create, params: { purchase_request: @invalid_attrs }
          response.should render_template('new')
        end
      end

      it "should create purchase_request with other user's user_id" do
        post :create, params: { purchase_request: { title: 'test', user_id: users(:user1).id } }
        response.should redirect_to purchase_request_url(assigns(:purchase_request))
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      describe 'with valid params' do
        it 'assigns a newly created purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @attrs }
          assigns(:purchase_request).should be_valid
        end

        it 'redirects to the created purchase_request' do
          post :create, params: { purchase_request: @attrs }
          response.should redirect_to(purchase_request_url(assigns(:purchase_request)))
        end
      end

      describe 'with invalid params' do
        it 'assigns a newly created but unsaved purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @invalid_attrs }
          assigns(:purchase_request).should_not be_valid
        end

        it "re-renders the 'new' template" do
          post :create, params: { purchase_request: @invalid_attrs }
          response.should render_template('new')
        end
      end

      it 'should create purchase_request without user_id' do
        post :create, params: { purchase_request: { title: 'test', user_id: users(:user1).id, pub_date: 2010 } }
        assigns(:purchase_request).date_of_publication.should eq Time.zone.parse('2010-01-01')
        response.should redirect_to purchase_request_url(assigns(:purchase_request))
      end
    end

    describe 'When not logged in' do
      describe 'with valid params' do
        it 'assigns a newly created purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @attrs }
          assigns(:purchase_request).should be_nil
        end

        it 'should redirect to new_user_session_url' do
          post :create, params: { purchase_request: @attrs }
          response.should redirect_to(new_user_session_url)
        end
      end

      describe 'with invalid params' do
        it 'assigns a newly created but unsaved purchase_request as @purchase_request' do
          post :create, params: { purchase_request: @invalid_attrs }
          assigns(:purchase_request).should be_nil
        end

        it 'should redirect to new_user_session_url' do
          post :create, params: { purchase_request: @invalid_attrs }
          response.should redirect_to(new_user_session_url)
        end
      end
    end
  end

  describe 'PUT update' do
    before(:each) do
      @purchase_request = purchase_requests(:purchase_request_00001)
      @attrs = FactoryBot.attributes_for(:purchase_request)
      @invalid_attrs = { title: '' }
    end

    describe 'When logged in as Administrator' do
      before(:each) do
        @user = FactoryBot.create(:admin)
        sign_in @user
      end

      describe 'with valid params' do
        it 'updates the requested purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
        end

        it 'assigns the requested purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
          assigns(:purchase_request).should eq(@purchase_request)
          response.should redirect_to purchase_request_url(assigns(:purchase_request))
        end
      end

      describe 'with invalid params' do
        it 'assigns the requested purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @invalid_attrs }
        end

        it "re-renders the 'edit' template" do
          put :update, params: { id: @purchase_request.id, purchase_request: @invalid_attrs }
          response.should render_template('edit')
        end
      end
    end

    describe 'When logged in as Librarian' do
      before(:each) do
        @user = FactoryBot.create(:librarian)
        sign_in @user
      end

      describe 'with valid params' do
        it 'updates the requested purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
        end

        it 'assigns the requested purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
          assigns(:purchase_request).should eq(@purchase_request)
          response.should redirect_to purchase_request_url(assigns(:purchase_request))
        end
      end

      describe 'with invalid params' do
        it 'assigns the purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @invalid_attrs }
          assigns(:purchase_request).should_not be_valid
        end

        it "re-renders the 'edit' template" do
          put :update, params: { id: @purchase_request.id, purchase_request: @invalid_attrs }
          response.should render_template('edit')
        end
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      describe 'with valid params' do
        it 'updates the requested purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
        end

        it 'assigns the requested purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
          assigns(:purchase_request).should eq(@purchase_request)
          response.should be_forbidden
        end
      end

      describe 'with invalid params' do
        it 'assigns the requested purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @invalid_attrs }
          response.should be_forbidden
        end
      end

      it 'should update my purchase_request' do
        put :update, params: { id: purchase_requests(:purchase_request_00003).id, purchase_request: { note: 'test' } }
        response.should redirect_to purchase_request_url(assigns(:purchase_request))
      end

      it "should not update other user's purchase_request" do
        put :update, params: { id: purchase_requests(:purchase_request_00002).id, purchase_request: { note: 'test' } }
        response.should be_forbidden
      end
    end

    describe 'When not logged in' do
      describe 'with valid params' do
        it 'updates the requested purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
        end

        it 'should be forbidden' do
          put :update, params: { id: @purchase_request.id, purchase_request: @attrs }
          response.should redirect_to(new_user_session_url)
        end
      end

      describe 'with invalid params' do
        it 'assigns the requested purchase_request as @purchase_request' do
          put :update, params: { id: @purchase_request.id, purchase_request: @invalid_attrs }
          response.should redirect_to(new_user_session_url)
        end
      end
    end
  end

  describe 'DELETE destroy' do
    before(:each) do
      @purchase_request = purchase_requests(:purchase_request_00001)
    end

    describe 'When logged in as Administrator' do
      login_admin

      it 'destroys the requested purchase_request' do
        delete :destroy, params: { id: @purchase_request.id }
      end

      it 'redirects to the purchase_requests list' do
        delete :destroy, params: { id: @purchase_request.id }
        response.should redirect_to purchase_requests_url
      end
    end

    describe 'When logged in as Librarian' do
      login_fixture_librarian

      it 'destroys the requested purchase_request' do
        delete :destroy, params: { id: @purchase_request.id }
      end

      it 'redirects to the purchase_requests list' do
        delete :destroy, params: { id: @purchase_request.id }
        response.should redirect_to purchase_requests_url
      end

      it "should destroy other user's purchase request" do
        delete :destroy, params: { id: purchase_requests(:purchase_request_00003).id }
        response.should redirect_to purchase_requests_url
      end
    end

    describe 'When logged in as User' do
      login_fixture_user

      it 'destroys the requested purchase_request' do
        delete :destroy, params: { id: @purchase_request.id }
      end

      it 'should be forbidden' do
        delete :destroy, params: { id: @purchase_request.id }
        response.should be_forbidden
      end

      it 'should destroy my purchase_request' do
        delete :destroy, params: { id: purchase_requests(:purchase_request_00003).id }
        response.should redirect_to purchase_requests_url
      end

      it "should not destroy other user's purchase_request" do
        delete :destroy, params: { id: purchase_requests(:purchase_request_00002).id }
        response.should be_forbidden
      end
    end

    describe 'When not logged in' do
      it 'destroys the requested purchase_request' do
        delete :destroy, params: { id: @purchase_request.id }
      end

      it 'should be forbidden' do
        delete :destroy, params: { id: @purchase_request.id }
        response.should redirect_to(new_user_session_url)
      end
    end
  end
end

redpajama_set_name: RedPajamaGithub


text:
U.S. Trade Resources
Search for Another Country
Tips When Visiting…
During the greeting, many Hong Kong Chinese lower their eyes as a sign of respect.
Hong Kong is known for its skyscrapers and home to some of the tallest residential buildings in the world.
Improve an international business course?
See how in Academy
Hong Kong: Introduction
Hong Kong is a special administrative region (SAR) of the People's Republic of China. It comprises 200 islands located in Eastern Asia bordering the South China Sea and China. Much of Hong Kong's terrain is hilly to mountainous with steep slopes. The government system is a limited democracy; the chief of state is the president of China, and the head of government is the chief executive of Hong Kong. Hong Kong has a free market economy in which the prices of goods and services are determined in a free price system. Hong Kong is a member of the Asia-Pacific Economic Cooperation (APEC).
Country Comparator
Select variable and countries to compare in table format.
Rank ordering and interactive map. Show how this country compares to others.
pie_chart Country Rankings
From the Blog rss_feed
UK's New Visa Program Offers Refuge to Hong Kong Citizens
Hong Kong: U.S. Commercial Service - Country Commercial Guide open_in_new
Hong Kong: World Bank - Doing Business Indicators open_in_new
Hong Kong: BBC - Country Profile open_in_new
Hong Kong: U.S. Department of State - Country Travel Information open_in_new
Demonym
Noun: Chinese/Hong Konger
Adjective: Chinese/Hong Kong
Cantonese (official) 88.9%, English (official) 4.3%, Mandarin (official) 1.9%, other Chinese dialects 3.1%, other 1.9% (2016 est.)
Chinese 92%, Filipino 2.5%, Indonesian 2.1%, other 3.4% (2016 est.)
Buddhist or Taoist 27.9%, Protestant 6.7%, Roman Catholic 5.3%, Muslim 4.2%, Hindu 1.4%, Sikh 0.2%, other or none 54.3% (2016 est.)
GDP per capita, PPP (current international $)
Ease of Doing Business Rank
85.3 (3 out of 189) (2020)
CIA World Factbook open_in_new
World Electric Guide open_in_new
Hong Kong Flag


text:
In the field of recorded music, a hidden track (sometimes called a ghost track, secret track or unlisted track) is a song or a piece of audio that has been placed on a CD, audio cassette, LP record, or other recorded medium, in such a way as to avoid detection by the casual listener. In some cases, the piece of music may simply have been left off the track listing, while in other cases, more elaborate methods are used. In rare cases, a 'hidden track' is actually the result of an error that occurred during the mastering stage production of the recorded media. However, since the rise of digital and streaming services such as iTunes and Spotify in the late 2000s and early 2010s, the inclusion of hidden tracks has declined on studio albums.

It is occasionally unclear whether a piece of music is 'hidden.' For example, "Her Majesty," which is preceded by fourteen seconds of silence, was originally unlisted on The Beatles' Abbey Road but is listed on current versions of the album. That song and others push the definition of the term, causing a lack of consensus on what is considered a hidden track. Alternatively, such things are instead labeled as vague audio experiments, errors, or simply an integral part of an adjacent song on the record.

Techniques
A vinyl record may be double-grooved, with the second groove containing the hidden tracks. Examples of double-grooving include Monty Python's 'three-sided' Matching Tie and Handkerchief, Tool's Opiate EP, and Mr. Bungle's Disco Volante.

Grooves cannot be read from digital media such as compact discs, so alternate methods were conceived. With a similar aim of concealment, unlisted tracks are sometimes given their own separate index point on digital media. Songs can be placed in the pregap of the first track of certain CD formats, so that the CD must first be cued to the track, and then manually back-scanned. These are often referred to as Track 0 or Hidden Track One Audio (HTOA). A CD player will not play these tracks without manual intervention, and some models (including many computer operating systems) are unable to read such content. On Super Furry Animals' third studio album, "The Citizens Band" is found in the pre-gap approximately five minutes before the beginning of track one. A glossary of terms used in the song's lyrics are printed on the interior of the cardboard outer sleeve of the CD. This essentially renders them inaccessible without taking the sleeve apart, hiding the glossary in a parallel way to the song itself.

A less concealed method is to place the song at the end of another track, typically the last track on the album, following a period of silence. For example, Nirvana's song "Endless, Nameless" was included as a hidden track in this way on their 1991 CD Nevermind, after 10 minutes of complete silence within the track listed as the final song. Although it was not the first hidden song to use this technique, it gained significant attention. Similarly, short tracks of silence can be layered before the hidden track plays. On Lazlo Bane's debut album, 11 Transistor, the eleventh song is followed by 57 silent tracks four seconds each, with "Prada Wallet" (sometimes referred to as "The Birthday Song") being the 69th track on the album. The total length of silence between the two songs is 3:48.

It is possible for a track to be playable only through a computer, such as the '15th' track on Marilyn Manson's Mechanical Animals album, which can only be accessed through an Enhanced CD executable.

There are yet-deeper ways a track can be hidden. A "ghost" track can be subtly mixed to play concurrently with other, dominant audio, or heavily distorted in a way which must be undone to be played. For example, on a DVD included with the deluxe and 'ultra-deluxe' editions of Nine Inch Nails' Ghosts I–IV, two hidden bonus tracks ("37 Ghosts" and "38 Ghosts") are included as digital multitrack files, from which the songs may be reconstructed.

Reasoning
Aaliyah's self-titled album Aaliyah features the hidden song "Messed Up" on track 15. During the stages of the album creation, Aaliyah had no desire to put this song on the album, but after numerous inquiries from different labels and colleagues, she decided on making it a hidden track.
In some rare cases, it is used to avoid legal issues. An example is Ramones' Loco Live American version, which has the song "Carbona Not Glue" hidden after Pet Sematary on track 17. It was originally recorded on their album Leave Home, but the makers of the spot remover Carbona, a registered trademark, objected. Therefore, reference to the song was removed from the album and cover.
"Freedom" by Paul McCartney was a hidden track on the original release of Driving Rain. It was later added as a track on the re-release. The track was not meant to be hidden; it was a tribute to 9/11 victims, and McCartney wanted it on the album. The artwork was already finalised, so there was no choice but to make it a hidden track.
"Train in Vain" by The Clash, which appears at the end of London Calling, was left out of the vinyl's track listing simply because it was a last-minute addition to the album, when the sleeves were already printed. It is thus not a real hidden track. It was originally intended as a promotional giveaway for NME. The later CD versions list the track on the sleeve.
Green Day's "All By Myself" (by drummer Tré Cool) was added as a secret song to Dookie due to the low sound quality of the original live recording.
"Weird Al" Yankovic's "Bite Me" from the album Off the Deep End was put on after ten minutes of silence to scare listeners who had forgotten to turn off the CD player. It was also a loose parody of "Endless, Nameless" by Nirvana. The cover of Off the Deep End is also a parody of the album containing that track, Nevermind, and its first track is a parody of that album's first track, "Smells Like Teen Spirit".
The X-Files: The Album features a hidden track at 10 minutes and 13 seconds into the final track. The track consists of series creator Chris Carter explaining the series mythology and meaning behind the alien conspiracy. The hidden track even includes spoilers and minute details in the show's overall plot that had not yet been resolved on the show itself when the album was released. This track was included as both a surprise to devoted fans who would seek out answers in cross-promotional merchandise, and as a mystery to new fans who would need to watch the show more closely to better understand the track.
Eugene Mirman's album The Absurd Night Club Comedy of Eugene Mirman includes a hidden track making fun of hidden tracks, and telling the listener that he or she has a very bizarre mission.
The Jam's All Mod Cons does not list the song "English Rose" and its lyrics on original vinyl copies because Paul Weller believed the title and song lose meaning without accompanying music. They have been added to re-releases of the album.
Skip Spence's "Land of the Sun" was included as a hidden track by producer Bill Bentley to specifically close a tribute album to Spence, More Oar: A Tribute to the Skip Spence Album.
Oasis' compilation album Time Flies features the single "Sunday Morning Call" as a hidden track. The album was an anthology of all of the band's singles, but principal songwriter Noel Gallagher openly detests the song, so chose to have it hidden.

Notable hidden tracks

Some hidden tracks are historically significant, have become well known and even occasionally received radio airplay and climbed the charts.
The Beatles' track "Her Majesty" from their 1969 album Abbey Road is considered a hidden track. It was originally a part of the medley on side two of the album, before Paul McCartney requested that it be removed; the engineer who edited out of the rough mix placed it after the medley to preserve it, and when the Beatles heard it there, they decided to place it there on the album.  The original pressings of Abbey Road did not list "Her Majesty" on the back cover song title listing, nor the record label; subsequent LP pressings and then CD issues were issued revealing the track.  However, two years prior, in 1967, on the UK version of the Sgt. Pepper's Lonely Hearts Club Band album, there was the "inner groove" that appeared after "A Day in the Life" at the end of side two.  It was an unexpected, untitled, and un-credited Beatles recording; so this might be deemed a precursor to the hidden track.  A potential hidden track on yet another Beatles album is on The Beatles (also known popularly as The White Album) 1968 double album.  The hidden track is a snippet of a song called "Can You Take Me Back", serving as an "outro" to "Cry Baby Cry".
Nirvana put the hidden song "Endless, Nameless" 10 minutes after the last listed track on their 1991 album Nevermind. It was the first prominent hidden track in the CD era and inspired a slew of hidden tracks on albums in the following years. Lead singer Kurt Cobain said he got the idea from when he would make mix tapes for his friends and then add a secret song after a long silent gap at the end, to startle them. Interestingly, some of the initial pressings of the album accidentally omitted the secret track because the person pressing the album thought it wasn't meant to be there. This was quickly corrected in subsequent pressings after the band let the label know.
Janet Jackson's track "Whoops Now", a hidden track from her album janet., was released as a single, and reached number nine in UK Singles Charts, and number one in New Zealand Singles Chart.
The Rembrandts had a sudden radio hit in 1995 with "I'll Be There for You", the theme song to Friends, so it was added at the last minute to their third album LP. As a result, the song was a hidden track on the early printing, since the CD packaging had already been completed by the time the song was added.  A sticker was however added to the outer shrink wrap advising the song's inclusion.
Eels' album Daisies of the Galaxy contains a hidden track, "Mr. E's Beautiful Blues", which was released as a single, and received radio airplay, although it was not featured on the sleeve notes.  The song was, in fact, released as the first single from the album, and peaked at number 11 on the UK Singles Chart.
Cracker's "Euro-Trash Girl", an original, was one of their biggest radio hits, despite being a hidden track on Kerosene Hat.
"Skin (Sarabeth)" by Rascal Flatts, a hidden track from their 2004 album Feels Like Today, received enough airplay to chart in the Top 40 on the country charts, peaking at number 2 in late 2005.  In mid-2005, the album was re-issued, with the song officially listed as a track, coinciding with the song's release as a single.
Of the two hidden tracks on Lauryn Hill's The Miseducation of Lauryn Hill, one of them, the cover of "Can't Take My Eyes Off You" was nominated for a Grammy in 1999 in the category of 'Best Female Pop Vocal Performance'.  It was the first time a hidden track was nominated for a Grammy.
One of the hidden tracks on P!nk's fourth album, "I Have Seen the Rain", gained significant attention by P!nk fans, as her father, James T. Moore, was featured on the song.
Peter, Paul and Mary's 2003 album, In These Times, revealed that after 25 seconds of silence from "Oh, Had I a Golden Thread", there was a hidden live track of a Spanish folk song "Mi Caballo Blanco", although it was listed in the box set Carry It On.  The track was later officially listed on their 2014 album Discovered: Live in Concert
Tally Hall's 2005 album Marvin's Marvelous Mechanical Museum had a hidden track, aptly titled "Hidden In The Sand", that would prove to be the band's most successful song, gaining over 22 million plays on YouTube and over 111 million on Spotify.
My Chemical Romance put the hidden track "Blood" after the final song on their 2006 rock opera The Black Parade, though it would be omitted on Japanese editions of the album.
Coldplay's song "O", from their 2014 album Ghost Stories, is composed mainly of a hidden track, called "Fly On". This track made it into charts in the UK, France, and the US, peaking at #9 on the US Rock Digital Song Sales. "Fly On" appeared on their 2014 live album, with "O" being replaced by its reprise.
Deftones's 1997 album,  Around the Fur has two hidden tracks. "Bong Hit" starts after 19:31 minutes of the last track "MX". After 12:41 minutes of silence (after "Bong Hit"), "Damone" starts
Incubus's second album S.C.I.E.N.C.E. has a mix of sounds and music called "Segue 1", which starts after 30 seconds of the track "Calgone"

See also

Easter egg (media)
B-side
List of albums containing a hidden track
List of albums with tracks hidden in the pregap
Backmasking
Bonus track
Sampling (music)
Surprise album

References

External links
Hidden Songs — a user-submitted database of hidden song listings

Songs
Sound recording technology


La Samaritaine's team wishes you a wonderful 2017! Click on the image below!
In addition to the partnership already signed with the L'École de l'Arbre-Sec and the Musée des Arts Décoratifs, a new educational tie-up has been confirmed with the students of the BTS Design & Communication course at the Lycée Maximilien Vox (Paris, 6e) – and their first task is to design this year's greeting card!
This year, La Samaritaine has been honoured by the Trophées de la Communication, the national communications competition, with the prize for the best event communication campaign by a private organisation for its Maison du Projet 2.0, which showcases its advanced technology platforms and virtual reality tour of the project.
The first two cranes – one beside the Seine and the other on the Rue de Rivoli – have arrived on the scene. Enjoy these images of their installation – but beware of vertigo!
The green light – at last!


text:
package de.avalax.mtg_insight.presentation.persistence;

import android.util.Log;

import de.avalax.mtg_insight.application.port.adapter.CacheStrategy;
import de.avalax.mtg_insight.domain.model.card.Card;
import de.avalax.mtg_insight.domain.model.card.CardRepository;
import de.avalax.mtg_insight.domain.model.exception.CardNotFoundException;

public class AndroidCacheStrategy implements CacheStrategy {
    private CardRepository cardRepository;

    public AndroidCacheStrategy(CardRepository cardRepository) {
        this.cardRepository = cardRepository;
    }

    @Override
    public void put(Card card) {
        if (isGenericCard(card)) {
            Log.e("skipping generic card", card.name());
            return;
        }
        cardRepository.save(card);
    }

    private boolean isGenericCard(Card card) {
        return card.getClass().getSimpleName().equals("GenericCard");
    }

    @Override
    public Card get(String cardname) throws CardNotFoundException {
        return cardRepository.load(cardname);
    }
}


text:
Aylesbury praised for its 'progressiveness and modernity' in London publication
Take a look around this barn conversion near Tring described as the 'countryside dream'
Renault Zoe downgraded to rare zero-star safety rating after poor crash performance
EV is only third car to get lowest rating after testers slam airbag removal and lack of driver aids
Wednesday, 8th December 2021, 10:15 am
The Renault Zoe has been given a rare "zero-star" rating by official safety testers in their latest round of assessments.
The compact EV, which was originally awarded five stars in 2013, was downgraded by Euro NCAP after a key safety feature was removed and it failed to meet new equipment standards introduced since it was last tested.
The Zoe is only the third car to receive a zero-star rating from Euro NCAP - the independent body which tests all new cars for crash safety.
Renault insists that despite the rating, the Zoe meets all regulatory safety requirements and many versions of the car feature advanced safety technology. It also pointed out that Euro NCAP's testing protocol had changed since the Zoe was first designed and tested.
However, the brand has been criticised for removing a key airbag from the car's specification and for failing to fit the now common autonomous emergency braking as standard.
The Zoe scored just 43% for adult occupant protection and was rated poor for the "frontal offset impact" performance. However, Euro NCAP highlighted its performance in the "severe side pole" test as a key point of concern.
During the test, which replicates a side impact with an object such as a tree or lamppost, the driver dummy's head made direct contact with the pole, showing the threat of serious injury or death. This, Euro NCAP says, is a result of Renault removing the combined head and thorax airbag previously fitted to the Zoe.
Matthew Avery, Euro NCAP board member and chief research strategy officer at the UK's Thatcham Research, commented: "It is a serious concern to see results like this in 2021, especially from a carmaker who has previously performed well in Euro NCAP testing. Renault was the first to achieve the full five-star rating in 2001, in part because it was also the first to include a combined head and thorax airbag. Although this was a new and revolutionary safety measure at the time, today this airbag is available on most modern cars.
"Unfortunately, a conscious decision has been made to remove the head protection from this vital passive safety feature by the brand that pioneered the use of it. As a result, the safety of occupants within the vehicle has been severely impacted."
The Zoe's score was also affected by the lack of autonomous emergency braking and lane departure warning on entry-level models, features which are now included in the Euro NCAP assessments. That led to a score of just 14% in the safety assist category.
A Renault spokesperson acknowledged the results of the latest testing and said that the brand was making changes to the car's specification in the wake of the results.
They said: "Renault reaffirms that Zoe E-Tech Electric is a safe vehicle, which complies with all regulatory safety standards. These standards are constantly evolving and are becoming more stringent in all domains, especially in safety. Renault therefore continually improves its offer in order to comply with the regulations applicable where its vehicles are sold.
"Zoe was launched in 2013 and received 5 stars with EuroNCAP protocol at that time. The EuroNCAP protocol has since 2013 undergone five changes. With the same equipment, a model can lose up to two stars in each protocol change.
"The evolution of the current Zoe was decided in 2017 adapting the passive safety equipment to real accidentology and updating the car with state of the art ADAS equipment such as advanced emergency braking with pedestrian and cyclist detection, lane departure alert and lane keeping assist, using a radar and a camera.
"From March 2022, advanced emergency braking system will be fitted on every Zoe trim level as standard."
How to defrost car windows: the best ways to de-ice and demist windscreen quickly - and why ice forms inside
Luxury multi-facility spa opens in Aylesbury Vale after £6 million refurbishment
£1.1m six-bedroom Georgian home with countryside views goes on the market in Aylesbury
Famous Batman Begins mansion near Aylesbury now languishes in state of decay
Sainsbury's announces opening date for giant new Aylesbury store
Argos in Aylesbury to close and relocate in Sainsbury's megastore


Current USB headset models give you a range of up to 300 feet while shorter range Bluetooth™ headset models can be used with your cellular phone. Ideal for VoIP communications.
USB headsets work without a sound card and use just one plug. USB headsets control both the microphone and the speakers through one cable. Can be used for VoIP communications.


text:
Q: django-selectable app - get/save 'id' I have an auto-complete field on my form and template.  The template is populated a ModelForm.  The lookup is based on a simple table (db.category) consisting of the primary key "id" and a text description.  I want to save the id (not the text/value).  The django-selectable docs, though better than a lot I have seen,  do not have enough detail, or robust enough examples for me (a relative newbie) to figure it out. If anyone has some examples code they could share I'd appreciate it. (I am not using the admin).  I think I'm ok with the model.py and lookup.py. Not sure about form.py or view.py.  Could be missing something on the template, but I think its ok).
Thanks.


I was playing with my dog today, his name is Boss, so I decided to write what I know. Nowadays, many people attempt to have a clean home. If you own a dog, a large component of keeping your home clean is having a well-trained dog. That said, learning about training is the best method of keeping your home pristine. Start with this article, and you'll figure it all out.
A healthy diet is essential for your dog. A poor diet will negatively affect your dog's skin, eyes, muscles, bones and joints. It can make your dog behave badly and is not good for their health. Improving your dog's diet can make training him easier.
Your dog needs to be active frequently. Almost all dogs have short attention spans. A bored dog will try and find something interesting to do, and training is not usually interesting. Your dog is going to be a lot more attentive when it has received enough exercise. Get out for some long walks and runs with your dog.
Make sure your teething puppy has a bunch of chew toys readily available to him, and keep other things he likes to chew on away from him. You need to replace that with a designated chew toy. Teething pain can be soothed by a washcloth that has been soaked in water and frozen.
Don't expect your dog to learn a command the first time you say it. You may need to repeat the same command lesson from 25 to 30 times before your dog learns it. Keep trying the same commands until your dog remembers it for good.
Modify and update your dog's training as necessary, so he remains in compliance with the rules. Many times, owners feel that since their animals have gone through dog training, they can just forget about it. That's not a good idea, since animals and humans form and retain habits in a similar way. Make sure your dog has a regular routine.
Don't use things like shock collars. In addition to being very expensive, they usually do not work as well as the more traditional training techniques. Plus, shock collars can discourage your dog from behaving properly. These methods of training generally fail.
When house-breaking your puppy, choose a specific phrase to use when it's time to go outdoors. Each time you venture out for a bathroom trip, use this phrase to keep your dog focused on the task he came outside to accomplish.
If you want to be successful in house training an animal, make sure that you stick to a strict schedule for feeding times and elimination times. This way, you are aware of when your dog will need to do his business, and you can take him outside before an accident occurs. A regular schedule will also give your dog a chance to learn how to exercise self-control, as he will know that a trip outside is eminent.
While training your dog, you need to introduce it to different social situations as early as possible. He needs to learn how to behave around both humans and other dogs. This is best taught early. In addition, this helps decrease any troublesome behavior whenever they are introduced to new environments.
You have the knowledge you need to succeed now! Try to come up with ways you can teach your whole family how to train your dog.


text:
Drew Martinez
#22 Midfielder - Kennesaw State
Hometown: Lawrenceville, GA
High School: Collins Hill
Eligibility: Junior
2018 Kennesaw State 22 37 0 1 0 0 0 - 0
2016 Kennesaw State 22 56 3 7 0 0 117 - 75
02/03/2018 Georgia Southern W 21-7 2 0 0 0 0
02/10/2018 @ UNC-Charlotte W 16-10 3 0 0 0 0
02/11/2018 @ Davidson W 22-7 3 0 0 0 0
02/24/2018 Appalachian State W 12-4 5 0 0 0 0
03/03/2018 Charleston W 20-3 0 0 0 0 0
03/09/2018 Minn.-Duluth L 9-17 3 0 0 0 0
03/10/2018 Grand Valley State L 8-9 3 0 0 0 0
03/11/2018 St. Thomas L 7-10 0 0 0 0 0
03/16/2018 @ Georgia Tech L 10-16 0 0 0 0 0
03/24/2018 Wake Forest W 21-11 1 0 0 0 0
04/21/2018 @ Appalachian State W 14-11 2 0 1 0 0
04/22/2018 @ Florida Gulf Coast W 6-5 3 0 0 0 0
05/08/2018 @ Minn.-Duluth L 4-16 11 0 0 0 0
05/07/2018 @ Cal State Fullerton W 11-7 1 0 0 0 0
02/06/2016 @ UNC-Charlotte W 7-4 3 0 0 0 0
02/19/2016 West Virginia W 20-5 5 0 1 0 0
02/28/2016 Louisiana W 30-7 7 1 2 0 0
03/04/2016 North Dakota State L 10-15 3 0 1 0 0
03/06/2016 Grand Valley State W 17-9 0 0 0 0 0
03/10/2016 Missouri Valley W 10-4 0 1 1 0 0
03/26/2016 @ Reinhardt W 9-8 1 0 0 0 0
03/29/2016 @ Georgia State W 25-3 9 1 1 0 0
04/01/2016 Lindenwood-Belleville W 15-6 6 0 0 0 0
04/13/2016 Emory W 23-4 5 0 0 0 0
04/16/2016 Columbus State W 16-6 2 0 0 0 0
04/22/2016 Florida Gulf Coast W 6-3 5 0 0 0 0
04/24/2016 Reinhardt L 7-13 3 0 0 0 0
05/09/2016 Siena Heights W 7-6 1 0 0 0 0
05/10/2016 @ North Dakota State L 4-10 2 0 0 0 0
01/25/2015 @ Vanderbilt W 9-7 1 0 0 0 0
01/31/2015 @ Tennessee Wesleyan College W 18-9 1 0 0 0 0
02/21/2015 @ Charleston W 14-8 1 0 0 0 0
02/22/2015 @ Citadel W 14-6 2 1 0 0 0
02/27/2015 Georgia State W 25-1 6 0 2 0 0
03/08/2015 @ Wofford College W 30-5 6 1 1 0 0
03/14/2015 SCAD W 11-8 4 0 0 0 0
03/20/2015 Indiana Tech W 9-8 3 0 0 0 0
03/28/2015 Point University W 12-4 8 0 0 0 0
04/03/2015 Reinhardt W 10-7 3 0 0 0 0
04/08/2015 @ Saint Louis W 13-6 3 2 0 0 0
04/09/2015 @ Missouri Valley L 7-9 0 0 0 0 0
04/11/2015 @ Missouri Baptist W 7-6 2 0 0 0 0
04/16/2015 @ Emory W 10-6 1 0 0 0 0
05/11/2015 @ Dayton L 6-20 0 0 0 0 0
2018 2nd Team All-Conference Defense


text:
package ua.com.mcgray.utils;

import java.net.InetSocketAddress;
import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.couchbase.client.CouchbaseClient;
import com.couchbase.client.CouchbaseConnectionFactory;
import com.couchbase.client.CouchbaseConnectionFactoryBuilder;
import net.spy.memcached.transcoders.Transcoder;
import org.couchbase.mock.Bucket;
import org.couchbase.mock.BucketConfiguration;
import org.couchbase.mock.CouchbaseMock;
import org.couchbase.mock.client.MockClient;

/**
 * @author orezchykov
 * @since 05.12.14
 */
public class EmbeddedCouchbaseProvider {

    public static int couchbasePort;
    private static CouchbaseMock couchbaseMock;
    private final static String DEFAULT_BUCKET = "default";
    private final static String PASSWORD = "";
    private static Map<String, CouchbaseClient> clients;
    private static Set<String> buckets = Collections.emptySet();

    public static void setup(String... wantedBuckets) throws Exception {
        setup(0, wantedBuckets);
    }

    public static void setup(int port, String... wantedBuckets) throws Exception {
        if (couchbaseMock == null) {
            buckets = new HashSet<>(Arrays.asList(wantedBuckets));
            buckets.add(DEFAULT_BUCKET);
            couchbaseMock = new CouchbaseMock(port, createConfiguration(buckets));
            couchbaseMock.start();
            couchbaseMock.waitForStartup();
            couchbasePort = couchbaseMock.getHttpPort();
            MockClient mockClient = new MockClient(new InetSocketAddress("localhost", 0));
            couchbaseMock.setupHarakiriMonitor("localhost:" + mockClient.getPort(), false);
            mockClient.negotiate();
            Runtime.getRuntime().addShutdownHook(new Thread() {
                @Override
                public void run() {
                    internalStop();
                }
            });
        }
    }

    private static List<BucketConfiguration> createConfiguration(Set<String> buckets) {
        List<BucketConfiguration> configList = new ArrayList<>();
        for (String bucket : buckets) {
            BucketConfiguration bucketConfiguration = new BucketConfiguration();
            bucketConfiguration.numNodes = 1;
            bucketConfiguration.numReplicas = 1;
            bucketConfiguration.name = bucket;
            bucketConfiguration.password = PASSWORD;
            bucketConfiguration.type = Bucket.BucketType.COUCHBASE;
            configList.add(bucketConfiguration);
        }
        return configList;
    }

    public static CouchbaseClient createClient(String bucketName, Transcoder transcoder) throws Exception {
        if (clients == null) {
            clients = new HashMap<>();
        }
        CouchbaseConnectionFactoryBuilder cfb = new CouchbaseConnectionFactoryBuilder();
        if(transcoder!=null) {
            cfb.setTranscoder(transcoder);
        }
        List<URI> uriList = new ArrayList<>();
        uriList.add(new URI("http", null, "localhost", couchbasePort, "/pools", "", ""));
        CouchbaseConnectionFactory connectionFactory = cfb.buildCouchbaseConnection(uriList, bucketName, PASSWORD);
        clients.put(bucketName, new CouchbaseClient(connectionFactory));

        return clients.get(bucketName);
    }
    public static CouchbaseClient createClient(String bucketName) throws Exception {
        return createClient(bucketName, null);
    }

    public static CouchbaseClient createClient() throws Exception {
        return createClient(DEFAULT_BUCKET);
    }

    public static CouchbaseClient createClient(Transcoder transcoder) throws Exception {
        return createClient(DEFAULT_BUCKET, transcoder);
    }

    static void internalStop(){
        if (clients != null) {
            for (CouchbaseClient client : clients.values()) {
                if (client != null) {
                    client.shutdown();
                }
            }
            clients.clear();
            clients = null;
        }
        if (couchbaseMock != null) {
            couchbaseMock.stop();
            couchbaseMock = null;
        }
    }

}


One of the best parts of the holiday season is having an excuse to bake so many delicious desserts. Whip up a batch of these Christmas cupcakes to go along with the stunning cakes, classic cookies, and other sweet treats you'll be enjoying this year!
Top each cake with a gingerbread cookiefor a super cute two-in-one sweet treat!
Satisfy your sweet and salty cravings with this chocolatey recipe.
This absolutely adorable dessert is made with white chocolate Reese's Peanut Butter Cups.
This blogger calls her cupcake the absolute best red velvet recipe.
Kids will love decorating these wide-eyed reindeers—don't forget about Rudolph!
Even non-coffee drinkers will enjoy the espresso frosting on this cake.
Not only does the white chocolate complement the minty flavors, but it also makes for a beautiful color scheme.
Calling all gingerbread lovers: You must make this cookie and cupcake combination for Christmas.
You can bake these triple-topped cupcakes any night in December—no bonfire required!
Transform a sweet and spiced snickerdoodle cookie into a super moist cupcake topped with a mountain of brown sugar buttercream.
If a dessert has Oreos in the batter, in the frosting, and as the topper, of course your kids will love it.
This recipe—filled with nutmeg, cinnamon, and vanilla—combines the best flavors of the holiday in one delicious snack.
With a new Grinch movie coming out this holiday season, you'll have to make these cute cupcakes before catching it in theaters.
This beautifully swirled treat will stand out at holiday parties.
These bite-sized cupcakes are perfect for when you want a little something sweet—but we won't blame you for having two or three!
Get the recipe at Lydia Bakes.
This decadent recipe gets a little easier if you make the caramel in the microwave.
Enjoy tiny treats with trimmings such as M&M's and marshmallows. Pressed Laffy Taffy leaves lend a festive touch.
Adding sprigs of rosemary and gingerbread men on top makes each cupcake look like a mini winter wonderland.
These super-cute pastries will even have Scrooge smiling for days.
Just wait until you taste the cherry filling on the inside of these chocolate cupcakes.
Indulge a little this holiday season with creamy cupcakes like this one.
Use sugar cones to create these intricate, towering pieces of art. Garnish with edible silver ball sprinkles.
These hot chocolate-inspired treats will keep you cozy while satisfying your sweet tooth.
Light up your cupcakes with colorful M&M's and black frosting.
Slather whipped, candy cane buttercream onto these chocolate cupcakes.
Get your children into the holiday spirit with these icy blue delights.
These moist cupcakes are topped with rich, chocolate ganache and crushed candy canes. What's not to love?
These are perfect for the eggnog fanatic in the family.
The rich, decadent frosting alone is enough to make you want to go back for seconds.
Bite into this fruity cake for a sweet, marshmallow surprise.
A touch of amaretto liquor and rich chocolate pudding turn the standard cupcake into an adult-friendly favorite.
Santa Claus won't be the only one wearing a hat this Christmas.
No need for special tools here! These cupcakes are super easy to make.
Get the recipe at Sugar and Soul.
This beautiful cupcake is sure to be an instant hit at your next holiday party!


Artist Jack Brindley with curator Tim Dixon are 'Open File'. The curatorial duo present a line-up of new and established artists at the ICA in the first of a triptych of performances and screenings. The events reflect what it is to curate in an increasingly virtual age and in a time where 'digitalization and the virtualisation of space implies a crucial shift where the human scale of industry and society have disappeared, and therefore social products are no longer manipulated totally materially'. Linking the argument to the human body, evolution of human interaction, design and object function, 'Long Live the New Flesh' poses questions about the boundaries and confluence between body and technology. Benedict Drew and John Gerrard feature in the one off event that brings together emerging and established practitioners in an evening of live bodies and digital image.
Dazed Digital: Are there any references that specifically tie in?
David Burrows: Texts, YouTube films, references include the ideas of Thomas Metzinger, a philosopher who has been working with neuroscientists and who wrote the 'Ego Tunnel'. Metzinger argues that no one has ever been a self and suggests that this concept and the counter-intuitive discoveries of neuroscience will be difficult for people to accept but that the technologies produced as a result of these discoveries will effect everyday life and culture. As well as this we have been thinking about Norbert Weiner and his ideas about feedback loops, Scot Bakker's novel Neuropath and other writing, Ray Brassier's text on noise and genre, the animated film series ghost in the shell, the propaganda of the virtual Buddhist terrorists and various myths of the extreme past and future.
DD: How would you describe the current human relationship to technology?
David Burrows: The nature of these relationships can only be guessed at. The development of various technologies will be seen as an evolutionary process in the future. Evolution can be thought of as realising many potential forms or organisations. In this, both chance and contingency may be involved in evolution. Most potential forms remain virtual, only some become actual.
If someone's phone rings or pings and you reach to check your own phone, or you sense a vibration and think you have received a text but discover none has been sent or you check your phone when you see others doing so, your body has already been prepared for the next evolutionary stage.
As well as this, in the past, the relation of technology and humans has been understood through metaphors, fiction, images and myth, all of which can have an effect of the development of different technologies and everyday life. This is true today (an example being The Cloud) and will be so in the future.
DD: How does your work address this?
David Burrows: The work is a mytheme (or mysteme) for Neuropatheme (aka subject-without-experience, fux-the-shadow, otalP-the-empty-cave). Neuropatheme processes affects as information. Neuropatheme when fully plugged in realises that Neuropatheme is a sequence of processes and connections (exactly the same as being unplugged). Neuropatheme, feeling everything and nothing, is free of having to produce meaning and experiments with producing different feedback loops.
DD: How has thinking, theory and practice developed to address emergent technologies?
David Burrows: In diverse ways but always in part as imaginary, fiction or myth.
DD: How do you think art and the art world is adapting?
David Burrows: In the 60s and 70s, artists now called conceptual artists or associated with expanded art practice or expanded cinema where seen as radical but today they might be seen as pioneers and promoters of new and relatively available technology (fax machines, video, cheap air flights, Xerox, telephones, TV monitors) which transformed the world, commerce, leisure and culture. In the future, the same observation will probably be made about many of today's artists.
DD: Most prescient and predictive artist/writer?
DD: What are the dangers with our current mode of technological interaction?