text:
Q: Display font-awesome icon on top of another image I am getting image source from json & displaying in html page....

on top of the image , I want to add font-awesome icon as below ....

So i tried below code , but font-awesome icon not displaying....
html
<link
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"
rel="stylesheet" type='text/css' >

script
$(document).ready(function() {
            var maskedImageUrla = "";
            var fontawesome = "";

            $.getJSON('test.json', function(json) {

              if (tl.src)
               {
                 maskedImageUrla = 'http://sitename.com/images/' + tl.src;
               }

                        var mask1 = $(".container").mask({
                            maskImageUrl: maskedImageUrla,
                            fontawesome: fontawesome,
                            onMaskImageCreate: function(img) {}
                        });
}); // end of document ready

Here is json file
Here is https://codepen.io/kidsdial/pen/bZNNXJ
Update : I added code Snippet below....

var mask1;

$(document).ready(function()
{
    var maskedImageUrla = "";
    var fontawesome = "";
    var coordinates = {
        x: 0,
        y: 0
    };

    var width = 0; var height = 0;

   var json = {
  "path" : " love shape\/",
  "info" : {
    "author" : "",
    "keywords" : "",
    "file" : "love shape",
    "date" : "sRGB",
    "title" : "",
    "description" : "Normal",
    "generator" : "Export Kit v1.2.8"
  },
  "name" : "love shape",
  "layers" : [
    {
      "x" : 0,
      "height" : 612,
      "layers" : [
        {
          "x" : 0,
          "color" : "0xFFFFFF",
          "height" : 612,
          "y" : 0,
          "width" : 612,
          "shapeType" : "rectangle",
          "type" : "shape",
          "name" : "bg_rectangle_1"
        },
        {
          "x" : 49,
          "height" : 480,
          "layers" : [
            {
              "x" : 0,
              "height" : 480,
              "src" : "hQ45RtK.png",
              "y" : 0,
              "width" : 514,
              "type" : "image",
              "name" : "mask_image_1"
            },
            {
              "radius" : "27 \/ 27",
              "color" : "0xACACAC",
              "x" : 233,
              "y" : 205,
              "height" : 53,
              "width" : 53,
              "shapeType" : "ellipse",
              "type" : "shape",
              "name" : "useradd_ellipse1"
            }
          ],
          "y" : 66,
          "width" : 514,
          "type" : "group",
          "name" : "user_image_1"
        }
      ],
      "y" : 0,
      "width" : 612,
      "type" : "group",
      "name" : "loveshape_18"
    }
  ]
};

        for (let layer of json.layers)
        {
            width = layer.width;
            height = layer.height;
            if (layer.layers && layer.layers.length > 0)
            {
               for (let temp of layer.layers)
                {

                   if (temp.src) maskedImageUrla = temp.src;
                    else if (temp.layers)
                    {
                        for (let tl of temp.layers)
                            if (tl.src)
                            {
                                maskedImageUrla = 'https://i.imgur.com/' + tl.src;
                                coordinates.x = temp.x;
                                coordinates.y = temp.y;
                            }
                    }
                }
            }
        }

        $(".container").css('width', width + "px").css('height', height + "px").addClass('temp');

        var mask1 = $(".container").mask({
            maskImageUrl: maskedImageUrla,
            fontawesome : fontawesome,
            onMaskImageCreate: function(img) {

                img.css({
                    "position": "fixed",
                    "left": coordinates.x + "px",
                    "top": coordinates.y + "px"
                });
            }
        });

        fileupa1.onchange = function() {
            mask1.loadImage(URL.createObjectURL(fileupa1.files[0]));
        };

}); // end of document ready

// jq plugin for mask
(function($) {
    var JQmasks = [];
    $.fn.mask = function(options) {
        // This is the easiest way to have default options.
        var settings = $.extend({
            // These are the defaults.
            maskImageUrl: undefined,
            imageUrl: undefined,
            scale: 1,
            id: new Date().getUTCMilliseconds().toString(),
            x: 0, // image start position
            y: 0, // image start position
            onMaskImageCreate: function(div) {},
        }, options);

        var container = $(this);

        let prevX = 0,
            prevY = 0,
            draggable = false,
            img,
            canvas,
            context,
            image,
            timeout,
            initImage = false,
            startX = settings.x,
            startY = settings.y,
            div;

        container.mousePosition = function(event) {
            return {
                x: event.pageX || event.offsetX,
                y: event.pageY || event.offsetY
            };
        }

        container.selected = function(ev) {
            var pos = container.mousePosition(ev);
            var item = $(".masked-img canvas").filter(function() {
                var offset = $(this).offset()
                var x = pos.x - offset.left;
                var y = pos.y - offset.top;
                var d = this.getContext('2d').getImageData(x, y, 1, 1).data;
                return d[0] > 0
            });

            JQmasks.forEach(function(el) {
                var id = item.length > 0 ? $(item).attr("id") : "";
                if (el.id == id)
                    el.item.enable();
                else el.item.disable();
            });
        };

        container.enable = function() {
            draggable = true;
            $(canvas).attr("active", "true");
            div.css({
                "z-index": 2
            });
        }

        container.disable = function() {
            draggable = false;
            $(canvas).attr("active", "false");
            div.css({
                "z-index": 1
            });
        }

        container.onDragStart = function(evt) {
            container.selected(evt);
            prevX = evt.clientX;
            prevY = evt.clientY;
        };

        container.getImagePosition = function() {
            return {
                x: settings.x,
                y: settings.y,
                scale: settings.scale
            };
        };

        container.onDragOver = function(evt) {
            if (draggable && $(canvas).attr("active") === "true") {
               var x = settings.x + evt.clientX - prevX;
                var y = settings.y + evt.clientY - prevY;
                if (x == settings.x && y == settings.y)
                   return; // position has not changed
                settings.x += evt.clientX - prevX;
                settings.y += evt.clientY - prevY;
                prevX = evt.clientX;
                prevY = evt.clientY;
                container.updateStyle();
            }
        };

        container.updateStyle = function() {
            clearTimeout(timeout);
            timeout = setTimeout(function() {
                context.clearRect(0, 0, canvas.width, canvas.height);
                context.beginPath();
                context.globalCompositeOperation = "source-over";
                image = new Image();
                image.setAttribute('crossOrigin', 'anonymous');
                image.src = settings.maskImageUrl;
                image.onload = function() {
                    canvas.width = image.width;
                    canvas.height = image.height;
                    context.drawImage(image, 0, 0, image.width, image.height);
                    div.css({
                        "width": image.width,
                        "height": image.height
                    });
                };

                img = new Image();
                img.src = settings.imageUrl;
                img.setAttribute('crossOrigin', 'anonymous');
                img.onload = function() {
                    settings.x = settings.x == 0 && initImage ? (canvas.width - (img.width * settings.scale)) / 2 : settings.x;
                    settings.y = settings.y == 0 && initImage ? (canvas.height - (img.height * settings.scale)) / 2 : settings.y;
                    context.globalCompositeOperation = 'source-atop';
                    context.drawImage(img, settings.x, settings.y, img.width * settings.scale, img.height * settings.scale);
                    initImage = false;
                };
            }, 0);
        };

        // change the draggable image
        container.loadImage = function(imageUrl) {
            if (img)
                img.remove();
            // reset the code.
            settings.y = startY;
            settings.x = startX;
            prevX = prevY = 0;
            settings.imageUrl = imageUrl;
            initImage = true;
            container.updateStyle();
        };

        // change the masked Image
        container.loadMaskImage = function(imageUrl, from) {
            if (div)
                div.remove();
            canvas = document.createElement("canvas");
            context = canvas.getContext('2d');
            canvas.setAttribute("draggable", "true");
            canvas.setAttribute("id", settings.id);
            settings.maskImageUrl = imageUrl;
            div = $("
", {
                "class": "masked-img"
            }).append(canvas);

            div.find("canvas").on('touchstart mousedown', function(event) {
                if (event.handled === false) return;
                event.handled = true;
                container.onDragStart(event);
            });

            div.find("canvas").on('touchend mouseup', function(event) {
                if (event.handled === false) return;
                event.handled = true;
                container.selected(event);
            });

            div.find("canvas").bind("dragover", container.onDragOver);
            container.append(div);
            if (settings.onMaskImageCreate)
                settings.onMaskImageCreate(div);
            container.loadImage(settings.imageUrl);
        };
        container.loadMaskImage(settings.maskImageUrl);
        JQmasks.push({
            item: container,
            id: settings.id
        })
        return container;
    };
}(jQuery));
.temp
{
border: 1px solid #DDDDDD;
display: flex;
background :silver;
}

.container canvas {
    display: block;
}

.masked-img {
    overflow: hidden;
    margin-top: 50px;
    position: relative;
}

<link
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"
rel="stylesheet" type='text/css' >

image 1
<input id="fileupa1"  type="file">

A: Hope This is the result you are looking for

var mask1;

$(document).ready(function()
{
    var maskedImageUrla = "";
    var fontawesome = "";
    var coordinates = {
        x: 0,
        y: 0
    };

    var width = 0; var height = 0;

   var json = {
  "path" : " love shape\/",
  "info" : {
    "author" : "",
    "keywords" : "",
    "file" : "love shape",
    "date" : "sRGB",
    "title" : "",
    "description" : "Normal",
    "generator" : "Export Kit v1.2.8"
  },
  "name" : "love shape",
  "layers" : [
    {
      "x" : 0,
      "height" : 612,
      "layers" : [
        {
          "x" : 0,
          "color" : "0xFFFFFF",
          "height" : 612,
          "y" : 0,
          "width" : 612,
          "shapeType" : "rectangle",
          "type" : "shape",
          "name" : "bg_rectangle_1"
        },
        {
          "x" : 49,
          "height" : 480,
          "layers" : [
            {
              "x" : 0,
              "height" : 480,
              "src" : "hQ45RtK.png",
              "y" : 0,
              "width" : 514,
              "type" : "image",
              "name" : "mask_image_1"
            },
            {
              "radius" : "27 \/ 27",
              "color" : "0xACACAC",
              "x" : 233,
              "y" : 205,
              "height" : 53,
              "width" : 53,
              "shapeType" : "ellipse",
              "type" : "shape",
              "name" : "useradd_ellipse1"
            }
          ],
          "y" : 66,
          "width" : 514,
          "type" : "group",
          "name" : "user_image_1"
        }
      ],
      "y" : 0,
      "width" : 612,
      "type" : "group",
      "name" : "loveshape_18"
    }
  ]
};

        for (let layer of json.layers)
        {
            width = layer.width;
            height = layer.height;
            if (layer.layers && layer.layers.length > 0)
            {
               for (let temp of layer.layers)
                {

                   if (temp.src) maskedImageUrla = temp.src;
                    else if (temp.layers)
                    {
                        for (let tl of temp.layers)
                            if (tl.src)
                            {
                                maskedImageUrla = 'https://i.imgur.com/' + tl.src;
                                coordinates.x = temp.x;
                                coordinates.y = temp.y;
                            }
                    }
                }
            }
        }

        $(".container").css('width', width + "px").css('height', height + "px").addClass('temp');

        var mask1 = $(".container").mask({
            maskImageUrl: maskedImageUrla,
            fontawesome : fontawesome,
            onMaskImageCreate: function(img) {

                img.css({
                    "position": "fixed",
                    "left": coordinates.x + "px",
                    "top": coordinates.y + "px"
                });
            }
        });

        fileupa1.onchange = function() {
            mask1.loadImage(URL.createObjectURL(fileupa1.files[0]));
        };

}); // end of document ready

// jq plugin for mask
(function($) {
    var JQmasks = [];
    $.fn.mask = function(options) {
        // This is the easiest way to have default options.
        var settings = $.extend({
            // These are the defaults.
            maskImageUrl: undefined,
            imageUrl: undefined,
            scale: 1,
            id: new Date().getUTCMilliseconds().toString(),
            x: 0, // image start position
            y: 0, // image start position
            onMaskImageCreate: function(div) {},
        }, options);

        var container = $(this);

        let prevX = 0,
            prevY = 0,
            draggable = false,
            img,
            canvas,
            context,
            image,
            timeout,
            initImage = false,
            startX = settings.x,
            startY = settings.y,
            div;

        container.mousePosition = function(event) {
            return {
                x: event.pageX || event.offsetX,
                y: event.pageY || event.offsetY
            };
        }

        container.selected = function(ev) {
            var pos = container.mousePosition(ev);
            var item = $(".masked-img canvas").filter(function() {
                var offset = $(this).offset()
                var x = pos.x - offset.left;
                var y = pos.y - offset.top;
                var d = this.getContext('2d').getImageData(x, y, 1, 1).data;
                return d[0] > 0
            });

            JQmasks.forEach(function(el) {
                var id = item.length > 0 ? $(item).attr("id") : "";
                if (el.id == id)
                    el.item.enable();
                else el.item.disable();
            });
        };

        container.enable = function() {
            draggable = true;
            $(canvas).attr("active", "true");
            div.css({
                "z-index": 2
            });
        }

        container.disable = function() {
            draggable = false;
            $(canvas).attr("active", "false");
            div.css({
                "z-index": 1
            });
        }

        container.onDragStart = function(evt) {
            container.selected(evt);
            prevX = evt.clientX;
            prevY = evt.clientY;
        };

        container.getImagePosition = function() {
            return {
                x: settings.x,
                y: settings.y,
                scale: settings.scale
            };
        };

        container.onDragOver = function(evt) {
            if (draggable && $(canvas).attr("active") === "true") {
               var x = settings.x + evt.clientX - prevX;
                var y = settings.y + evt.clientY - prevY;
                if (x == settings.x && y == settings.y)
                   return; // position has not changed
                settings.x += evt.clientX - prevX;
                settings.y += evt.clientY - prevY;
                prevX = evt.clientX;
                prevY = evt.clientY;
                container.updateStyle();
            }
        };

        container.updateStyle = function() {
            clearTimeout(timeout);
            timeout = setTimeout(function() {
                context.clearRect(0, 0, canvas.width, canvas.height);
                context.beginPath();
                context.globalCompositeOperation = "source-over";
                image = new Image();
                image.setAttribute('crossOrigin', 'anonymous');
                image.src = settings.maskImageUrl;
                image.onload = function() {
                    canvas.width = image.width;
                    canvas.height = image.height;
                    context.drawImage(image, 0, 0, image.width, image.height);
                    div.css({
                        "width": image.width,
                        "height": image.height
                    });
                };

                img = new Image();
                img.src = settings.imageUrl;
                img.setAttribute('crossOrigin', 'anonymous');
                img.onload = function() {
                    settings.x = settings.x == 0 && initImage ? (canvas.width - (img.width * settings.scale)) / 2 : settings.x;
                    settings.y = settings.y == 0 && initImage ? (canvas.height - (img.height * settings.scale)) / 2 : settings.y;
                    context.globalCompositeOperation = 'source-atop';
                    context.drawImage(img, settings.x, settings.y, img.width * settings.scale, img.height * settings.scale);
                    initImage = false;
                };
            }, 0);
        };

        // change the draggable image
        container.loadImage = function(imageUrl) {
            if (img)
                img.remove();
            // reset the code.
            settings.y = startY;
            settings.x = startX;
            prevX = prevY = 0;
            settings.imageUrl = imageUrl;
            initImage = true;
            container.updateStyle();
        };

        // change the masked Image
        container.loadMaskImage = function(imageUrl, from) {
            if (div)
                div.remove();
            canvas = document.createElement("canvas");
            context = canvas.getContext('2d');
            canvas.setAttribute("draggable", "true");
            canvas.setAttribute("id", settings.id);
            settings.maskImageUrl = imageUrl;
            div = $("
", {
                "class": "masked-img"
            }).append(canvas);

            div.find("canvas").on('touchstart mousedown', function(event) {
                if (event.handled === false) return;
                event.handled = true;
                container.onDragStart(event);
            });

            div.find("canvas").on('touchend mouseup', function(event) {
                if (event.handled === false) return;
                event.handled = true;
                container.selected(event);
            });

            div.find("canvas").bind("dragover", container.onDragOver);
            container.append(div);
            if (settings.onMaskImageCreate)
                settings.onMaskImageCreate(div);
            container.loadImage(settings.imageUrl);
        };
        container.loadMaskImage(settings.maskImageUrl);
        JQmasks.push({
            item: container,
            id: settings.id
        })
        return container;
    };
}(jQuery));
.temp
{
border: 1px solid #DDDDDD;
display: flex;
background :silver;
}
 .container
 {
 position : relative
 }
 .container i
 {
 position:absolute;
 top:0;
 bottom:0;
 left:0;
 right:0;
 margin:auto;
 height:20px;
 width:20px;
 z-index:999;
 }
.container canvas {
    display: block;
}

.masked-img {
    overflow: hidden;
    margin-top: 50px;
    position: relative;
}

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">

image 1
<input id="fileupa1"  type="file">

redpajama_set_name: RedPajamaStackExchange


text:
Plessey Releases New Generation of GaN-on-Si LEDs
Samples now available of LED p/n PLW114050.
Plymouth, England (December 3, 2013) -- Plessey announced today availability of its next generation GaN-on-Silicon mid-power LEDs. The product family doubles the efficacy of Plessey's first generation MAGIC™ (Manufactured on GaN-on-Si I/C) products released in February 2013. Using standard silicon semiconductor production techniques, Plessey is able to achieve high flux output LED products at substantially lower cost. The PLW114050 is the first in a family of entry level LED lighting products that will be released.
"We have made great strides forward in refining, productising and improving our patented MAGIC™ technology," said Dr. Keith Strickland, Plessey's Chief Technology Officer. "We have a roadmap that puts MAGIC™ ahead of the efficacies achieved by sapphire-based LEDs and, thereby, sets a new milestone in terms of Lm/$ performance. By approaching efficacy parity, we are accelerating the widespread adoption of GaN-on-Si LED-based lighting products. Our MAGIC™ LED products have a cost advantage over comparable sapphire-based LEDs as we use 6-inch, high yield, standard, automated silicon manufacturing technology."
Dr. Jose Lopez, Plessey's Chief Commercial Officer, said, "Customers are delighted that a European company is committed to developing and manufacturing world class GaN-on-Si LEDs. The market currently has many suppliers of LEDs but the quality and reliability can be variable. Plessey is a trusted brand with a 50-year plus track record of manufacturing products to the highest standards. Our aim is to light the world with MAGIC™ LEDs."
The PLW114050 product is available in a CCT range from 6500K to 2700K, with a Lambertian distribution in an industry standard 3020 package. With a drive current of 60mA, the PLW114050 has a typical forward voltage of 3.2V. A full datasheet is available on the Plessey website. Plessey also supply the blue LED PLB010050 in sawn-wafer die form. Additional package options will be made available.
For sample requests, please go to the Plessey website, http://www.plesseysemi.com.
About Plessey
Plessey is an innovator and manufacturer of technology based electronic solutions. Plessey uses their understanding of electronics and their expertise in micro-electronic product design and manufacture to radically enhance the human experience with micro-electronics. Plessey's products help people to achieve move than they thought possible. Plessey is a UK based manufacturer with offices in US, Europe and Asia.
Nigel Robson, Vortex PR, Tel: +44 1481 233080, Email: nigel@vortexpr.com

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Is there a Bootstrap class to create a color under my image on hover like in my example? https://i.imgur.com/JXh5Jv1.png As you can see here, there is a green underground effect on hover where it shifts slightly to the bottom right, making the image look like it's elevated.Is there a way to accomplish this with normal CSS or Bootstrap?
I already tried using borders and background colors but i can't get it right.

A: The thing you're looking for is box-shadow
Use it like this:
img {
    webkit-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
    -moz-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
    box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
}

You may adjust the shadow and color in here CSS Box Shadow


text:
Another Redmi 9 smartphone is on its way to India
Redmi 9 series has been growing at a rate of TWS earphones in the market. While Xiaomi recently announced the Redmi Note 9 5G lineup in China, it might now bring another Redmi 9 smartphone to India. The latest rumor suggests that Redmi 9 Power could be launched in the country on December 15. As per the leaks and rumors, it will be a rebranded version of the Redmi Note 9 4G that was also launched alongside the 5G series in China last week, which is itself very similar to the global POCO M3 model, so if the Redmi 9 series confuses you, you are not the only one.
The development comes from tipster Mikul Sharma who took to Twitter to reveal the launch date of the upcoming Redmi 9 Power. He wrote, "Exclusive] provided there's no last moment change, the Redmi 9 Power is launching in India on December 15."
[Exclusive] provided there's no last moment change, the Redmi 9 Power is launching in India on December 15.#Xiaomi #Redmi #Redmi9Power
— Mukul Sharma (@stufflistings) December 3, 2020
If the Redmi 9 Power is indeed a rebranded version of the Redmi Note 9 4G (China variant), then it will feature a 6.67-inch full-HD+ (1,080×2,340 pixels) display. It is powered by the Snapdragon 662 SoC, paired with Adreno 610 graphics processor. It has up to 8GB RAM + 256GB storage.
It sports a triple rear camera setup with a 48MP primary camera, 8MP wide-angle camera and a 2MP tertiary sensor. It is capable of shooting 1080p videos at 30fps. On the front lies an 8MP selfie shooter. The smartphone packs a 6,000mAh battery with support for 18W fast charging. There is a side-mounted fingerprint sensor and a dual stereo speaker setup.
Connectivity options include Bluetooth v4.2, Wi-Fi 02.11 a/b/g/n/ac, USB Type-C port and a headphone jack. As for the sensors, it includes ambient light, acceleration sensor, gyroscope, distance sensor, electronic compass, and more. It measures 162.3 x 77.28 x 9.6mm and weighs 198grams.
img: "https://pocketnow.com/wp/../files/2020/12/gsmarena_001-136×136.jpg",
title: "Another Redmi 9 smartphone is on its way to India",
tags: "News, Redmi 9 Power, Xiaomi",
url: "https://pocketnow.com/another-redmi-9-smartphone-is-on-its-way-to-india",
The post Another Redmi 9 smartphone is on its way to India appeared first on Pocketnow.
A leading AI ethics researcher says she's been fired from Google
How to buy carbon offsets that actually make a difference


text:
Q: Can this Excel pivot chart be duplicated in ggplot? Is it possible to duplicate this Excel pivot chart with ggplot2 or have something relatively similar? I really like that the chart displays the prices and the year-to-year percent changes on the legend below.

Here's the dput() output of my sample dataset:
price <- structure(list(selling_date = structure(c(17869, 17870, 17870,
                                          17872, 17872, 17872, 17875, 17878, 17879, 17879, 17882, 17882,
                                          17885, 17889, 17892, 17893, 17893, 17893, 17896, 18232, 18232,
                                          18233, 18234, 18235, 18235, 18235, 18236, 18236, 18239, 18239,
                                          18240, 18242, 18242, 18243, 18243, 18246, 18250, 18250, 18254,
                                          18257, 18260, 18260, 18261, 18261, 18261, 18598, 18599, 18599,
                                          18600, 18607, 18612, 18613, 18614, 18617, 18617, 18619, 18619,
                                          18619, 18624, 18626, 18627, 18964, 18967, 18968, 18970, 18970,
                                          18976, 18977, 18977, 18981, 18983, 18990), class = "Date"), selling_price = c(800000,
                                                                                625000, 105000, 580000, 419000, 360000, 795000, 320000, 790000,
                                                                                625000, 779450, 415000, 615000, 555000, 500000, 710000, 655000,
                                                                                600000, 639950, 680000, 280000, 365000, 730000, 581000, 360000,
                                                                                530000, 950000, 825000, 550000, 300000, 385000, 590000, 590000,
                                                                                660000, 410000, 510000, 799999, 575000, 690000, 700000, 565000,
                                                                                735000, 866250, 339000, 360000, 674900, 560000, 435000, 1485000,
                                                                                840000, 525000, 900000, 886000, 647000, 775000, 648000, 650000,
                                                                                349000, 675000, 1225000, 1260000, 585000, 1100000, 1400000, 960000,
                                                                                695000, 1000000, 1050000, 630000, 751000, 1225000, 1930721),
               id_num = c(1364645, 1330850, 1385154, 1337665, 1349409, 1360807,
                          1356805, 1389378, 1333399, 1286526, 1380444, 1371559, 1325930,
                          1376221, 1386441, 1334435, 1333581, 1372726, 1364979, 1508940,
                          1534939, 1526490, 1522480, 1504380, 1536453, 1538182, 1490032,
                          1533847, 1504948, 1529791, 1521259, 1537746, 1538750, 1538455,
                          1528390, 1526742, 1538271, 1512930, 1518796, 1517900, 1538821,
                          1511886, 1544288, 1511768, 1535256, 1680111, 1683767, 1675425,
                          1639303, 1680942, 1669765, 1683493, 1685799, 1637667, 1682404,
                          1690692, 1677272, 1651257, 1687505, 1674430, 1601173, 1798143,
                          1857616, 1850499, 1857149, 1840874, 1831562, 1843883, 1859947,
                          1858923, 1856840, 1854640), year = c(2018, 2018, 2018, 2018,
                                                               2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018,
                                                               2018, 2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019,
                                                               2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019,
                                                               2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019,
                                                               2019, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
                                                               2020, 2020, 2020, 2020, 2020, 2020, 2020, 2021, 2021, 2021,
                                                               2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021)), row.names = c(NA,
                                                                                -72L), class = c("tbl_df", "tbl", "data.frame"))

I'm only able to recreate a basic line plot with the same data in ggplot2, which is in the chart below.

The RStudio library I have loaded for this is library(tidyverse). Getting average and median price is easy. Here's the code I'm using for that:
price_groups <- price %>%
  group_by(year) %>%
  summarize(avg_sp = mean(selling_price),
            med_sp = median(selling_price)

Getting the percent change year-to-year is in the code below. Unless there is another way, I've found I must create an object of my grouped summaries first before I can use the lag() or lead() functions on my groups.
price_groups <- price_groups %>%
  mutate(lag_avg_sp = lag(avg_sp),
     avg_pct_change = (avg_sp - lag_avg_sp) / lag_avg_sp,
     lag_med_sp = lag(med_sp),
     med_pct_change = (med_sp - lag_med_sp) / lag_med_sp) %>%
  select(-c(lag_avg_sp, lag_med_sp))

Here's the code I've used so far in ggplot2:
options(scipen = 999)

ggplot(price_groups, aes(x = year)) +
  geom_line(aes(y = avg_sp, color = "Avg SP"), size = 2) +
  geom_line(aes(y = med_sp, color = "Median SP"), size = 2) +
  scale_y_continuous(breaks = seq(0, 1100000, by = 250000),
                     limits = c(0, 1100000),
                     labels = scales::dollar_format()) +
  scale_color_manual(values = c("Avg SP" = "steelblue", "Median SP" = "dark gray")) +
  labs(x = "Year",
       y = "Selling Price",
       color = "Price Type",
       title = "Annual Change in Price\n") +
  theme(legend.position = "bottom",
        plot.title = element_text(hjust = 0.5))

I don't know enough about ggplot2 or the tidyverse functionality to duplicate this Excel chart or create something relatively similar. I'd like to display average and median price along with average and median percent changes in the legend on the bottom on the same plot. Is this possible?
I'd prefer not to display the numbers on the lines themselves (above or below) as I think it looks cluttered.
Also, the date in the Excel chart is in wide format rather than long. After creating the price_groups object, I tried messing with pivot_wider() to recreate the format, but I don't have enough experience with this feature to figure it out. Is there a way to make the variables avg_sp, avg_pct_change, med_sp, and med_pct_change row names with the years as column names and have the values be the prices and percentages?
If recreating the Excel pivot chart isn't possible, I'd be fine with an option using pivot_wider() to create a table and make a separate image I could append to the graph.

A: Here's a shot. It's not perfect, and I don't know how to align the years in the plot with the columns in the table ...
Several packages needed for this:
library(ggplot2)
library(dplyr)
library(tidyr) # pivot_*
# library(gridExtra) # tableGrob
library(patchwork)

Data reshaping:
price_summ <- price %>%
  mutate(year = format(selling_date, format = "%Y")) %>%
  group_by(year) %>%
  summarize(
    "Avg SP" = mean(selling_price),
    "Median SP" = median(selling_price),
    .groups = "drop"
  ) %>%
  arrange(year) %>%
  mutate(
    across(
      `Avg SP`:`Median SP`,
      ~ c(NA, zoo::rollapplyr(., 2, FUN = function(z) diff(z) / z[1])),
      .names = "{sub('SP', '% Change', .col)}"
    )
  ) %>%
  pivot_longer(-year, names_to = "Price Type", values_to = "Selling Price")
price_summ
# # A tibble: 16 x 3
#    year  `Price Type`    `Selling Price`
#    <chr> <chr>                     <dbl>
#  1 2018  Avg SP             573074.
#  2 2018  Median SP          615000
#  3 2018  Avg % Change           NA
#  4 2018  Median % Change        NA
#  5 2019  Avg SP             574086.
#  6 2019  Median SP          578000
#  7 2019  Avg % Change            0.00177
#  8 2019  Median % Change        -0.0602
#  9 2020  Avg SP             783431.
# 10 2020  Median SP          674950
# 11 2020  Avg % Change            0.365
# 12 2020  Median % Change         0.168
# 13 2021  Avg SP            1029702.
# 14 2021  Median SP         1000000
# 15 2021  Avg % Change            0.314
# 16 2021  Median % Change         0.482

And two plot components (with a little more reshaping in gg2):
gg1 <- dplyr::filter(price_summ, !grepl("%", `Price Type`)) %>%
  ggplot(aes(as.integer(year), `Selling Price`)) +
  geom_line(aes(group = `Price Type`, color = `Price Type`)) +
  scale_y_continuous(labels = scales::dollar_format()) +
  labs(x = NULL) +
  theme(legend.position = "bottom")

gg2 <- price_summ %>%
  mutate(
    value2 = case_when(
      is.na(`Selling Price`) ~ "",
      grepl("%", `Price Type`) ~ scales::percent(`Selling Price`, accuracy = 0.01),
      TRUE ~ scales::dollar(`Selling Price`)
    )
  ) %>%
  pivot_wider(`Price Type`, names_from = "year", values_from = "value2") %>%
  arrange(grepl("%", `Price Type`), `Price Type`) %>%
  rename(` ` = `Price Type`) %>%
  gridExtra::tableGrob(., rows = NULL)

gg1 / gg2


Nine Harvey Norman franchisees have fined $234,000 for misleading consumers.
The mounting fines are the result of a Federal Court action from the Australian Competition and Consumer Commission against certain Harvey Norman franchisees.
The most recent judgements have led to three franchises being ordered to pay $60,000 in civil pecuniary penalties for making false or misleading representations regarding consumer guarantee rights.
The Federal Circuit Court has also ordered another Harvey Norman franchisee to pay a pecuniary penalty of $26,000.
The initial proceedings started against Gordon Superstore in November, 2012. They were followed by nine other Harvey Norman franchisees on 13 June 2013.
So far, Nine franchisees ordered to pay total penalties of $234,000.
The four most recent franchisees are Oxteha Pty Ltd, located in Oxley, Queensland ($26,000); Gordon Superstore Pty Ltd located in Gordon, New South Wales ($25,000); Mandurvit Pty Ltd located in Mandurah, Western Australia ($25,000); and Avitalb Pty Ltd located in Albury, Western Australia ($10,000).
In each case, the Court found that each franchisee had made false or misleading representations to consumers about their consumer guarantee rights.
ACCC deputy chair, Michale Schaper said the judgments imposing penalties were a clear message to all suppliers.
"No matter how big or small, that they must not mislead consumers about their rights under the Australian Consumer Law," ACCC Deputy Chair Dr Michael Schaper said.
In addition to penalties, the Federal Court and the Federal Circuit Court also made orders including declarations and injunctions in relation to the four franchisees.
Oxteha Pty Ltd and Gordon Superstores Pty Ltd were also ordered to display in-store corrective notices and implement a consumer law compliance program. Mandurvit Pty Ltd and Avitalb Pty Ltd had both ceased trading in May 2013.


Poll closed Jul 8, 2018 .
So next up is probably a home race for a lot of people here. Could be a good race, didn't watch last year but 2016 was good. Ferrari haven't been as good as Mercedes in the past here, Vettel in particular is yet to outqualify Kimi while they were teammates. However, Red Bull might bring the fight to Mercedes, its a downforce track, so it'll play into their hands.
I hope Hamilton wins it, this year.
True, but if we want Hamilton to win, it has to be in the British Grand Prix, don't you agree?
Woah, big crash for Hartley. Hope he is OK. Meanwhile, Leclerc continues his witchcraft.
Good job from Hamilton, though I feel Vettel could have taken pole if he didn't have the neck injury that cost him FP3.
Well done VFan17. You guessed correctly.
Didn't watch the race but great overtake from Vettel, where are the people who say he can't overtake? With the neck injury and all he had an excellent drive.
I watched the first few laps, but I needed to get outside. It was too hot to be inside, watching the TV, with this heatwave, that the UK is experiencing.
Hamilton and Mercedes saying Kimi hit them on purpose They need to grow up, especially James Allison, considering he worked with Ferrari and was highly regarded, yet he's the one accusing Ferrari, that's just really stupid imo.
I don't believe that this incident would have been on purpose. I believe that Hamilton was in the wrong place at the wrong time.


How to make a Southside cocktail? For the Southside recipe, first roll the mint leaves in your hand. This will release the flavor. Don't crush the mint leaves. This will release the bitter oils!!
Add the mint leaves into a glass with crushed ice. Add the gin, the lime juice and the syrup.
Stir your Southside cocktail well and top up with some soda.
Finish your Southside cocktail with the lime slices and some mint.


text:
package org.optaplanner.core.impl.score.stream.drools.uni;

import java.util.function.Predicate;

import org.optaplanner.core.impl.score.stream.drools.DroolsConstraintFactory;
import org.optaplanner.core.impl.score.stream.drools.common.nodes.UniConstraintGraphChildNode;
import org.optaplanner.core.impl.score.stream.drools.common.nodes.UniConstraintGraphNode;

public final class DroolsFilterUniConstraintStream<Solution_, A> extends DroolsAbstractUniConstraintStream<Solution_, A> {

    private final UniConstraintGraphChildNode node;

    public DroolsFilterUniConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory,
            DroolsAbstractUniConstraintStream<Solution_, A> parent, Predicate<A> predicate) {
        super(constraintFactory);
        this.node = constraintFactory.getConstraintGraph().filter(parent.getConstraintGraphNode(), predicate);
    }

    // ************************************************************************
    // Pattern creation
    // ************************************************************************

    @Override
    public UniConstraintGraphNode getConstraintGraphNode() {
        return node;
    }

    @Override
    public String toString() {
        return "Filter() with " + getChildStreams().size() + " children";
    }

}

redpajama_set_name: RedPajamaGithub


A 18.5mm Camlock B654 available in Black Chrome. The camlock can be mounted with either an '01' or '02' movement with the same housing simply by reversing the stop plate. An ideal camlock for various applications including Heavy Duty Vehicles and Asset Management.


text:
Veterinarians taking precautions amid COVID-19 pandemic
By Staff | Mar 19, 2020
Some veterinarians around the city are leading by example by limiting the interaction between clients and staff to prevent the spread of coronavirus while also caring for the four-legged patients.
Cape Coral Pet Vet Dr. Cecilia Fisher said Monday afternoon they began having pet owners call when they arrive in the parking lot after making an appointment. A staff member takes down the history of the pet, what is going on, and then a technician takes the dog, or cat, from the car and brings it into the clinic, so only the pet enters the clinic. Once the pet is checked out, the owner is called and presented with the treatment plan, procedure and/or medication before the pet is brought back outside to the owner.
"We want to limit the exposure to the client and staff," Fisher said. "We are trying to lead by example to help people keep healthy. We are making adjustments on a daily basis as needed as the guidelines change. We are following CDC, AVMA and FVMA guidelines."
As of Wednesday, she said the new protocol had been going well. She said although adjustments had to be made by staff, and clients, they have had very few issues.
"A lot of things are changing and we have to adjust as different recommendations come out," Fisher said.
In addition, the clinic has also started telemedicine for some minor issues such as ear infections and skin infections over the phone.
"We can do it either through the phone with a phone call and pictures, or Facetime, Google Duo, so we can set up some video time where we can watch them," Fisher said.
Islandside Animal Hospital is using similar protocols.
Co-owner Autumn Stokes said they began curbside appointments Thursday morning.
"We are taking it day by day as things develop. Our procedures may change depending on what we need to do to stay in protocol with the government and CDC," she said. "Our ultimate goal is to try and preserve staff as much as possible and run on a skeleton crew."
Stokes went on to say that they want to limit their staff's exposure, so no one has to go into a quarantine situation at any point; thereby allowing them to continue to provide services.
She said the curbside appointments requires clients to call once they arrive in the parking lot. One designated staff member will go out to the car, retrieve the pet and bring it back into the clinic.
The doctor and owner will be put on speaker phone, Stokes said, so the owner can hear the examination as it happens. She said they will discuss the treatment plan and do whatever is needed for the pet.
The pet will then be brought back to the owner by the same designated staff member and a credit card will be taken over the phone for payment.
As of right now, Fisher said COVID-19 does not affect pets.
According to the American Veterinary Medical Association since pet fur is porous and fibrous it is very "unlikely that you would contract COVID-19 by petting, or playing with your pet. However, because animals can spread other diseases to people and people can also spread diseases to animals, it's always a good idea to wash your hands before and after interacting with animals; ensure your pet is kept well-groomed, and regularly clean your pet's food and water bowls, bedding materials and toys."
Emergency order lifts visitation restrictions in nursing homes, more
On Sept. 2, Florida Division of Emergency Management Director and State Coordinating Officer Jared Moskowitz issued ...
Ways to save as the world works remotely
As much of the world has turned to remote work as a result of COVID-19, homes have now become offices. But just ...
Lee County Fair Housing poster contest announced
Entries are being accepted for the inaugural Lee County Fair Housing Poster Contest through Sept. 30. The contest ...


There are no secrets that time does not reveal. Sarah is the daughter of a man who signed the death warrant of Charles I, a secret she must keep from the Scot she is unexpectedly drawn to. Munro is a member of a staunch royalist family. He is determined to discover why Sarah refuses to acknowledge the alchemy between them. Once revealed, will the secret destroy them? $2.99 on Kindle.


Had a mental or intellectual disability, disorder, disease or illness, including anxiety and depression; rendering a person unable to understand or control the conduct that causes the offending.
Had a serious addiction to drugs, alcohol or volatile substance; including marijuana or alcohol, as well as drugs such as heroin, ice, speed or ecstasy.
Were homeless; living on the streets, did not have a stable place to live for a long time or were couch surfing.
The law says you may not have to pay your fines if you were experiencing a special circumstance when you got the fine and you found it difficult to avoid breaking the law.
Did not understand that you had broken the law.
Nothing in the definition of special circumstances is to be taken as limiting any power of the Court to consider the circumstances of any person.
Doogue + George defence lawyers have been successful in arguing special circumstances for matters which do not strictly fit within these guidelines.
You should contact us to discuss further if you are unsure if you could qualify for special circumstances.


County Durham cottages, apartments, holiday lets, holiday parks, bed & breakfast, hotels & guest houses in & around County Durham.
Use the left menu to view all counties in North East England not just County Durham.
Situated close to Dene and Hartlepool on Durham's Heritage Coast, so fantastic coastal views are guaranteed! The park has an all weather sports court and swimming pool plus relaxing spa bath. There is plenty to do for kids with amusements and outdoor play area. The bar and restaurant is great for evening, along with live shows and more.
Run a holiday letting business with properties in County Durham?
If you run a holiday letting business and have properties in County Durham please give me a call as I can offer you a free no obligation six-month try-out for up to ten properties! Call Bob now on: 07780 872555.


Thank you, and we look forward to hearing from many!!
There will be no internet voting. All ballots to be cast at club meeting 20 March 2018.
© 2015 Christopher Doherty, N3UVR and SPARK, the Scranton Pocono Amateur Radio Klub, Inc.


text:
Park Indiana Dunes National Park An urban oasis just 35 miles outside of Chicago, this park includes more than 15,000 acres of sensitive dune lands, bird-filled marshes, oak and maple forests, and remnants of once-vast prairies.
Park Ala Kahakai National Historic Trail This 175-mile trail on Hawaii's Big Island preserves and interprets hundreds of ancient settlement sites, with access points at Hawai'i Volcanoes National Park, Pu'uhonua o Honaunau National Historical Park, Kaloko-Honokohau National Historical Park and Pu'ukohola National Historic Site.
Press Release Nature Valley Partners with National Parks Conservation Association, Encourages Support for America's National Parks this #GivingTuesday Nov 2017 Nature Valley and National Parks Conservation Association celebrate more than eight years of protecting our national parks together.
Press Release National Park Service Heads to Maine Woods to Hear Views on National Park Site Proposal May 2016 Public meeting set for Maine to discuss proposal considered by the Obama Administration to establish The Maine Woods National Monument, a national park site in the Katahdin region of northern Maine.
Press Release Conservation Groups Ask Federal Agencies to Require Nation's Biggest National Park Polluter to Clean Up Feb 2010 Four Corners Coal Plant Causes Haze in Grand Canyon, Mesa Verde and Other National Parks
Blog Post Trivia Challenge: The Longest National Park Name Feb 2016 | By Nicolas Brulliard Q: The national park with the largest acreage is the Wrangell-St. Elias National Park and Preserve in Alaska, but do you know which national park site has the longest name?
Blog Post Check Out The National Parks Band That Supports National Park Lands Jan 2014 | By Perry Wheeler If you're like me, you love the peaceful sounds of national parks. Here's a chance to check out the inventive sounds of The National Parks—indie-folk artists Brady Parks, Sydney Carling, and Paige Wagner who make up the up-and-coming band one musician described as "the Lumineers meets Of Monsters and Men."
Press Release National Parks Group Applauds President Obama for Designating the Cesar Chavez National Monument Oct 2012 National Park Site the First to Honor a Latino American
Press Release National Parks Group Supports Recommendations to Establish New National Historical Park Honoring Cesar Chavez and the Farm Labor Movement Oct 2013 Statement by Ron Sundergill, Pacific Region Senior Director, National Parks Conservation Association
Press Release National Parks Group Applauds EPA's Final Bristol Bay Assessment for Warning of 15 Mines Beyond Pebble, Including 3 Prospects Adjacent to Lake Clark National Park and Preserve Jan 2014 Statement by Melissa Blair, Alaska Program Manager, National Parks Conservation Association
Press Release National Parks Conservation Association Opposes Park Service Move to Open Grand Teton National Park Lands to Hunting Dec 2014 Statement by Sharon Mader, Grand Teton Program Manager for the National Parks Conservation Association
Press Release Elevating White Sands National Monument to National Park Benefits Local Economy May 2018 The re-designation would create New Mexico's second National Park, and could bring in millions of tourism revenue to local communities, according to new study.
Press Release New Law Elevates Pinnacles National Monument to Become 9th National Park in California Jan 2013 Statement by Neal Desai, Pacific Region Associate Director, National Parks Conservation Association
Press Release National Parks Group Supports Nondalton Tribal Council's Opposition to Groundhog Mine Venture Near Lake Clark National Park and Preserve Feb 2015 Statement by Melissa Blair, Associate Director, Alaska Region, National Parks Conservation Association
Press Release National Parks Group Support Yosemite National Park's Final Merced River Plan, Applauds Commitment to the Park's Next 150 Years Feb 2014 Statement by Neal Desai, Pacific Region Field Director for National Parks Conservation Association
Press Release National Parks Conservation Association Encourages People to Speak Up for America's Favorite Places with National Find Your Voice Initiative Apr 2015 #FindYourVoice Kicks Off During National Park Week with East and West Coast Events
Press Release National Parks Group Honors Channel Islands National Park Leaders with Stephen T. Mather Award Oct 2015 Stephen T. Mather award presented to Channel Islands National Park Superintendent Russell Galipeau and Chief of Natural Resources Management Kate Faulkner.
Press Release Minnesotan to Receive National Award for Unwavering Commitment to Protect Midwest National Parks Nov 2014 NPCA honors Peter L. Gove with the Marjory Stoneman Douglas Award for his commitment to protecting national parks in Minnesota and Wisconsin
Press Release National Conservation Coalition Commends Legislation that Would Prevent $180 Million Loss to National Parks Jul 2014 Reauthorization of FLREA allows national parks to continue to retain fees they collect to enhance recreation benefits for visitors
Press Release Congressman Rutherford, National Park Advocates Call on Congress to Fund Restoration Efforts at National Parks in Florida May 2018 National park advocates assess repair needs at Kingsley Plantation in Timucuan Ecological and Historic Preserve.
Press Release National Parks Group Praises House Approval of Manhattan Project National Historical Park Act May 2014 Statement by Rob Smith, Northwest Regional Director, National Parks Conservation Association
Press Release National Parks Conservation Association Salutes Members of Congress with National Parks Award Jul 2015 NPCA honors members of Congress with the Friend of the National Parks Award.
Press Release National Parks Group Raises Concerns with President's Budget for National Parks Feb 2012 President's budget makes clear the increasingly difficult times that lie ahead for national parks' budgets
Press Release From Air to Water, National Parks Group Concerned by Increased Mercury Levels in Western National Parks Apr 2014 Statement by Sarah Gaines Barmeyer, Director of Conservation Programs for the National Parks Conservation Association
Press Release National Parks Conservation Association Responds to Interior Announcement Regarding Opening National Parks Oct 2013 Statement by Theresa Pierno, Acting President for the National Parks Conservation Association
Press Release Sens. Warner, Portman Introduce Bipartisan Legislation to Address National Park Service Maintenance Backlog Mar 2017 NPS has a $12 billion backlog in deferred and overdue maintenance – half is critical transportation infrastructure
Blog Post My Members of Congress Are Friends of the National Parks. Are Yours? Jul 2015 | By Natalie Levine 228 members of Congress received NPCA's Friend of the National Parks Award for their support of the National Park System through legislative votes in the 113th Congress (2013-2014).
Blog Post National Parks, and Park Apps, Free for National Park Week Apr 2012 | By Jennifer Errick Next week is National Park Week! Starting this Saturday, April 21, through Sunday, April 29, all 397 units of the park system will waive their entrance fees, from Acadia to Zion and everywhere in between. The fee-free days make an already affordable vacation to America's most spectacular places even easier on the wallet, at an ideal time for viewing wildflowers, birds, and waterfalls at many parks.
Press Release Parks Group Applauds Passage of Bills to Protect Sleeping Bear Dunes National Lakeshore and Glacier National Park Mar 2014 Statements by Lynn McClure, NPCA Senior Midwest Regional Director and Michael Jamison, NPCA Glacier Program Manager
Press Release National Parks Group Hosts College Students from Great Lakes' States at Indiana Dunes National Lakeshore to Restore Wetlands Jun 2011 Students gather for workshop on restoring wetlands
Press Release National Parks and Wilderness Groups Protest BLM Leasing Plans Near Dinosaur National Monument Dec 2012 Groups argue that BLM's decision ignores value and health of the park unit
Press Release National Parks Group Applauds NPS, Colorado National Monument Superintendent's Decision to Deny Permission for Large Sporting Event Aug 2012 Cycling Competition Would Limit Access to Park Unit for Visitors, Commercialize a Publically-Owned Site, and Create Excessive Stress on a Protected Environment
Park New River Gorge National River This national park site includes 53 miles of the New River, a federally recognized Wild and Scenic River, as well as the deep gorge that surrounds it.
Park Fort Frederica National Monument In 1733, British General James Edward Oglethorpe established the colony of Georgia in the region between the British-ruled colony of South Carolina and the Spanish-ruled colony of Florida. Oglethorpe built Fort Frederica just three years later to protect this new colony from Spanish attack.
Park National Park of American Samoa With rainforests, tropical wildlife, secluded villages, and coral-sand beaches, this remote and relatively new park is a find for adventurous travelers. Situated on three of American Samoa's islands, the park lacks the visitor facilities of more established sites, but offers much to travelers willing to do a little extra planning. Enjoy uncrowded beaches, stunning hikes, exotic birdwatching, a view into Samoan culture, and opportunities to snorkel among more than 950 species of fish and 250 types of coral.
Advocacy in Action Fragile Treasures Threatened in Chaco Culture National Historical Park The growing demand for oil and gas in northwestern New Mexico has the potential to impact the cultural and natural resources of Chaco Culture National Historical Park--including the quality of its world-renowned night skies. Flaring of natural gas and an increase in intensive artificial lighting from construction activities, vehicle traffic, and operation of support facilities can all affect the quality of the night skies both at the park's higher elevations and inside the historic canyon.
Partner Events Friends of Haleakalā National Park Service Trips Aug 2019 Join Friends of Haleakalā National Park for one of their upcoming multi-day service trips.
Partner Events Chattahoochee River National Recreation Area Trail Days Jul 2019 Join NPS for one of their bi-weekly volunteer events at Chattahoochee River National Recreation Area.
Testimony Support for the Manhattan Project National Historical Park Testimony in support of S. 3300, the Manhattan Project National Historical Park Act
Report Center for State of the Parks: Appomattox Court House National Historical Park According to an assessment by NPCA's Center for State of the Parks, current overall conditions of Appomattox Court House's known cultural resources rated a "fair" score of 68 out of 100.
See a Map National Trails Map Mar 2018 See a map of the national scenic trails and national historic trails in the Lower 48 states.
See a Map Climate Change and Our National Parks Mar 2018 See an interactive map highlighting some of the national parks facing the effects of climate change.
See a Map Farming in National Parks in the Mid-Atlantic Mar 2018 See 14 national park sites in the Chesapeake Bay watershed where farmers work with Park Service staff to manage runoff and other environmental threats responsibly.
Interactive Map National Parks and Hydraulic Fracturing Sep 2015 Oil and Gas Shale Basins and Plays in the Contiguous 48 States
Map 15 National Parks Affected by Climate Change Aug 2017 An interactive map detailing a range of ways that national parks are harmed by climate change.
Advocacy in Action Reauthorize the Land & Water Conservation Fund NPCA urges Congress to renew and fully fund one of our nation's most important conservation tools protecting public lands from incompatible development.
Advocacy in Action New Monument in Maine's Spectacular North Woods Is Under Threat In August 2016, President Barack Obama designated more than 87,500 acres of land along the East Branch of the Penobscot River in Maine as the Katahdin Woods and Waters National Monument. But the Trump administration could attempt to alter or rescind the national park site's federal protections following an April 2017 executive order mandating a federal review of national monuments created since 1996.
Advocacy in Action Protect Mojave from the Soda Mountain Solar Project Developers have proposed building the Soda Mountain Solar Project, an industrial-scale renewable energy facility, less than one mile from the boundary of Mojave National Preserve. It would be the closest renewable energy project to a national park site in the entire southwestern United States, in the middle of a critical pathway for desert bighorn sheep.
Regional Events Paddle the Potomac Aug 2019 Celebrate our nation's river and our national parks at Paddle the Potomac on August 14.
Regional Events Operation: Fix Our Parks Aug 2019 Join us on Saturday, August 3 at Mount Rainier National Park for Operation: Fix Our Parks! We're teaming up with military veterans from The Mission Continues and Wounded Warrior Project, along with the National Park Service and others, to fix trails and picnic areas to serve the park and its visitors.
Page Board of Trustees NPCA's Board of Trustees is the governing body for the nonpartisan, nonprofit organization — the nation's leading voice for America's national parks.
Page Our Values The National Parks Conservation Association (NPCA) is committed to fostering a workplace of excellence to achieve our mission to protect and enhance national parks. Our Core Values of Commitment, Inclusion, Integrity and Respect promote a diverse, ethical and innovative culture and make NPCA an effective organization and a great place to work.
Land Based Big Secret, Big Bend Tucked like a secret into a sweeping bend of the Rio Grande is Big Bend National Park, a hiker's paradise, birder's mecca, stargazer's heaven, and explorer's jackpot.
Small Ship Cruise Glacier Bay Small Ship Cruise On this small boat adventure, spend two full days exploring Glacier Bay along with exploring the wilderness of Tongass National Forest while taking in amazing views of Dawes Glacier and Humpback Whales.
NPCA@100 2019 Climate Ride Events Jul 2019 Join the movement and bike, hike or run for our national parks at one of this year's Climate Ride events.
Advocacy in Action Protect Historic Jamestown from Transmission Towers Dominion Virginia Power could soon construct 17 massive, obstructive electric transmission towers across the James River at Jamestown as well as 27 additional towers throughout the landscape. This terrible plan would forever scar historic Jamestown, Colonial National Historical Park, the Captain John Smith Trail and other beloved historic sites that tell our shared American story.
Letter Comments on Sylvan Pass Sylvan Pass comments on Yellowstone National Park's May 2011 Draft Winter Use Plan Environmental Impact Statement
Alfonso Orozco Next Generation Advisory Council Alfonso Orozco is the National Programs Coordinator for the Student Conservation Association. He is originally from Oakland, CA.
Page Trustees for the Parks Join the Trustees for the Parks, our community of national park enthusiasts.
Page Partner with NPCA Partner with National Parks Conservation Association
Testimony Testimony on Appropriations for Fiscal Year 2016 Statement of Craig D. Obey, Senior Vice President for Government Affairs, National Parks Conservation Association before the Appropriations Subcommittee on Interior, Environment and Related Agencies, March 18, 2015
Land Based Great American West From Mount Rushmore and the Crazy Horse Memorial to Custer State Park and Devils Tower, the West is a colorful storybook spilling over with strong personalities and profoundly historic landscapes. Discover some new chapters and add your own footnotes on this fun and engaging exploration.
Report Partnering to Build Resilience to Climate Change Communities and Sandy Hook: Partnering to Build Resilience to Climate Change
Small Ship Cruise Fjords of Alaska Cruise—Ultimate Expedition This is the ultimate Inside Passage tour with glaciers galore, Tlingit cultural visits, bushwacking in the Tongass, kayaking and skiffing in the glacial fjords, and of course numerous opportunities to whale watch and search for wildlife.
Land Based Chilean Adventure Unwrap Chile's loveliest layers on a journey that takes you from the culturally significant cityscape of Santiago and nearby Casablanca Valley wine country, to the Valdivian rainforests of the Lake District, to the soaring wilderness of Torres del Paine.
Staff Christine R. Goepfert Associate Director Chris is the Associate Director for NPCA's Minnesota Field Office in St. Paul, MN.
Tasfia Nayem Next Generation Advisory Counci Tasfia Nayem is a Master's candidate at Duke University's Nicholas School of the Environment, where she is studying climate economics and policy.
Qwynne Lackey Next Generation Advisory Council Qwynne is a Ph.D. student from Beaverton, Michigan currently studying at the University of Utah.
Eric Bontrager Former Senior Manager, Communications Eric Bontrager led communications outreach for NPCA's government affairs, clean air, energy, transportation, and veterans campaigns.


Thanks to a large student population and an ever-changing North Sea oil industry workforce, Aberdeen nightlife offers a cosmopolitan mix of nightclubs and bars. This makes Aberdeen ideal for nights out for all tastes and preferences.
The Park Inn by Radisson is the perfect place to stay for revellers wishing to enjoy nights out in Aberdeen. Located just a short walking distance from some of the Granite City's best venues for nightlife, guests at this modern hotel in Aberdeen are sure to enjoy its enviable location and first-class amenities.
Book the Park Inn by Radisson for hotels near Aberdeen nightlife.
Whether you are looking for old world pubs or trendy bars and clubs, you can find it in Aberdeen. And, the majority of Aberdeen's nightlife can be found close to the Park Inn along Union and Belmont Streets.
The lanes around Belmont Street offer lively watering holes popular with the students of the University of Aberdeen. Many of the area's clubs also sit alongside wide courtyards, offering enjoyable locales for outdoor drinking in the summertime.
Union Street is the place to find more mainstream bars and clubs - you'll find anything from trendy cocktail bars to traditional Scottish pubs to nightclubs serving up hip hop, indie, rock and super cheesy pop.
Aberdeen also has an exceptional music scene, and visitors will regularly find DJ nights, gigs by home-grown talent, and performances by established and up-and-coming artists at the many live-music venues peppered throughout the city.
The Park Inn by Radisson is the perfect place to return after enjoying Aberdeen nightlife. Relax after a fun night out in superior Aberdeen accommodation and recharge the next morning with a superb breakfast in the renowned RBG Bar & Grill.
Book your Aberdeen hotel today.


text:
MainAll NewsInside Israel'The slanderers will have no hope'
'The slanderers will have no hope'
Bentzi Gopstein is not amused by Peace Now's new campaign against the establishment of several Jewish housing units in Hevron.
Arutz Sheva Staff, 24/08/16 12:27
Peace Now Campaign
Left-wing organization "Peace Now" has started new a publicity campaign against Jewish construction in Hevron.
The new ad features MK Orit Strok (Jewish Home) and right-wing activists Baruch Marzel and Bentzy Gopstein in cartoon profiles accompanied by the tagline: "He who established 28 housing units in the heart of Hevron wants to perpetuate the conflict and fan the flames in the most sensitive and explosive area of the West Bank."
In response, Bentzi Gopstein, a resident of Kiryat Arba near Hevron, wrote, "'Peace Never,' the slanderers who will never have a hope. They're crying about construction in Judea and Samaria. I hope they keep crying."
In the past several days, the government has moved forward on the processes and permits necessary to enable the construction of several housing units for Jews in Hevron.
The area approved for building currently includes an army base.
Tags:Peace Now, Baruch Marzel, Bentzi Gopstein, Orit Struk, Hevron area


text:
WELCOME TO ECO CITY REPORTERS
NEWS | SPORTS | CELEBRITY GIST | MIXTAPE | COMEDY VIDEOS | JOKES | TECH | FASHION
PROMOTE MUSIC | ADVERTISE | SUBMIT FREEBEAT
Home » Foreign » Trump boosts bills to teach his favorite book — the Bible — in public schools
Trump boosts bills to teach his favorite book — the Bible — in public schools
Posted by ChiukwuebukaOn Sunday, February 03, 2019 Under: Foreign
President Trump signaled his support on Monday for state bills that would allow public schools to teach courses in the Bible, which he once proclaimed was his favorite book.
Numerous states introducing Bible Literacy classes, giving students the option of studying the Bible. Starting to make a turn back? Great!
— Donald J. Trump (@realDonaldTrump)January 28, 2019
Trump's tweet came minutes after "Fox & Friends" aired a segment Monday morning on pending legislation in six states — Florida, Indiana, Missouri, North Dakota, Virginia and West Virginia — that would allow Bible literacy courses to become a part of a public school education.
"Nothing beats the Bible," Trump famously said on the campaign trail in 2015 — not even "The Art of the Deal."
The Christian activists who crafted the template for inserting the Bible into public school curricula celebrated the president's endorsement of the idea.
"We were excited to see it happen," Steven Fitschen, president of the National Legal Foundation, told Yahoo News. "The model bill that we were involved with is for the state level, but we were excited to see him use his bully pulpit, so to speak."
Fitschen said the Congressional Prayer Caucus Foundation — a nonprofit group formed by former Virginia Republican Congressman J. Randy Forbes to promote "restoring Judeo-Christian principles" — hired him to help draft the text of legislation that could withstand First Amendment challenges to teaching the Bible in schools.
"We looked at what was already in existence and tried to craft a model bill so we could eliminate any constitutional problems, so there could be a course that taught about Islam or Buddhism or any other religion. Many other schools already have comparative religion courses," Fitschen said. "The reason we centered in on the Bible, the Old Testament and the New Testament, is the history of the country, how much of our idiom and our political framework, all these things that were biblically derived because of the historical situation with many of the early colonists."
The American Civil Liberties Union blasted both the attempt to infuse Bible literacy courses in public schools and Trump's support of it. Its concern is that, notwithstanding Fitschen's self-proclaimed commitment to religious neutrality, in practice the courses could, at least in some states, amount to a form of Christian evangelism.
"Yet again, President Trump is exploiting religious divisions to score political points. Public school Bible courses are rarely taught neutrally and objectively as required by the Constitution," Daniel Mach, director of the ACLU Program on Freedom of Religion and Belief, told Yahoo News in an email. "Instead, these courses usually resemble Sunday school classes that blatantly violate students' and parents' First Amendment rights. Religious education is best left to families and faith communities, not public school officials."
Just as the pro-business American Legislative Exchange Council crafts model bills that can be adapted and introduced in states across the country, the Congressional Prayer Caucus Foundation's blueprint for inserting the Bible into public schools follows a similar starter-kit approach.
"We don't get involved with the legislative battles," Fitschen said. "Instead what we do is we put together model bills that we think would work in any of the 50 states, and it's up on the foundation website."
While bills following the foundation's template failed to pass in Alabama, Iowa and West Virginia last year, Kentucky passed its version, House Bill 128, in 2017, over objections from the ACLU, and it was signed into law by Republican Gov. Matt Bevin.
Supporters of Bible literacy classes say the text is being taught as a historical and cultural document, but the ACLU contends that including it in the curriculum is a way to promote religion.
"In several of these classes, teachers are using the Bible to impart religious life lessons and actively inculcate Christianity," the ACLU of Kentucky wrote in a letter last year to schools seeking clarity on how the text would be presented to students.
Bills written by pro-religious groups that seek to influence the public school curriculum are not uncommon in the U.S. A new Florida measure authored by the Florida Citizens Alliance and sponsored in the state's Legislature by Republican Rep. Dennis Baxley seeks to require public schools to teach alternatives to climate change and evolution.
A September poll from the Public Religion Research Institute found Trump's approval rating from white evangelicals holding firm at 71 percent, and Monday's tweet probably won't change that.
A course in Biblical literacy might have helped Trump, who once mistakenly referred to one of the New Testament books as "Two Corinthians" instead of "Second Corinthians" — embarrassingly, at a speech at the evangelical Liberty University.
On its website, the National Legal Foundation says its mission is to "prayerfully create and implement innovative strategies that, through decisive action, will cause America's public policy and legal system to support and facilitate God's purpose for her."
Both the NLF and the CPCF view their goal of seeing Bible literacy taught in schools in all 50 states as a longterm project.
"I expect in some the states where it has failed they'll try again," Fitschen said.
This to inform the general public that individuals can order Dan-gote3xCement directly from the factory at a promo price of 1300 Naira per bag and Rice for 10,000 naira per bag. Transportation and offloading is 300 Naira,minimum for purchase is from 100 bags and above. kindly contact marketing manager Shehu Abubakar ON O 8 1 3 3 5 4 9 O 5 5 for booking and delivery. Note delivery takes two days and it's nationwide.When Strength matters,Choose 3X.PLEASE TELL OTHERS ABOUT THIS WINDOW OF OPPORTUNITY.
Africa (117) Biafra (698) Entertainment (93) Foreign (488) Gossip (178) Government (181) Middle-East (60) Music (1) National News (113) Ndigbo (155) News (2869) Nigeria (2344) Nnamdi Kanu (142) Opinion (75) Politics (154) Soccer (14) Sports (36)
"We've Power To Destroy, Do Not Test Us" - Netanyahu warns Nigeria, Palestine, others Enemies of Israel
"We're tired, Some soldiers don't want to fight anymore" – Buratai Cries out for help, Speaks on recent Boko Haram attacks
Prepare yourself, 'you made a very big mistake' by shooting down US drone amid fears of war that may start in Nigeria — Trump Tells Iran
Nigeria: Just After VP, Osinbajo complained of "Sleepless Night", Shehu Sani recommended a book to him on how to sleep well
"If you love yourself, Avoid Nigeria, their leaders are terrors" - UK govt tells its citizens
Heavy Tension hits North As Middle belt prepares for retaliation, declares war against Fulani herdsmen; vows that their ancestral lands can never be taken away by herdsmen"
Aso Rock panics, Igbos crying As Another Nnamdi Kanu's Prophecy come true again (See details)
"World War III may likely start in Nigeria" – UN official
"Vacate Igbo land with immediate effect" - Igbo youths gives Fulani herdsmen Quit notice
Aso Rock on the run as UN blows hot, sends signal to Nigeria Govt over multiple bombings in Borno
© ECO CITY REPORTERS. All Rights Reserved.
About us||Content Remova||Privacy Policy|Contact us
Advertis|Request For Music
ECO CITY REPORTERS is not responsible for the content of external sites.


Directions: North Entrance on Saint Andrews drive .6 miles turn right on Gleneagles house is on the right. South/Airport entrance .97 miles turn left Gleneagles house will be on the right.
Hello, I have a question about 100 Gleneagles St. Simons Island GA 31522.


text:
Derek Kren
VP of Sales, MediKeeper
Derek Kren is VP of Sales at MediKeeper, Inc., a leading provider of SaaS-based health and wellness portals. Prior to joining MediKeeper in 2013, Mr. Kren served as RVP and Vice President of Operations at Summit Health, Inc. and was instrumental in the company's growth from startup to one of the nation's largest providers of population health management services. A former Biomedical Sciences Corps officer with the U.S. Air Force, Mr. Kren holds undergraduate and graduate degrees in psychology and has extensive operational, business development, and sales experience in the healthcare industry.
Using Corporate Wellness to Promote Well-Being
How to Incorporate Health into Company Culture
Want To Lose Weight? Do This Before You Sign Up At The Gym
How to Manage Stress At Work During a Busy Period
The Consequences of Sleep Deprivation That Will Keep You Up at Night


Know Chatham High Class of 1989 graduates that are NOT on this List? Help us Update the 1989 Class List by adding missing names.
More 1989 alumni from Chatham HS Chatham, LA have posted profiles on Classmates.com®. Click here to register for free at Classmates.com® and view other 1989 alumni.
If you are trying to find people that graduated in '89 at Chatham High in Chatham, LA, check the alumni list below that shows the class of 1989.


text:
When a Tsunami Hits Your Home
Tommy Milanese/The Players' Tribune
Malakai Fekitoa
I'm at a Wasps game in Coventry when I read the news on my phone: A volcano has erupted near my native Tonga. Most of my family still lives there.
I call my mum, but she doesn't answer.
I just hope it's nothing serious.
This is Saturday, 15 January. I'll always remember the date, because when I turn on the news that evening, I realise that this really is serious. An underwater volcano has erupted 65 kilometres north of Tonga and caused a tsunami. The waves have damaged many of the buildings. Boats have washed up on land. On some of the smaller islands, whole villages have been wiped out. Many people have lost their homes and there is a chance, too, that some have lost their lives.
So I freak out. Most of my family still lives in my home village, Faleloa, on a chain of small islands called Ha'apai. I have close to 20 nieces and nephews there, and my childhood friends as well. Almost everyone I love lives on these islands in the Pacific Ocean.
And now they've been hit by the worst volcanic eruption the world has seen in 30 years.
So yes, the panic is real. I'm fearing the worst. Together with my partner, Claudia, I start calling all my relatives in Tonga.
I try one number after another. I'm begging to hear a voice, any voice, down the line.
But nobody answers. There's not even a dial tone.
I'm devastated. Honestly, it's so hard to describe the feeling when your family is in danger, and you're literally 10,000 miles away — and you can't do anything. We're not used to being out of touch like this. We talk and text all the time, you know? They ask me about my rugby, and I'll hear about how well my nieces are doing or whatever. A few days earlier I actually tried to get hold of my mum, because she'd been about to send my nephews and my little brother to school. She didn't pick up, but I could simply call her later … right?
I try her number one more time. The line is completely dead.
Back on the news, they're saying that the underwater cable that provides communication to the islands has been destroyed. Tonga is basically cut off from the rest of the world.
As we go to bed, we still know nothing.
The next two weeks will be the most emotional of my life.
Claudia and I sit in front of the TV all afternoon. We see videos of people fleeing the coast as the waves come in. The sky is dark with ash, and bits of volcanic rock have been raining down. The ash has polluted the drinking water, so it's really bad.
We still haven't heard anything about my island. Nobody answers the phone.
At some point Claudia and I decide that we have to do something.
There are two things you have to understand about me. The first is that Tongans are very close. There are only about 100,000 living on the islands, so we are used to taking care of each other. In the villages, even people who are living in poverty share their food and their clothes. Obviously, I left Tonga a long time ago, but that mentality is still in me.
The second is that I have a deep gratitude toward my country and my family. I feel so fortunate to be where I am — and who I am. Back in the day I was just a naughty, skinny boy with a bad haircut. I never thought about playing rugby for a living. I was playing running-straight rugby with my brothers, or making up silly rules. Mate, we were using a coconut as a ball down by the beach. That was the level.
But my parents, they always told me to strive for something bigger. I also had a cousin, Tupou Palu, who had been playing rugby in France and New Zealand, and when I was 15 we began hanging out a lot. One day I went to watch him train with Tonga Sevens, and they needed an extra player. I did the old bronco test and the coach was like, "Wait, who is this kid?" Suddenly I was training with the team.
A few weeks later the coach asked if I had a passport. I didn't, so they fixed me one.
Soon I was flying out to play a World Cup qualifier in Samoa.
I had never even been on a plane before.
Since then I have traveled the world, met some amazing people and made a living from the game I love. Everything I have, I owe to Tonga and to my family.
So as I'm watching news reports about the disaster, I act on instinct. I know that the villages will take time to rebuild. Many Tongans live off the land, which is covered in ash — the crops will need time to grow back, too. So Claudia and I set up a fundraiser page. We're going to help these people.
But then the doubt hits me: Will this even work? How many people care about these islands in the middle of the ocean? Are people really going to give up their hard-earned cash for this cause? Also, it's not like I have 10 million followers on social media, so will people even see the page?
The answer to all this is: I don't know. I really don't. But as I go to bed, I keep telling myself the same thing.
Let's just do what we can.
Wasps announce that they'll donate 20% of the ticket revenue from our home match against Saracens to Tonga. Incredible.
A lot of people are coming to the game to show their support — not just for Wasps, but for Tonga. Many of my friends are going, too. I'm overwhelmed. So proud, so grateful. How can I possibly thank all these people?
Unfortunately, I'm not supposed to play the game. I'm recovering from a dislocated shoulder that has held me out for nearly four months, and my return is set for our away game at Exeter Chiefs on 5 February. But then it hits me.
You can show these people how grateful you are … by playing.
It's risky. I'm not supposed to rush back after such a serious injury. My shoulder has already needed two operations, and the last thing I want to do is go back to square one. But I want to repay these people somehow. So I tell my physio, Ali, that I want to come back a week early. He sounds skeptical — and rightly so.
"We'll see, mate. We'll see…."
The game is in nine days.
The ash floating over Tonga has cleared enough for satellite communication to be partly restored. Finally, I manage to speak to my sisters.
They're O.K.
What a relief.
They still haven't heard anything from my mum, though. There is still no connection to Ha'apai, where the rest of my family lives.
At least three people have died in Tonga.
I'm pushing myself to the limit. But while my body is here in England, trying to help the team, my mind is in Tonga. It's been 10 days with no word from my village. All day I either train or make unanswered calls.
I don't know if I'll make this game, but I cannot let my people down.
Which reminds me … I have been here before.
When I was 14, my dad passed away. He never told me what was wrong with him, because he was one of those old-school guys who never wanted to show any weakness, you know? He had been running a construction company that was doing maintenance on a lot of the buildings on Ha'apai, so he was doing well enough to put us in good schools and good rugby teams. So yeah, we were really lucky. But when he left us, the family lost its main provider.
So we all came together to help out, young and old. And for me, that changed something. I had been a kid fooling around in the sand, but his death made me want to achieve something. It gave me a hunger to provide for my family.
Even though he was no longer with us, I still wanted to make him proud.
When I was 16, I went with Tonga to play in the Wellington Sevens in New Zealand. Word about me spread, and I got a scholarship there, at Wesley College, one of the best secondary schools in the country.
That was a real step towards a pro career. But it was so hard, mate. I was living in a hostel and I didn't speak English. I would see families visiting their sons, while I was all alone. I got really homesick. It was the toughest period of my life.
The only reason I stayed, I think, was because I refused to let down my family. I simply could not go back to Tonga with nothing.
After those three years in Auckland, I was eligible to play for New Zealand.
And then, in 2014, I was called up for the All Blacks.
Mate … I cried. I really did. I was only 22, still a kid from Tonga, and now I would play for the world's most legendary team. I called my mum. The whole family came over. When I was named on the bench for the test series against England — and I swear, I thought that was a mistake at first — I called her back up. "Mum, I'm playing! Get on the plane!!"
The debut was scary. So many people, cameras everywhere. The silence in the dressing room was frightening. I was playing with living legends, and I didn't want to let them down, you know? I had learned the national anthem. I had even studied the haka on YouTube. I thought I had it down, but once we began doing it I was too scared to think straight. I missed a few beats. Lucky that I was at the back!
When they chucked me on … I still get really emotional thinking about it. It was one of the proudest moments of my life. Honestly … just the memory makes me cry.
I'm about to go to sleep when I get a call from a random number.
I don't recognise it, but I've got nothing to lose, so I answer.
Immediately, I recognise the voice.
It's her.
Mum.
She's speaking via satellite phone, and she's O.K. They all are: Friends, relatives, everyone. I'm so, so relieved. It's the best news I can ever remember hearing. This giant weight comes off my shoulders.
We speak for five minutes before she has to give up the phone.
Finally I can relax a little bit.
There is one day left before we meet Saracens. I've only had two days of training, but Ali has given me the green light.
I'm ready, I think. I hope.
Before I go to bed, I think about why I've been putting myself through all this. And, well, it's the same reason that I left New Zealand to play for Tonga again. Obviously, I feel proud to have represented New Zealand. I have spent such a big part of my life there, and a lot of my mindset comes from there. When I go back, it is home.
But my family is in Tonga. And last year I was thinking about how much experience I had gained with New Zealand — I had won the World Cup, I had played against the Lions, I had worked with so many legendary players and mentors. So what was I going to do with it? Just retire? No chance.
Tonga had given me everything. I wanted to give something back.
Going back was an amazing feeling. I believe I have a lot of knowledge to pass on. I have so many relatives and friends looking up to me — I want to show them the way, too. The tsunami disaster has made that decision even clearer for me. It's hard to explain, but I feel more that I'm playing for the people now. I'm playing for the farmer who has lost his crops, and the mother and her children who have lost their home.
And now, against Saracens, I'm also about to play for my people — the ones who are coming to support me and Tonga. I can't promise that we'll win.
But I can promise that I'll be there.
When I run out on the field, it is one of the most emotional moments of my career. It's been four months of lonely recovery work, and I'm finally back out there with the boys. I'm doing what I love. The support from the crowd is massive.
Hannah Peters/Getty
What a feeling.
We win the game, but the real victory takes place outside the stadium. People are going around with buckets to collect aid for Tonga. Together with the ticket sales, Wasps raise nearly 17,000 pounds. That is a lot of food for Tonga.
To be honest with you, I never thought we would get this much support. The way the whole rugby community has come together has been incredible. I have received so many messages, so many donations, that, well … I'm lost for words. Many Tongans who live here have helped out, too. They've come over with spreads, fish and food from the market. Even people I have never met, who have never been to Tonga, have given up their money.
When Claudia and I started the fundraiser, we set a goal of 50,000 pounds.
We have received more than 65,000 pounds.
The situation in Tonga is still difficult — as if the tsunami wasn't bad enough, there's been a COVID-19 outbreak as well. But help has been coming — from Australia, New Zealand, Japan, Britain, China — and I'm so proud to be playing a small part in that. Every night for these last few weeks, I've sat back and thought about all these people who have never met me, but who are willing to donate. It still makes me very emotional.
The list of names is far too long to mention here. So to everyone who has supported this cause, and to anyone who might still do so, I will simply say this:
Thank you. I'm forever grateful.
And I love you all.
To contribute to Malakai's fundraiser, visit: https://www.gofundme.com/f/all-with-tonga-help-tonga
My Time in the Sun
Greig Laidlaw
The Guy with the Tie
Maro Itoje's dream was to play for England Rugby.
Maro Itoje
A Message to My Fans
Ultimately, getting to leave your sport on your own terms is all you can really hope for as an athlete.
How We Play Rugby in New Zealand
America, you gotta look up this video. It's everything that makes Dan Carter a legend. He stiff-arms one defender like Marshawn Lynch.
Julian Savea


text:
Q: sDNA - cycle model based on start and end elevations rather than 3d shapefile I want to run a cycle roundtrip model in sDNA. My file is a road center line (RCL) map, containing z coordinates (start Z, end Z - image attached).
The RCL vector file is shown by GRASS GIS as 3D, but is flat (elev = 0). Consequently, s=0, s=1, etc. yield identical results applying the cycle model (Hmf and Hmb, and all other output variables).
How could I accomplish running the cycle roundtrip model with such a file, instead of a true 3D vector?
I have converted the vector to 3D based on endpoints, but sDNA network preparation fails - many links seem to be separated vertically.

A: I couldn't say what went wrong with your conversion to 3d. However you could use an sDNA hybrid metric based on CYCLE_ROUNDTRIP and adapt it to estimate link slope from its endpoint elevations.
The default CYCLE_ROUNDTRIP metric is printed to sDNA's output when you run it:
lineformula=_a=0.2,_s=2,_t=0.04,_slope = hg/FULLeuc*100,_slopefac = _slope<2?1:(_slope<4?1.371:(_slope<6?2.203:4.239)),_slopeb = hl/FULLeuc*100,_slopefacb = _slopeb<2?1:(_slopeb<4?1.371:(_slopeb<6?2.203:4.239)),_trafficfac = 0.84*exp(aadt/1000), euc* (_slopefac^_s + _slopefacb^_s) * (_trafficfac^_t) + _a*67.2/90*ang*2;juncformula=0.2*67.2/90*ang*2

The above makes use of sDNA builtin variables hg (height gain) and hl (height loss). Note that hg and hl do not assume the link has even slope - they accumulate total height gain and loss over the link such that gains and losses do not cancel. However the CYCLE_ROUNDTRIP formula does use them in a way that assumes even slope.
In the example below I replace them with user defined temporary variables (which must start with underscore, otherwise sDNA will go looking for them in the input data) _hg and _hl
Note also that the above formula isn't applied to a whole link at once. It is applied at most to half a link (in discrete space mode) or smaller fractions thereof (in continuous space mode). So to compute mean slope for the link we compute elevation change between its endpoints and divide by the full network-Euclidean length of the link FULLeuc:
_slope = _hg/FULLeuc*100

where _hg was computed from your endpoint data TO_Z, FROM_Z as follows
_elevchange=fwd?TO_Z-FROM_Z:FROM_Z-TO_Z,_hg=_elevchange>0?_elevchange:0

(fwd tells us whether this link is being traversed forwards, hence which way round FROM and TO should be; we then set any negative elevation change to 0 to get height gain _hg).
Later in the final expression, recalling that we may not be computing a whole link at a time, we multiply the various factors by euc the length of the fraction of link under consideration.
The full formula:
lineformula=_a=0.2,_s=2,_t=0.04,_elevchange=fwd?TO_Z-FROM_Z:FROM_Z-TO_Z,_hg=_elevchange>0?_elevchange:0,_hl=_elevchange<0?-_elevchange:0,_slope = _hg/FULLeuc*100,_slopefac = _slope<2?1:(_slope<4?1.371:(_slope<6?2.203:4.239)),_slopeb = _hl/FULLeuc*100,_slopefacb = _slopeb<2?1:(_slopeb<4?1.371:(_slopeb<6?2.203:4.239)),_trafficfac = 0.84*exp(aadt/1000), euc* (_slopefac^_s + _slopefacb^_s) * (_trafficfac^_t) + _a*67.2/90*ang*2;juncformula=0.2*67.2/90*ang*2


text:
Brown Is Back: How to Incorporate Seasoned Furniture Without Dating Your Home
Interior designers no longer dismiss 'brown furniture' as vintage wood pieces that have no pedigree. Instead, they elevate them as crucial elements of décor
URBANE RENEWAL In a room by Tammy Connor, a vintage spool chair adds soul.
Photo: John Bessler and Johnny Valiant
By Kathryn O'Shea-Evans
April 4, 2019 11:59 am ET
THE FURNITURE at San Francisco designer Justin Colombik's grandparents' house in Highland Park, Ill., was what you might see at a funeral home, he said: a faux-Chippendale dining table here, a pair of Hollywood Regency-style coffee tables there. Still, when his grandparents moved to Florida, Mr. Colombik showed up with a U-Haul and filled it with furniture.
In an age when new home goods can have the lifespan of a meme, designers like Puccini Group's Mr. Colombik are newly appreciating "brown furniture." The term refers to modest antique and vintage wooden pieces with traditional silhouettes, which have been out of vogue for decades. But now pros and laypeople are not only holding on to hand-me-downs, they're buying other people's. Online marketplace 1stdibs reports that between 2017 and 2018, sales of early 20th-century reproductions of 19th-century furniture styles increased 40%.


text:
iOS 16.3 Vs iOS 15.7.3—Here's Which iPhone Update To Choose
Russian And Iranian Hackers Targeting Politicians And Journalists
EU Seeks To Avoid Another Cambridge Analytica Scandal With New Rules On Political Ads
The Threat Of "Default" Tech
Apple iOS 16.3 is Available Now With Brilliant New iPhone Features
iOS 16.3—Apple Just Gave iPhone Users 13 Reasons To Update Now
A Murderer Targeted Pregnant Moms In A Private Facebook Group, Feds Say. Its Moderators Claim No One Told Them.
This Is How Hackers Accessed 34,942 PayPal Accounts
ForbesInnovationCybersecurity
Oil Giant Shell Victimized In December 2020 Hack
Lee Mathews
Observing, pondering, and writing about tech. Generally in that order.
Mar 23, 2021, 09:02am EDT |
Royal Dutch Shell, the parent company of U.S.-based Shell Oil Company, has announced a security incident on its corporate website. Dozens of other companies were impacted by the same attack.
FILE - This Wednesday, Jan. 20, 2016 file photo shows the Shell logo at a petrol station in London. ... [+] On Friday, Feb. 12, 2021, The Associated Press reported on stories circulating online incorrectly asserting that the oil company Shell is eliminating 9,000 jobs because of President Joe Biden. But energy producer Royal Dutch Shell announced in September 2020 before Biden was elected, that the company would cut up to 9,000 jobs worldwide. (AP Photo/Kirsty Wigglesworth)
In December of 2020 hackers targeted a specific piece of hardware, Accellion's File Transfer Appliance, with previously-unreported vulnerabilities. Once they breached the vulnerable servers the hackers began exfiltrating data.
Shell's breach notice states that some of the files stolen "contained personal data and others included data from Shell companies and some of their stakeholders." That tracks with what other victims of the attack reported — victims that include law firm Jones Day, Bombardier, Qualys and grocery chain Kroger.
Shell began working with Accellion as soon as the breach was detected and its internal cybersecurity team began investigating.
To date, Shell has seen no evidence that the attackers managed to infiltrate other systems. The File Transfer Appliance was isolated from the rest of Shell's network which appears to have limited the damage.
Hackers may have zeroed in on Accellion's 20-year-old FTA because its end-of-life was rapidly approaching. Accellion had previously announced that FTA would be sunset in April of this year.
The appliances utilized CentosOS 6, a Linux-based operating system that saw long-term support end in November of 2020. Aceellion had been urging all its customers to transition from FTA to its more modern and robust Kiteworks platform.
The Inside Story Of Papa John's Toxic Culture
You're Getting The Latest Version Of Windows 11, Like It Or Not
Why Apple Is Poised For A Tough Holiday Quarter
At the time of the attack there were still around 50 companies still using FTA. It's believed that around half of those suffered significant data losses, though it may be some time before the true impact is understood.
Victims have received extortion emails from the CLoP threat actors, and those who have chosen not to meet their demands have seen data posted to a name-and-shame site on the dark web.


Adding valuable genealogical data to this website is a time-consuming process, and can't be done by one person ..... if you have access to Winnebago County records: wills, obits, marriage records, vintage photos, Bible records, cemetery transcriptions .... just about any type of record, please email me. I do respond to all emails, usually within a day or two. Together we can make this a great website!!