NNU's Department of Social Work offers both a B.A. in Social Work and a 63-credit MSW degree. Both programs are fully accredited by the Council on Social Work Education. There are approximately 225 students and eight full-time faculty members. The B.A. program focuses on generalist SW practice and the MSW program has two concentrations: mental health/additions and an integrated clinical macro track. The MSW program is a vibrant face-to-face program in Nampa and a thriving video conferencing cohort in Idaho Falls. The social work department has strong relationships with social work agencies in the communities surrounding both sites and students complete 500 hours in generalized placements and 600 hours in specialized placements.
The salary will be determined by the educational background and experience of each applicant. Full-time faculty will be offered access to a benefits package including health, vision and dental insurance for employee and family, life and long-term disability insurance, flexible spending plan, tuition benefits for employee and dependents, opportunities for professional development, sabbatical experiences, and a retirement program.


text:
UN CSW blames Israel for Arab domestic violence
UN Commission on Status of Women passes only one political resolution - to blame Israel for wife-beating of Palestinian Arab women.
Mar 24, 2016, 6:55 PM (GMT+2)
UNDanny DanonCommission On The Status Of Women
Danny Danon at UN (file)UN Photo/Kim Haughton
The Israeli mission to the United Nations, led by Danny Danon, has offered strong criticism for what it calls another example of the international body's hypocrisy against the world's only Jewish state.
Thursday's issues revolve around the Commission on the Status of Women (CSW), which voted to blame Israel for Palestinian domestic violence.
As has become routine in the United Nations, Israel alone was singled out for condemnation, while Syria, Iran, Venezuela and others were left alone.
"The UN is obsessive and hypocritical when it comes to Israel," said Ambassador Danon, who presented the member-states with a report documenting the condition of women around the world. "Terrible atrocities are taking place across the globe and they are ignored because of political interests, which then worsens their plight."
Danon's report showed that the Iranian legal system literally consider a woman's life to be worth only half that of a man's, that forced marriage and violence against women is legal in Syria, and that many Venezuelan women are prevented from accessing the criminal justice system.
"Instead of adopting resolutions to assist women in Syria, Iran or Venezuela, the CSW will adopt a single resolution with only one purpose – defaming and demonizing Israel," Danon wrote. "This is pure hypocrisy."
The CSW meets every year to discuss different ways to promote gender equality around the world. Israel always takes an active role in the Commission. Despite this, the only political resolution adopted in the CSW is the one that deals with Palestinian women, making in the most absurd manner, Israel the only country in the world condemned for its treatment of women. The rest of the resolutions adopted were not political in nature and are intended to empower women.
Last year, the international organization approved a similar unique motion against Israel.

redpajama_set_name: RedPajamaCommonCrawl


text:
// Boost.Geometry

// Copyright (c) 2015-2016 Oracle and/or its affiliates.

// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle

// Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)

#ifndef BOOST_GEOMETRY_FORMULAS_ANDOYER_INVERSE_HPP
#define BOOST_GEOMETRY_FORMULAS_ANDOYER_INVERSE_HPP

#include <boost/math/constants/constants.hpp>

#include <boost/geometry/core/radius.hpp>
#include <boost/geometry/core/srs.hpp>

#include <boost/geometry/util/condition.hpp>
#include <boost/geometry/util/math.hpp>

#include <boost/geometry/algorithms/detail/flattening.hpp>

#include <boost/geometry/formulas/differential_quantities.hpp>
#include <boost/geometry/formulas/result_inverse.hpp>

namespace boost { namespace geometry { namespace formula
{

/*!
\brief The solution of the inverse problem of geodesics on latlong coordinates,
       Forsyth-Andoyer-Lambert type approximation with first order terms.
\author See
    - Technical Report: PAUL D. THOMAS, MATHEMATICAL MODELS FOR NAVIGATION SYSTEMS, 1965
      http://www.dtic.mil/docs/citations/AD0627893
    - Technical Report: PAUL D. THOMAS, SPHEROIDAL GEODESICS, REFERENCE SYSTEMS, AND LOCAL GEOMETRY, 1970
      http://www.dtic.mil/docs/citations/AD703541
*/
template <
    typename CT,
    bool EnableDistance,
    bool EnableAzimuth,
    bool EnableReverseAzimuth = false,
    bool EnableReducedLength = false,
    bool EnableGeodesicScale = false
>
class andoyer_inverse
{
    static const bool CalcQuantities = EnableReducedLength || EnableGeodesicScale;
    static const bool CalcAzimuths = EnableAzimuth || EnableReverseAzimuth || CalcQuantities;
    static const bool CalcFwdAzimuth = EnableAzimuth || CalcQuantities;
    static const bool CalcRevAzimuth = EnableReverseAzimuth || CalcQuantities;

public:
    typedef result_inverse<CT> result_type;

    template <typename T1, typename T2, typename Spheroid>
    static inline result_type apply(T1 const& lon1,
                                    T1 const& lat1,
                                    T2 const& lon2,
                                    T2 const& lat2,
                                    Spheroid const& spheroid)
    {
        result_type result;

        // coordinates in radians

        if ( math::equals(lon1, lon2) && math::equals(lat1, lat2) )
        {
            return result;
        }

        CT const c0 = CT(0);
        CT const c1 = CT(1);
        CT const pi = math::pi<CT>();
        CT const f = detail::flattening<CT>(spheroid);

        CT const dlon = lon2 - lon1;
        CT const sin_dlon = sin(dlon);
        CT const cos_dlon = cos(dlon);
        CT const sin_lat1 = sin(lat1);
        CT const cos_lat1 = cos(lat1);
        CT const sin_lat2 = sin(lat2);
        CT const cos_lat2 = cos(lat2);

        // H,G,T = infinity if cos_d = 1 or cos_d = -1
        // lat1 == +-90 && lat2 == +-90
        // lat1 == lat2 && lon1 == lon2
        CT cos_d = sin_lat1*sin_lat2 + cos_lat1*cos_lat2*cos_dlon;
        // on some platforms cos_d may be outside valid range
        if (cos_d < -c1)
            cos_d = -c1;
        else if (cos_d > c1)
            cos_d = c1;

        CT const d = acos(cos_d); // [0, pi]
        CT const sin_d = sin(d);  // [-1, 1]

        if ( BOOST_GEOMETRY_CONDITION(EnableDistance) )
        {
            CT const K = math::sqr(sin_lat1-sin_lat2);
            CT const L = math::sqr(sin_lat1+sin_lat2);
            CT const three_sin_d = CT(3) * sin_d;

            CT const one_minus_cos_d = c1 - cos_d;
            CT const one_plus_cos_d = c1 + cos_d;
            // cos_d = 1 or cos_d = -1 means that the points are antipodal

            CT const H = math::equals(one_minus_cos_d, c0) ?
                            c0 :
                            (d + three_sin_d) / one_minus_cos_d;
            CT const G = math::equals(one_plus_cos_d, c0) ?
                            c0 :
                            (d - three_sin_d) / one_plus_cos_d;

            CT const dd = -(f/CT(4))*(H*K+G*L);

            CT const a = get_radius<0>(spheroid);

            result.distance = a * (d + dd);
        }

        if ( BOOST_GEOMETRY_CONDITION(CalcAzimuths) )
        {
            // sin_d = 0 <=> antipodal points
            if (math::equals(sin_d, c0))
            {
                // T = inf
                // dA = inf
                // azimuth = -inf
                result.azimuth = lat1 <= lat2 ? c0 : pi;
            }
            else
            {
                CT const c2 = CT(2);

                CT A = c0;
                CT U = c0;
                if ( ! math::equals(cos_lat2, c0) )
                {
                    CT const tan_lat2 = sin_lat2/cos_lat2;
                    CT const M = cos_lat1*tan_lat2-sin_lat1*cos_dlon;
                    A = atan2(sin_dlon, M);
                    CT const sin_2A = sin(c2*A);
                    U = (f/ c2)*math::sqr(cos_lat1)*sin_2A;
                }

                CT B = c0;
                CT V = c0;
                if ( ! math::equals(cos_lat1, c0) )
                {
                    CT const tan_lat1 = sin_lat1/cos_lat1;
                    CT const N = cos_lat2*tan_lat1-sin_lat2*cos_dlon;
                    B = atan2(sin_dlon, N);
                    CT const sin_2B = sin(c2*B);
                    V = (f/ c2)*math::sqr(cos_lat2)*sin_2B;
                }

                CT const T = d / sin_d;

                // even with sin_d == 0 checked above if the second point
                // is somewhere in the antipodal area T may still be great
                // therefore dA and dB may be great and the resulting azimuths
                // may be some more or less arbitrary angles

                if (BOOST_GEOMETRY_CONDITION(CalcFwdAzimuth))
                {
                    CT const dA = V*T - U;
                    result.azimuth = A - dA;
                    normalize_azimuth(result.azimuth, A, dA);
                }

                if (BOOST_GEOMETRY_CONDITION(CalcRevAzimuth))
                {
                    CT const dB = -U*T + V;
                    result.reverse_azimuth = pi - B - dB;
                    if (result.reverse_azimuth > pi)
                    {
                        result.reverse_azimuth -= 2 * pi;
                    }
                    normalize_azimuth(result.reverse_azimuth, B, dB);
                }
            }
        }

        if (BOOST_GEOMETRY_CONDITION(CalcQuantities))
        {
            typedef differential_quantities<CT, EnableReducedLength, EnableGeodesicScale, 1> quantities;
            quantities::apply(dlon, sin_lat1, cos_lat1, sin_lat2, cos_lat2,
                              result.azimuth, result.reverse_azimuth,
                              get_radius<2>(spheroid), f,
                              result.reduced_length, result.geodesic_scale);
        }

        return result;
    }

private:
    static inline void normalize_azimuth(CT & azimuth, CT const& A, CT const& dA)
    {
        CT const c0 = 0;

        if (A >= c0) // A indicates Eastern hemisphere
        {
            if (dA >= c0) // A altered towards 0
            {
                if (azimuth < c0)
                {
                    azimuth = c0;
                }
            }
            else // dA < 0, A altered towards pi
            {
                CT const pi = math::pi<CT>();
                if (azimuth > pi)
                {
                    azimuth = pi;
                }
            }
        }
        else // A indicates Western hemisphere
        {
            if (dA <= c0) // A altered towards 0
            {
                if (azimuth > c0)
                {
                    azimuth = c0;
                }
            }
            else // dA > 0, A altered towards -pi
            {
                CT const minus_pi = -math::pi<CT>();
                if (azimuth < minus_pi)
                {
                    azimuth = minus_pi;
                }
            }
        }
    }
};

}}} // namespace boost::geometry::formula

#endif // BOOST_GEOMETRY_FORMULAS_ANDOYER_INVERSE_HPP

redpajama_set_name: RedPajamaGithub


text:
Review: Mina Harker: Monster Doctor at The Butterfly Club
Review by Taylor Kendal
When one thinks of Horror, the usual suspects come to mind instantly. The Wolfman, The Mummy, Frankenstein and his Monster, and of course Dracula. But there is a name that while it might be familiar, their story is never usually the one at the forefront, at least until now. Mina Harker is notorious for being the one to finally defeat the Count himself, but what of her tale after the book ends? Fear not, dear readers, because there is a team who are here to answer those very questions in Mina Harker: Monster Doctor.
Admittedly, I was not previously aware of the comedic duo of Rob Lloyd and David S. Innes until this performance, but as a lifelong fan of Horror and a title like that, I simply could not resist. And it is safe to say that I am now completely a fan. What can I say? When you walk into a theatre and Monster Mash is playing, you know you're going to have a good time.
Written by Innes and Directed by Lloyd, Mina Harker: Monster Hunter, much like the fabled creatures of these tales, has been waiting in the shadows to be performed since the pandemic struck the entire world and put a pause on the theatre industry. A sequel to their 2019 Comedy Festival smash Dracula, the show is a loving tribute to the genre and the characters that grace the pages and the silver screen, which can be seen as a stand alone show, especially for those who are well versed in the genre.
Joining Innes and Lloyd on stage is Jen Speirs in the title role of our heroine, an intelligent, charismatic and total badass in a time where women weren't seen as much in society. Speirs puts a wonderful, charismatic and comedic spin on a character that is often sidelined and treated as a plot device rather than a heroine in her own right. Set five years after she defeated and vanquished Dracula, Mina is now a wife and mother, and balancing a career as 'no ordinary doctor'.
The three actors play a combined number of ten characters within the show, treading the boards as some of horrors most beloved characters, from the dual Dr. Jekyll and Mr. Hyde, to Victor Frankenstein, his monster, Prometheus and even Jack Griffin, the Invisible Man. Each character is played spectacularly with an endearing nod to the originals, while adding their own spin to the character, with a huge payoff with such a divine campy quality and an impeccable comedic wit, use of voice and body and a clear love and passion for what they are creating. Special mention to Rob Lloyd who plays a total of seven characters himself.
The staging is simple, with the only props being a flipbook guide through the story used effortlessly that it not only doesn't detract from the story, but provides an engaging quality between audience and cast. Fight scenes and stunts are left completely to the imagination thanks to wonderfully timed choreography and sound design.
Each element of the show is so wonderfully thought out and works together with such seamlessness and a chemistry within the cast that can be a rare find these days. From the opening credits style introduction to our heroine – complete with a theme song – to the references to well known horror characters and the hilarious style of wit and humour woven throughout the story, I had absolutely fallen in love from the start. And of course, what is any Universal Horror tribute without a rendition of Puttin' on the Ritz.
In a trademark move from Innes and Lloyd, the show is broken up with little segments of facts, each about a various trope in classic universal horror movies, such as the incarnations of Mina Harker, the Rogues Gallery of fiends and the Mash up of monsters that still can't quite be made right on the big screen just yet.
There is so much to be said about this show that I could frankly go on for pages and pages about what is just so right about this show. But I hardly think that words could do it justice and really, it's best to leave that to the professionals.


text:
MRSAid Blog
MRSAid Website Twitter Facebook Subscribe to MRSAid
Category: MRSA In The News
MRSA's Image Problem is Killing Us
By Greg Pond, July 29, 2013
MRSA is a worldwide problem. In the U.S. alone at least 19,000 people die every year because of it. 100,000 more become infected with a disfiguring, disabling, life-altering MRSA-caused disease. And studies in the U.S. and Canada show the problem increased 17-fold over an 11 year period beginning in 1995. Yet neither government nor the public seems concerned. Why is that?
Daniel Kahneman is a 77 year old Israeli psychologist. He won the Nobel Prize in Economics in 2002 for explaining the wayward thinking that is behind poor economic decision making. He was presented with the American Psychological
Association's Award for Outstanding Lifetime Contributions to Psychology in 2007. And his life's work was turned into his 2011 New York Times best-selling book Thinking, Fast and Slow.
Our problem, says Kahneman, is that we "think" too emotionally and quickly and as a result we get important things wrong: often times it is the fear factor at work. That explains why we are afraid of certain kinds of well publicized but low probability risk but indifferent to more objectively dangerous but less probable ones. Murder, accidents, and terrorism get headlines. Diabetes and asthma don't. So you are more likely to be afraid of the first 3 despite them being far less likely to affect you. Studies show that people judge deaths by accidents to be more than 300 times more likely than deaths by diabetes, but the true ratio is 1:4. And while death by disease is 18 times more likely than accidental death people judge the two as being about equally likely.
Kahneman calls this the "availability heuristic." It means that we assess the relative importance of issues by the ease with which we can think of examples of them. Therefore the more dramatic an event, the more vivid the imagery associated with it, the more it's attached to celebrity, and the more it's replayed in the media, the easier we can retrieve examples from our memory. The most recent example of this is Asiana Flight 214 that crash-landed in San Francisco this past Saturday morning killing 2 and seriously injuring dozens more. Such a remarkable event, easily retrieved from the memory bin, is what causes us to grossly exaggerate the frequency and dangerousness of events – like travelling by air. Importantly, it's not just the public that falls prey to this kind of thinking, our government decision makers do too, and perhaps no more so than in the context of terrorism.
We are more likely to drown in a bathtub than we are to die from a terrorist attack. However, since 9/11, life in the United States has been turned upside down, including the way in which the federal government allocates funds in an effort to deal with this perceived risk. There was a shift of tens of millions of dollars of federal research money since 2001 away from pathogens that cause major public health problems to obscure germs that the government fears might be used in a bioterrorist attack. So much so that according to a 2005 report in the New York Times, 758 scientists including 2 Nobel Prize winners petitioned the U.S. Government's National Institutes of Health saying grants for research that cause anthrax and 5 other diseases that are rare or non-existent in the U.S. have increased 15-fold since 2001. Over the same period grants to study bacteria not associated with bioterrorism including those associated with tuberculosis and syphilis have decreased 27 per cent. One of the petitioners, Sidney Altman, a scientist at Yale, who won the Nobel Prize in chemistry in 1989, said that while a risk of bioterrorist attack existed he considered it "a very minor factor" among all the risks faced by the nation.
So given all of this, what chance does MRSA and its cousin pathogens have of capturing public imagination and government health care dollars? On the face of it not a lot, however, there is an important precedent in the history of infectious disease that suggests otherwise.
In 1981 another then unknown disease was making its way into the United States: HIV/AIDS. The Centers for Disease Control dubiously labelled it the "4H disease" because it affected Haitians, homosexuals, heroin users, and hemophiliacs. The stigma resulted in horrific behavior towards a suspected carrier: they'd be subject to compulsory testing, mandatory quarantines, and violence. If you had it you were scared to tell anyone, health care workers quit their jobs rather than risk infection while treating someone who had it, and government treatment programs and research dollars were virtually non-existent. The word AIDS became a code word for any shameful malady. And if you got it, you died. Yet today, HIV/AIDS is no longer a death sentence. People have it and lead full lives. There is much more public understanding and acceptance, and there's government support for programming and research.
There are several reasons for the turn-around but one event in particular drew the attention of University of Central Florida social scientist Philip Pollock: In 1991 Magic Johnson told the world he was HIV-positive. What had been stigmatized as largely a "gay disease" now had a very different face. Pollock wanted to know if Magic Johnson's public acknowledgement mattered. This fit nicely into Pollock's interest in how you go about changing the public's perception of issues. What he found was that immediately after the announcement and again 10 months later the public "constructed" their view of AIDS more positively, and that included a 15-point increase in support of AIDS spending. Pollock says that intense, public, value-laden communications, or "critical moments," are of key importance in changing public awareness and opinion of issues.
This is exactly what Kahneman is saying. The flip side of dramatic personal testimony constantly played out in the media is our inability to bring to mind statistics about obscure-sounding Latin-named pathogens. No matter how strong the numbers are, the public and our representatives in government can't "hear" them: that's just human nature, says Kahneman. As he puts it, "the world in our heads is not a precise replica of reality."
In other words, it's not just the pathogens that we have to confront – it's also the flawed way in which we (don't) think about them.
Antibiotic Resistance, Methicillin-resistant Staphylococcus aureus, MRSA In The News
Antibiotic Usage needs to be Studied for Long Term Harm
By Jessica McMillan, April 19, 2013
Apart from the creation of superbugs, overuse of antibiotics has negative consequences including killing many of our beneficial bacteria. In the grand scheme of things, little is known about the bacteria we live with, and how they individually as a species, and collectively in combinations forming biofilms, get affected by various exposures to our antibiotics. Insufficient research is being conducted to help us find the answers.
Some research has suggested that antibiotic use may play a role in conditions that lead to obesity, Type 1 Diabetes, inflammatory bowel disease, allergies and even asthma, a common chronic airway disorder. Patient populations suffering from all of these chronic diseases appear to be increasing in prevalence, but very little is being done to understand if anything in contributing to all of these conditions as a group instead of just individually.
In agriculture, antibiotics have been used as "growth promoters" enabling farmers to increase their livestock yield, as their animals can gain more weight with less food. The influence of these antibiotics on the livestock we eat is likely to have some impact on our own bodies but this field has not yet been adequately investigated primarily due to lack of financial motivation. In Europe, where usage of antibiotics in livestock as growth promoters has been banned, it was determined that the same dollars spent on extra food resulted in the same growth as yielded by the additional antibiotics.
Given that antibiotics are a critical part of our medicinal arsenal, it is not likely that antibiotics will be replaced any time soon. However, it is important to start asking the questions and dedicate more resources to learning more about how the antibiotics we use directly and indirectly are truly affecting us. Once we learn more about this impact, then we can start to make progress in influencing the development of new alternatives and better approaches to antibiotic usage.
Tags: methicillin resistant staphylococcus aureus, mrsa, mrsa death, mrsa infection, MRSA treatment
Antibiotic Resistance, MRSA In The News, Staphylococcus aureus
How Much Is Your MRSA Death Worth?
By Anne Cohen, February 21, 2013
Traditionally, disease has been presented as an army of creepily crawly microbes, lurking on every surface and wafting through the air, waiting to jump up onto our skin or sneak into our nostrils to infect us.
But in an eternally ironic twist of circumstances, the very thing that we use to fight off the bacterial invader might actually be our most fickle foe. According to the medical journel Lancet, antibiotic resistance is now "a global health concern."
With friends like that, who needs enemies?
The increased exposure to all sorts of antibiotics in our everyday lives has made it so that bacteria that used to be wiped out by a dose of antibiotics have developed resistant strains.
One of the most common – and most serious – of these is Methicillin-resistant Staphylococcus aureus (MRSA), the resistant strain of the staph bacteria most commonly found in health-care settings. Read More
Tags: methicillin resistant staphylococcus aureus, mrsa, mrsa death, mrsa infection, staph, staphylococcus aureus
MRSA In The News
Can Honey Really Kill MRSA?
By Emily Croke, September 13, 2012
As antibiotic resistance becomes an increasing issue, researchers are busy investigating natural alternatives to fight deadly infections. Researchers in Liverpool for example, investigated the effects of using honey as an antibacterial agent for post-operative wound care in the fight against MRSA. Patients that had honey applied to their wounds had 36% fewer incidences of infection, and spent around 25% less time in the hospital compared to those who were not administered honey.
Lead researcher, Dr. Val Robson, explained that honey has antibacterial properties because of its high sugar content, presence of hydrogen peroxide, and low water content. Robson has since dubbed the honey utilized in this study "Medihoney."
Tags: honey, honey mrsa, honey mrsa treatment, jelly bush honey, manuka honey, mrsa, mrsa infection, MRSA treatment
1 In 3 Nurse Bags Carry Deadly Superbug MRSA
By Katie Keyes, August 14, 2012
Lipstick? Check. Wallet? Check. Car keys? Check. Deadly bacteria???
Sometimes, we carry around more than we think in our bags; such is the case for hundreds of mobile clinicians in the UK and around the globe. Studies show that 55% of nurses' medical bags that have been used to deliver community care – that is, at home medical care – in the UK are never cleaned. A mere 6% are said to be cleaned weekly. And yet, a nurse visits an average of 17 patients a day, the majority being for wound care. Plug all these stats in, and it is not surprising to hear that one third of all medical bags are said to carry the MRSA bug. There doesn't exist any official cleaning standards for nurses` bags, and as a result, traditional bags are often outdated, unsafe, simple rucksacks made from absorbent material. They're full of pockets, buttons, zippers, and folds that are difficult to clean and that can serve as perfect housing and free public transit for bacteria, particularly MRSA.
My grandmother, a community nurse in her day and a hand sanitizer-aholic, recounts that even in being conscientious of cleaning her bag regularly it was nearly impossible to get every surface, for all the snaps and crevices prevented thoroughness. She could sterilize until the cows came home, but the deepest corner of the side pocket, or the underside of the zipper, or the crease in the fabric were forever vulnerable to bacteria.
Tags: Dr. David Swann, Dr. Kate Ireland, Helen Hamlyn award for Creativity, medical bags, medical bags MRSA, mrsa infection, MRSA prevention, MRSA treatment, National Health Service's Director of Quality and Professional Services, NHS Innovation Challenge, Nurse bags, nurse bags MRSA, University of Huddersfield
Whooping Cough Making A Comeback: Is This The Worse Year Since 1959?
By Emily Croke, August 6, 2012
There has recently been a lot of talk about pertussis, also known as "whooping cough." This year, the US appears to be headed towards epidemic levels of the disease as the number of new cases approach the highest rates in 50 years. Almost 18,000 cases have been reported so far, more than double the number seen last year at the same time.
It's first important to understand why we are in the current predicament. For decades, antibiotics have been misused and abused. Did you know that more than 29 million pounds of antibiotics are given to food-producing animals in the US every year? This is done to help promote growth and prevent disease. Antibiotics have thus become less effective at treating diseases such as whooping cause. To make matters worse, few drug companies are currently developing new antibiotics to help treat serious infections. Instead, many choose to invest in the development of blockbuster drugs to help treat cancer, alzheimers and parkinsons.
Chances are, you have or know someone that has received the whopping cough vaccine. But the amount of time that has elapsed since then is a significant part of the issue at hand. This is due in part to the fact that some individuals may not be keeping up with booster shots as recommended, and others are now being administered a different version which scientists now believe may not be as effective as the bacteria becomes resistant to drugs.
Tags: pertussis, pertussis antibiotics, pertussis treatment, whooping cough, whooping cough antibiotics, whooping cough treatment
Mother Of Twins, Lana Kuykendall, Fights Deadly Flesh-Eating Bacteria
By Rebecca Emlyn, June 3, 2012
Thirteen hours after giving birth to a healthy set of twins, a South Carolina woman was diagnosed with a rare flesh-eating infection. This is the second case of necrotizing fasciitis to make headlines this month.
On May 8th, just a few hours after being discharged from Emery University Hospital in Atlanta, Lana Kuykendall was admitted in to Greenville Memorial Hospital. According to NBC News, Friend Kayla Moon stated Kuykendall, "was having a lot of pain and noticed a spot on her leg."
Kuykendall's husband, Darren Kuykendall, stated that the 'spot' initially appeared as a red and black bruise about the size of a 3 by 5 index card; however, after a half hour it grew almost a quarter of an inch. Within hours the strange bruise grew to cover the back of her leg. Moon told reporters that, "(Kuykendall) kept getting worse in front of your eyes. She would just get worse and worse and worse. Every minute it was like she was going down."
Initially, the Kuykendall couple rushed to the hospital thinking that the spot was a blood clot. Within an hour Lana Kuykendall was diagnosed with the rare-flesh eating bacteria and was rushed into the surgery room. Kuykendall underwent four surgeries; doctors removed the infected flesh and believe to have stopped the spread of the bacteria with the help of antibiotics. No Limbs had to be removed during this process. Lana is currently in critical, but stable condition.
Tags: Darren Kuykendall, Flesh-Eating Bacteria, Lana Kuykendall
California School Closed Due to a Potential MRSA Infection
By Rachel Reid, May 2, 2012
Everyone is looking for a better way to save these kids. Every kid we take care of, it's like our own child; that's why we were here – Dr. John Bradley, Chief of Infectious Disease at Rady Children's Hospital
A Carmel Valley private school was closed last month due to the possibility of one of the students having a MRSA infection. All campus activities were shut down and classes cancelled on a Thursday afternoon until being reopened the following Monday. It was suspected a female student returning from a retreat that very day to the school had potentially been infected. A letter posted on the campus website announced that the private school would be thoroughly cleaned and sanitized by trained personnel. "We feel that we are best serving the interests and well-being of our students, families and employees by taking this precaution."
According to the national Centers for Disease Control and Prevention, MRSA rates have been on the decline in hospital settings in the last decade while community-acquired cases have increased a notable degree. Just ten years ago MRSA infections were very rare in San Diego, but as Dr. John Bradley points out, the disease is becoming more "resistant and more virulent than ever." MRSA infections can take the outward appearance of physically damaged skin: painful red areas, a raised bump, abscesses and open sores. MRSA can also induce symptoms of fever and chills. Early detection and treatment, especially in children, reduces the potential severity MRSA as it can be life-threatening and often lead to limb amputation. The invasive cases are extremely dangerous as they can cause a child to die within a few days.
Tags: Carmel Valley MRsa, community-acquired mrsa, hospital-acquired mrsa, mrsa, MRSA california, mrsa infection
MRSA and Meat: 64% of Pork Samples In Grocery Stores Contaminated by Livestock and Handlers
By Rachel Reid, April 4, 2012
We've blogged in the past about MRSA being found on grocery meat in Detroit. Now, the same problem is occurring in Iowa, Minnesota, and New Jersey. A a recent study published this past January revealed that 64% of pork samples from grocery stores in these areas were contaminated with Staphylococcus aureus. Of these, more than 6% tested positive for MRSA, the drug-resistant strain of Staph.
Tara Smith, an epidemiologist at the University of Iowa and one of the study's contributing authors notes the uncertainty of the source of contamination. The molecular typing from these samples are shown as a combination of both "human" and "pig" strains. This suggests that the bacteria may be from both the farm and the people who handle the products.
As most of you know, methicillin-resistant Staphylococcus aureus is one of the most deadly and resistant strains of Staph bacteria. According to the Centers for Disease and Control and Prevention, more than 90,000 people develop a serious MRSA infection every year and up to 20% of the infected population die. Of those that survive, many face incredibly difficult recovery periods that often involve more medication and surgery. Read More
Tags: CDC, Centers for Disease Control and Prevention, David Fitzgerald, methicillin resistant staphylococcus aureus, mrsa, mrsa infection, MRSA treatment, staph infection, staph treatment
MRSA In The News – Now Being Found In Milk
By Nicole Gould, June 10, 2011
Another instance of MRSA is happening again, but this time scientists in the UK have found a strain of MRSA in cow's milk. It was found during a study on udder infection mastitis in dairy herds. It has since caused a small number of serious blood infections and other minor infections in people. There is no clear link to how people are becoming infected with this strain of MRSA, but the study suggests that this is likely a result of being in contact with infected cattle or people that work with animals.
Dr. Mark Holmes, who led the study, stated that milk from infected cows was safe to drink because the bug, along with other bacteria, was killed by pasteurisation. This is good news since more than 99% of milk consumed in the UK is pasteurised.
Tags: antibiotic resistance, antibiotics, cow, methicillin resistant staphylococcus aureus, milk, mrsa, mrsa infection, staphylococcus aurerus
Methicillin-resistant Staphylococcus aureus, MRSA In The News
Methicillin-resistant Staphylococcus aureus
MRSAid For Nasal Decolonization
Photodisinfection Technology
Tweets by @MRSAaid
Taking antibiotics can cut cancer patients life expectancy in half
'Nuf Said:
Which waitress do you prefer?
Moving away from paternalistic medicine
Aiding & Abetting Disease
© 2020 MRSAid. Powered by WordPress
Staypressed theme by Themocracy


How can I use Trading Station Desktop on a Mac?
How do I create a chart?
How do I uninstall Trading Station Desktop?
How do you trade from charts?
How do I place stop or limit orders?
How do I change the time I see on my charts on Trading Station Web?
How to run a report on Trading Station Web 2.0?
How to optimize the layout?
How do I apply a layout on Trading Station Web 2.0?
Can I re-order my subscribed list?
How do I set up my push notifications, or will I get them automatically?
What types of push notifications are supported?
How do I modify entry orders on Trading Station Mobile?
How do I create Entry Orders on Trading Station Mobile?
How do I create Market Orders on Trading Station Mobile?
How do I open and edit charts on Trading Station Mobile?
What language are Push Notifications available in?


catapult magazine ?God is the interesting thing?
Sometime in the late 1930s, Evelyn Underhill?a highly respected scholar working in the area of Christian spirituality and mysticism?wrote a letter to the Archbishop of Canterbury, outlining what she saw as being crucial for the regeneration of the spiritual life and integrity of the Church of England. ?God is the interesting thing,? she wrote, and went on to call for the church to withdraw from any activity in which God had somehow been pushed to the margins. Her message was for the clergy to get out of the helping profession?to stop trying to justify their existence as some sort of sanctified social workers?and for the church to drop any pretense of being a club or some generally helpful community agency. If ?God is the interesting thing,? then the church is first and foremost to be all about the worship of God and the cultivation of a people who desire to be steeped in prayer, meditation and study.
The Archbishop?s response goes unrecorded. In fact, there is no way to be sure that the letter was actually ever sent. In our church community, however, we have taken Underhill?s challenge very seriously.
Worship is utterly central to all that we are and all that we do. We gather Sunday evenings in a big old downtown Anglican church, and in that very traditional space we offer worship in a style that the liturgical scholar Robert Webber calls ?ancient/future.? On the one hand, we are rooted very much in the Anglican liturgical world, drawing texts for worship from both the historic Book of Common Prayer and from the more recent Book of Alternative Services of the Anglican Church of Canada. We place a simple communion table at the front of the worship space, and the congregation of 100 sits in the first dozen or so pews. The liturgy follows a fairly conventional flow: 1) the community is gathered; 2) the Word is proclaimed and prayer is offered; 3) communion is shared; 4) the community is sent out into the world ?rejoicing in the power of the Holy Spirit.? There is nothing particularly startling about the shape of that worship, yet within the basic structure we seek less conventional ways in which to draw the community into a place of openness to the presence of God.
The musicians, for instance, remain seated and off to the side. They do not face the congregation, but rather, like the congregation, are oriented toward the communion table. Though there are different ensembles of players, there is generally a guitar or two, a bass, a percussionist, and often a pianist. The music tends to be meditative, much in the vein of the Taiz? community, though with a little more grit and feel; most of these musicians have roots music backgrounds, and it shows.
At roughly 7:00pm, the music just begins. People put down the coffee they had picked up at the back of the church, make their way quietly to their places, and join in the singing. As the music resolves, I, as the presiding celebrant, stand and offer the most basic of instructions for the worship, and then call the community into a time of stillness, ?as a bell is sounded and incense is lit as a sign of our ascending prayer.? I?ve learned to let the stillness linger for as long as the bell resounds; to not rush, as if the quiet is somehow offensive. Then comes the formal liturgical greeting??The grace of our Lord Jesus Christ, and the love of God, and the fellowship of the Holy Spirit be with you all,? to which the community answers, ?And also with you,? which bridges us into another piece of music. Depending on the season, this might be in the vein of the traditional Gloria; celebratory and marked by a powerful sense of alleluia. It might be something like a Wesley hymn, recreated by our musicians to feel more earthy and perhaps more evocative, or an original piece by one of our many songwriters. Regardless, the focus is on the gathering of this community, to make us ready to hear the word and share the cup.
Prayer is offered, using the collect appointed for that particular day, and then readings from scripture are shared. We do follow the Revised Common Lectionary, but tend to use just the appointed Gospel lesson and perhaps one other reading. The reading is unrushed, surrounded by silence, and done from a lectern placed in the middle of the congregation. A sermon of no longer than 10 or 12 minutes is preached, and again silence follows. Prayer is offered by a member of the community; this prayer is both a response to the Word and a calling of this community to be mindful of the needs and pains of the wider world. Again, this is unrushed, and silence is as much a part of the prayer as are the words themselves. An invitation is offered for people to offer silent prayers of personal confession, which may also be followed by a sung corporate confession. After the absolution is pronounced, people are invited to share with each other a gesture of Christ?s peace, as God has once again offered a reconciling peace to us.
While the musicians lead us in a simple contemplative chant, the communion is shared in a large circle around the table. Members of the community are involved in administering the cup, including quite young children. Again, this is an unhurried process.
gone, gone is the light.
Hardly what most of us have come to expect as a way to end worship, yet in the wilderness time of Lent, it is extraordinarily powerful.
That?s really it. Occasionally we?ll build in something quite different: a percussion trio playing a full out drum piece on Pentecost as an attempt to express something of the raw power of the Spirit; a juggler on Trinity Sunday, holding three balls aloft in an unlikely icon for the triune nature of the One; sherry and shortbread shared off the communion table at the very end of the Christmas Eve liturgy as a very visceral reminder that such Holy Days are in fact feast days. But usually we let the music and the stillness, the icons and incense, the bread and wine, the words and prayers, do their work. We?ve been at this just a little over two years, and are just beginning to discover just how deep those basic building blocks can take us; deep into the mystery of God. And God is the interesting thing.
Jamie Howison is an Anglican priest who lives in Winnipeg, Manitoba and pastors st. benedict?s table.


text:
Home > News > Publisher News
Global Publishing Leaders 2014: De Agostini
Italy's De Agostini SpA is a family-owned international group, founded in 1901 and controlled by B&D Holding. The holding company is organized as a financial conglomerate that operates in the publishing, gaming, media communications and the financial sector. The sub-holding firm De Agostini Editore is present in 30 countries with publications in 13 languages. Publishing activities are formed in four business units: De Agostini Publishing, De Agostini Libri, Editions Atlas France/Suisse, Digital De Agostini. In 2013, De Agostini held a 2% market share in Italy.
Analysis & Key Developments
The group has not yet published its turnover figure for 2013. In 2012, De Agostini's publishing revenue accounted for 1.25 billion EUR in comparison to 1.34 billion EUR. Last year's results were corrected to 1.30 billion EUR. Based on this, revenue fell by 3.8%. The drop in revenue was attributed to Partworks (down 39 million EUR) and the book business (down 16 million EUR). Thanks to cost-containment efforts, EBITDA improved to 47 million EUR in 2012.
Publishing revenues include contributions from Partworks (747 million EUR), Direct Marketing (372 million EUR), Books (91 million EUR), Professional and training (32 million EUR) and Digital (12 million EUR).
Ownership, Mergers & Acquisition, Internal Organization
In January 2013, the reshaping of the portfolio of De Agostini Editore Group continued with the disposal of the entire stake held by De Agostini Libri in Utet and, specifically, of the General Reference and high-end publishing. Classics and Essays continue to be published by De Agostini Libri under the Utet Libri brand.
As the landscape for the Italian publishing business remained critical, the Group continued to pursue its strategy of finding new markets with greater growth potential.
Earlier Developments
In 2011, De Agostini's publishing revenue accounted for 1.34 billion EUR. Even if sales recovered in comparison to last year's 4% loss, the performance didn't match 2007 and 2008, when the company closed the year with 1.56 billion EUR and 1.62 billion, respectively. Meanwhile, EBITDA decreased from 27 million EUR to 23 million EUR. However, the corporate outcome in 2011 was improved by 18% to 5.11 billion EUR. The group's recorded EBITDA of 1.1 billion EUR is a rise of 26% compared with the previous year.
In October 2012 the board of directors appointed Paolo Ceretti as CEO. He replaced Lorenzo Pellicioli, who remains on the board.
The company initiated a reorganization of its publishing businesses in 2010, focusing on Partworks, Direct Marketing and Books, and implemented a two-arm structure in 2011. De Agostini Libri S.p.A. coordinates and manages the publishing activities on the Italian market, providing illustrated books, foreign and domestic fiction for children and adults, reference titles, cartography works and scholarly publishing. Additionally, De Agostini Libri will be active in the B2B market and sell online through DeAgostinilibri.it in partnership with Italian publishing house Hoepli. Meanwhile, De Agostini Publishing handles Partworks and of Direct Marketing with a product range of reference titles, nonfiction, children's educational material, and digital content.
DeAgostini Publishing USA Inc. was launched in January 2012 with an office in New York, to expand the company's presence in the US market.
Connecticut-based multimedia publisher Taunton Press and De Agostini have entered into an exclusive partnership agreement in which Taunton will distribute and publish all print content by Academia Barilla, a center dedicated to the promotion and development of Italian gastronomic culture in North America.
As the international arm, DeAgostini Publishing has a broad presence in Europe, Asia and Latin America, with total sales of 500m€ annually. DeAgostini publications are distributed into 46 global markets in 21 major world languages. It covers a 50% market share of partworks segment.
Bestselling Authors &Titles
Despite De Agostini is most noted for children's books, although there are titles and packages for adults as well. Having sold 700,000 units in the U.K., the adult title "Cake Decorating" comes with the tools required. Other bestselling packages as Real Bugs and Real Treasures (equipped with insect specimens and gems) are so-called Collect-a-Case products that should encourage children to gather multiple copies of one title.
Click here to return to the full listing of the world's largest publishers.


It's time to start thinking like a supply chain manager. To get you started, we've put together our top three tips for trimming the fat and optimizing recruiting workflows.
It's 2015 and it's on. If your recruiting process is frozen in time with recruiting workflows that were implemented in 2011 then you're already feeling the pain. Wait. You don't remember 2011? Let me refresh your memory. Pink slips prevailed and HR focused on damage control caused by downsizing. If you were a recruiter, you were probably clinging to your job.
These days, with 49 states reporting that employment rates have risen between July 2013 and July 2014, the landscape has shifted and employers find themselves behind the eight ball again, playing in an applicants' market. These swings in the employment sector have left many recruiting processes fragmented, bloated and rife with bad habits and inefficient recruiting workflows. For employers that want to improve recruiting in 2015, it's time to make some updates. It's time to reimagine your recruiting workflows and and improve your recruiting processes. It's time to think like a supply chain manager.
When you distill hiring to its discrete parts, it's a linear process driven by a series of yes and no decisions. In short, hiring is like an assembly line. You set out to build a product (a hire). You tool the process (configure recruiting workflows and resources). You collect inventory (applicants). You process the inventory (interviewing process). You hire (finished product).
Clearly, we've simplified the notion of recruiting here. That's the point. All too often recruiting professionals (with good intentions of course) put recruiting workflows in place that create more work, require more resources, generate more reports and so on. So, instead of adding more nuance to your recruiting process, we suggest to try thinking like a supply chain manager for a minute.
To get you started, we've put together our top three tips for trimming the fat and optimizing recruiting workflows. Adopt these supply chain principles and you'll be well on your way to eliminating wasted steps and periods of inactivity, maximizing resources and promoting consistency. At the end of the day, you'll hire faster, save time, money and resources and create a stronger "hiring culture".
The easiest way to hire better people faster is to simplify your recruiting process by eliminating wasted steps, paper forms, complicated approval processes and anything else that creates unnecessary friction in your process. Dissect your entire recruiting process starting from the initial job approval to requesting a background check and making an offer. Remove anything that will create inefficiency. Next, standardize the stages of your recruiting process across your company, organize resources that will execute at every stage and make it easy for everyone to access applicant information and recruiting pipeline data online.
Pro Tip: Get rid of all paper forms, excessive consensus building and anything else that creates unnecessary inefficiency. Avoid over customization and the urge to create different recruiting workflows for each job and department.
For nearly every employer, the hiring process is comprised of discrete, sequential events that are driven by a series of yes and no decisions that act as stage-gates. This makes the hiring process a natural candidate for an efficiency overhaul (a "supply-chaining"). By sharing decision making responsibility amongst recruiters, HR and hiring managers in a streamlined, consistent manner you will drive hiring decisions and eliminate periods of inactivity (waiting). Waiting kills a hiring process (time kills deals).
Pro Tip: Make it as easy as possible for decision makers (hiring managers) to access information and to make key yes and no decisions. Choose an applicant tracking system that promotes visibility and decision making without requiring massive customization and training. Complexity kills.
Build your process, engage decision makers and be consistent. Ultimately, consistency drives more than just efficiency or cost reductions; it's also critical for promoting compliance and producing measurable analytics (often the number one gripe we hear from HR leaders). Only a lean recruiting process with well-defined stages will efficiently capture all the required compliance outputs, bottlenecks and areas for improvement.
Pro Tip: Standardize recruiting processes across your company and avoid dramatic customizations for specific departments and locations. Remember, you'll only capture data and stay compliant if everyone participates in the process consistently.


text:
A.J. Hodges, IV - Attorney at Law
A Recognized Leader In Criminal Law And DWI Defense
Reasonable suspicion and traffic stops for DUI
On Behalf of A.J. Hodges, IV - Attorney at Law | Jun 18, 2021 | Blog, Dwi/dui
Driving under the influence of alcohol drugs is a big problem in Louisiana and around the country. Police officers must have a reasonable suspicion that a crime has been or is being committed when stopping drivers for this offense, though. The exception to this is...
Drunk Driving (1)
Dwi/dui (12)
Traffic stops: statistics, consequences and defenses
4 mistakes that may escalate a DUI charge
Common DUI mistakes among Louisiana police officers
Challenging field sobriety test results
Drunk driving trends
Shreveport Office
416 Travis St, Ste 1004
Shreveport Law Office Map
A.J. Hodges, IV - Attorney at Law, has offices in Shreveport and Baton Rouge, serves the entire state of Louisiana.
© 2023 A.J. Hodges, IV - Attorney at Law • All Rights Reserved


text:
Georgia Effectively Bans Abortion Under Bullshit 'Fetal Heartbeat' Law
On Tuesday, Georgia Gov. Brian Kemp signed the state's so-called "fetal heartbeat" law, banning abortion for women well before many know that they're pregnant and ushering in one of the harshest abortion bans in the country.
The law, the "Living Infants Fairness and Equality (LIFE) Act," bans abortions in the state after a fetal heartbeat is detected—typically within five to six weeks of conception, long before many women learn they're pregnant.
Georgia joins Kentucky, Iowa, Mississippi, Ohio, and North Dakota in passing a measure that reproductive rights advocates call a de facto ban on abortion. According to the Guttmacher Institute, none of these bills have gone into effect.
"Georgia is a state that values life," Kemp said before signing the law. "We stand up for those who are unable to speak for themselves."
Kemp went on to acknowledge that the law will be challenged. "But our job is to do what is right, not what is easy," Kemp he continued. "We will not back down. We will always continue to fight for life."
The American Civil Liberties Union has long promised to challenge the bill should it become a law. Experts say these legal challenges are a part of states' plans to overturn Roe v. Wade, emboldened by a conservative presence on the Supreme Court.
According to a study by Planned Parenthood and Guttmacher, six-week abortion bans are up by 63 percent, and state lawmakers have introduced more than 250 bills to restricting abortion just this year. While laws are blocked by federal judges, states can appeal decisions twice, the second time to the Supreme Court.
The Georgia law doesn't go into effect until January 2020. But the state's abortion laws are already difficult enough to navigate without it: Currently, women seeking an abortion are forced to endure a 24-hour waiting period before undergoing the procedure, and minors are required to notify their parents that they're getting an abortion.
"This legislative session could turn out to be the most harmful for women's health in decades," Dr. Leana Wen, Planned Parenthood Federation of America president, told CBS News. "It's no coincidence: with Trump in the White House and Kavanaugh on the Supreme Court, anti-women's health politicians are pushing an extreme agenda to take away all access to safe, legal abortion."


On Thursday 8 June 2017 the following MPs were elected to the UK Parliament.
Find out about their chosen charities and how you can invite the Mayor to your event.
Find out how you can stand for election and become a councillor for Brent.
See how your local councillors can help and support you.
See who your Members of the European Parliament are and how you can contact them.
Councillors must declare their interests and are also entitled to claim expenses.
See who your London Assembly Member is and how you can contact them.


text:
The Friendliest Place in the Universe
Yanantin & Masintin in the Andean World
Traveling Between the Worlds
Exploring Shamanism
Welcome! If you're anything like me, you're ready to stop looking at screens and close your eyes for a while. That's why I created the short audio narratives below.
These spoken-word stories are paired with music, sound cues, and clips from interviews I've conducted during my 20+ years of anthropological research. It's my hope that these recordings will offer you an intellectually and emotionally engaging sonic experience.
Lean back, close your eyes, and see where they take you. If you like what you hear, please leave a comment.
Cheers, y'all …
Psst.
For a complete list of all of my Audio Essays and more, visit my YouTube page.
"To Be A Mountain"
Listen time: 9:37
Between 2007 and 2009, as part of my graduate school fieldwork, I spent time in Cusco, Peru, studying the concept of yanantin or complementary opposites as the philosophical principle underlying the Andean worldview. I wanted to know what it was like to live in a world in which the polarities of existence—inner-outer, male-female, dark-light—are seen as interdependent parts of a harmonious whole, rather than the insidious philosophy of antagonism that underlies so much of Western-world thinking.
During this time, my friend and guide Puma Quispe Singona brought me to meet with Doña Irena, a respected local healer. When I asked her about her early training in the medicine work, she told me a remarkable story …
• Performed by Hillary S. Webb
• Narration, sound, and music composed and arranged by Hillary S. Webb
• Special thanks to Peter Scoma for his assistance with this piece
"It Sounds Like This"
This one's a little different from my other, more narratively driven pieces. Less words, more sound. Best with headphones on. 🎧
• Music, sound effects, narration created/arranged by Hillary S. Webb
• Additional sound provided by BBC Sound Effects
• Special thanks to Peter Scoma
Photo by Kristoffer Brink Jonsson on pexels.com
"Lothar's Vision"
In 2003, I was asked to interview my friend, Lothar Patten, for an article in the local paper. Known as "The Nice Man" in our hometown of Portsmouth, New Hampshire, Lothar had become a fierce advocate for the homeless during the 2004 Presidential Elections. After we finished discussing politics, we got to talking about that time he saw a ghost ...
• Narration arranged by Hillary S. Webb
• Music and sound effects composed/arranged by Hillary S. Webb
Photo by Alex Fu on Unsplash
"Ice Crickets" (with Elena Avila)
Narration excerpted from an untitled poem by Curandera (medicine woman) Elena Avila (1944-2011) as recited to me, for use in the book, Traveling Between the Worlds: Conversations with Contemporary Shamans (2004). In addition to being a talented healer and poet, Elena is the author of the best-selling book, Woman Who Glows in the Dark: A Curandera Reveals Traditional Aztec Secrets of Physical and Spiritual Health. I had the great privilege of interviewing Elena back in 2001. This excerpt is a small offering of her extraordinary spirit and talent.
• Narration by Elena Avila
• Music, sound, and narrative composed/arranged by Hillary S. Webb
Photo by Kelly Sikke on Unsplash
"He Never Did Speak About the War"
In 1998, my uncle, John Justin de Ledesma, sent my mother a 4+ hour audio letter telling her stories about his life growing up in Argentina, his long career in theater and film, and some of the remarkable synchronicities he experienced on his personal and professional path.
Included in these tales were memories of what their father--my grandfather--went through during the dark days of World War I and beyond. As with all war stories, they were composed of equal parts tragedy and bravery.
• Additional sounds provided by BBC Sound Effects
"Lauren's Dream"
In the fall of 2017, nearly a year into the Trump presidency, I traveled to Berlin, Germany, for a week's vacation. I was feeling low. I had begun to fear that the better angels of our nature had deserted us entirely—if they had ever existed at all—and that the world was, at its core, a hostile place.
While in Berlin, I signed up for a bike tour led by Lauren Van Vuuren, a South African ex-pat writer who had made a home for herself there in the Grey City. It was platonic love at first sight. Over the next several years, Lauren and I traded dozens of WhatsApp messages, detailing the events of our daily lives, from the mundane to the sublime. With her permission, I extracted excerpts from her side of the conversation in order to create the audio essay — "Lauren's Dream."
• Special thanks to Peter Scoma and Nick Phaneuf for their assistance with this piece.
"The End of Dreaming"
"The End of Dreaming" tells the story of a young man who, in the summer of 1969, underwent a radical psycho-spiritual transformation after coming upon a group of young men and women gathered around a bonfire to honor the last virgin full moon before the Apollo 11 landing.
• Written, composed, and performed by Hillary S. Webb
• Mix and additional production by Nick Phaneuf
Photo by Greg Rakozy on Unsplash
"Currents" (Wind Series)
"Currents" is a meditation on the distinction (or lack thereof) between life and death, and the ways in which we humans must decide in each moment whether to swim against the current or to let the sea change carry us along. It features a clip of an interview I did in the early 2000s with Peruvian shaman Oscar Miro Quesada and a recording my father created of my sister in the 1970s.
• Narration and sound arranged by Hillary S. Webb
• Music composed and produced by Nick Phaneuf
Photo by Stormseeker on Unsplash
"Think Back from the End" (Wind Series)
"Think Back from the End" brings together diverse voices in a sonically driven narrative piece that explores how we view the climate crisis differently according to our individual and cultural understanding of the nature of time.
• Narration, sound, and base music arranged by Hillary S. Webb
• Additional music composed, arranged, and produced by Nick Phaneuf
Voices featured within this audio piece include:
• Erick Gonzalez (excerpted from a 2001 interview)
• Margarita Tsomou and Maximillian Haas (excerpted from the "Burning Futures" discussion series held at HAU Hebbel am Ufer, Berlin, Germany, November 4, 2019)
• "Maddi" (excerpted from public remarks at the November 28, 2015 "Turn the Tide Climate Rally," Portland, Maine. Rally organized by 350 Maine and Maine College of Art)
Photo by Aron Van de Pol on Unsplash
Food for thought in your inbox.
Sign up for my newsletter to receive occasional announcements with links to my latest work, thought-provoking articles and videos, and opportunities to join the conversation about the great mystery of what makes us tick.
While we may not find any real "answers," perhaps sharing our stories can help us understand the question a little better.
Follow along for the journey.
I send emails out for important announcements, but most of the fun happens on my social media pages. Please follow along.
hillary@hillaryswebb.com
© Hillary S. Webb 2021
Website by Andercat


Yeng Cheng Yang makes beautiful yet utilitarian baskets. Using skills he learned from his father, Yeng Cheng makes traditional kawm (back baskets) and hand baskets. In an innovation due to bamboo being scarce in Wisconsin, Yeng Cheng uses plastic strips to create colorful and sturdy baskets popular for groceries, laundry, gardening and lunches. In his programs, Yeng Cheng teaches people how to make the plastic baskets. His presentations require Hmong/English translation.
Willing to travel throughout the state. Weekends preferred and one month notice is recommended.


• Features 108 super bright LEDs, which have a longer working life than traditional halogen tubes.
• Weatherproof design with on/off rocker switch.
• Built-in Li-ion 7.4V 2200mAh rechargeable battery.
• Adjustable head housed within stable steel frame.
• Supplied with mains charger and 12V in-car charger.
• Suitable for lighting workshops, garages and other environments where no mains supply is available.


Van tool safes / van tools stores.
Here we have a selection of tool stores and tool safes from Van Guard and Van Vault designed for use in all makes of vans, light commercial vehicles, cars and more.
The range of products can vary from both manufacturers however all come with the Van Line guarantee of quality.
The all new Tool Store from Van Guard. 770mm x 370mm x 370mm in black powdercoated galvanised steel tool store including a single intergrated locking mechenism and keys. Made from high quality pre-galvanised steel and riveted construction with hinged lid, rubber stoppers, pre-drilled floor holes, stays and handles.
Universal - For fitting to floor or portable storage.
The all new Tool Store from Van Guard. 910mm x 480mm x 480mm in black powdercoated galvanised steel tool store including a single intergrated locking mechenism and keys. Made from high quality pre-galvanised steel and riveted construction with hinged lid, rubber stoppers, pre-drilled floor holes, stays and handles.
The all new Tool Store from Van Guard. 1370mm x 480mm x 480mm in black powdercoated galvanised steel tool store including a twin intergrated locking mechenism and keys. Made from high quality pre-galvanised steel and riveted construction with hinged lid, rubber stoppers, pre-drilled floor holes, stays and handles.


text:
"""
Configuration of network interfaces
===================================

The network module is used to create and manage network settings,
interfaces can be set as either managed or ignored. By default
all interfaces are ignored unless specified.

.. note::

    RedHat-based systems (RHEL, CentOS, Scientific, etc.)
    have been supported since version 2014.1.0.

    Debian-based systems (Debian, Ubuntu, etc.) have been
    supported since version 2017.7.0. The following options
    are not supported: ipaddr_start, and ipaddr_end.

    Other platforms are not yet supported.

.. note::

    On Debian-based systems, networking configuration can be specified
    in `/etc/network/interfaces` or via included files such as (by default)
    `/etc/network/interfaces.d/*`. This can be problematic for configuration
    management. It is recommended to use either `file.managed` *or*
    `network.managed`.

    If using ``network.managed``, it can be useful to ensure ``interfaces.d/``
    is empty. This can be done using the following state

    .. code-block:: yaml

        /etc/network/interfaces.d:
          file.directory:
            - clean: True

Configuring Global Network Settings
-----------------------------------

Use the :py:func:`network.system <salt.states.network.system>` state to set
global network settings:

.. code-block:: yaml

    system:
      network.system:
        - enabled: True
        - hostname: server1.example.com
        - gateway: 192.168.0.1
        - gatewaydev: eth0
        - nozeroconf: True
        - nisdomain: example.com
        - require_reboot: True
        - apply_hostname: True

.. note::
    The use of ``apply_hostname`` above will apply changes to the hostname
    immediately.

.. versionchanged:: 2015.5.0
    ``apply_hostname`` added

retain_settings
***************

.. versionadded:: 2016.11.0

Use `retain_settings` to retain current network settings that are not otherwise
specified in the state. Particularly useful if only setting the hostname.
Default behavior is to delete unspecified network settings.

.. code-block:: yaml

    system:
      network.system:
        - hostname: server2.example.com
        - apply_hostname: True
        - retain_settings: True

Configuring Network Routes
--------------------------

Use the :py:func:`network.routes <salt.states.network.routes>` state to set
network routes.

.. code-block:: yaml

    routes:
      network.routes:
        - name: eth0
        - routes:
          - name: secure_network
            ipaddr: 10.2.0.0
            netmask: 255.255.255.0
            gateway: 10.1.0.3
          - name: HQ_network
            ipaddr: 10.100.0.0
            netmask: 255.255.0.0
            gateway: 10.1.0.10

Managing Network Interfaces
---------------------------

The :py:func:`network.managed <salt.states.network.managed>` state is used to
configure network interfaces. Here are several examples:

Ethernet Interface
******************

.. code-block:: yaml

    eth0:
      network.managed:
        - enabled: True
        - type: eth
        - proto: static
        - ipaddr: 10.1.0.7
        - netmask: 255.255.255.0
        - gateway: 10.1.0.1
        - enable_ipv6: true
        - ipv6proto: static
        - ipv6addrs:
          - 2001:db8:dead:beef::3/64
          - 2001:db8:dead:beef::7/64
        - ipv6gateway: 2001:db8:dead:beef::1
        - ipv6netmask: 64
        - dns:
          - 8.8.8.8
          - 8.8.4.4
        - channels:
            rx: 4
            tx: 4
            other: 4
            combined: 4

Ranged Interfaces (RHEL/CentOS Only)
************************************

.. versionadded:: 2015.8.0

Ranged interfaces can be created by including the word ``range`` in the
interface name.

.. important::
    The interface type must be ``eth``.

.. code-block:: yaml

    eth0-range0:
      network.managed:
        - type: eth
        - ipaddr_start: 192.168.1.1
        - ipaddr_end: 192.168.1.10
        - clonenum_start: 10
        - mtu: 9000

    bond0-range0:
      network.managed:
        - type: eth
        - ipaddr_start: 192.168.1.1
        - ipaddr_end: 192.168.1.10
        - clonenum_start: 10
        - mtu: 9000

    eth1.0-range0:
      network.managed:
        - type: eth
        - ipaddr_start: 192.168.1.1
        - ipaddr_end: 192.168.1.10
        - clonenum_start: 10
        - vlan: True
        - mtu: 9000

    bond0.1-range0:
      network.managed:
        - type: eth
        - ipaddr_start: 192.168.1.1
        - ipaddr_end: 192.168.1.10
        - clonenum_start: 10
        - vlan: True
        - mtu: 9000

Bond Interfaces
***************

To configure a bond, you must do the following:

- Configure the bond slaves with a ``type`` of ``slave``, and a ``master``
  option set to the name of the bond interface.

- Configure the bond interface with a ``type`` of ``bond``, and a ``slaves``
  option defining the bond slaves for the bond interface.

.. code-block:: yaml

    eth2:
      network.managed:
        - enabled: True
        - type: slave
        - master: bond0

    eth3:
      network.managed:
        - enabled: True
        - type: slave
        - master: bond0

    bond0:
      network.managed:
        - type: bond
        - ipaddr: 10.1.0.1
        - netmask: 255.255.255.0
        - mode: gre
        - proto: static
        - dns:
          - 8.8.8.8
          - 8.8.4.4
        - enabled: False
        - slaves: eth2 eth3
        - require:
          - network: eth2
          - network: eth3
        - miimon: 100
        - arp_interval: 250
        - downdelay: 200
        - lacp_rate: fast
        - max_bonds: 1
        - updelay: 0
        - use_carrier: on
        - hashing-algorithm: layer2
        - mtu: 9000
        - autoneg: on
        - speed: 1000
        - duplex: full
        - rx: on
        - tx: off
        - sg: on
        - tso: off
        - ufo: off
        - gso: off
        - gro: off
        - lro: off

VLANs
*****

Set ``type`` to ``vlan`` to configure a VLANs. These VLANs are configured on
the bond interface defined above.

.. code-block:: yaml

    bond0.2:
      network.managed:
        - type: vlan
        - ipaddr: 10.1.0.2
        - use:
          - network: bond0
        - require:
          - network: bond0

    bond0.3:
      network.managed:
        - type: vlan
        - ipaddr: 10.1.0.3
        - use:
          - network: bond0
        - require:
          - network: bond0

    bond0.10:
      network.managed:
        - type: vlan
        - ipaddr: 10.1.0.4
        - use:
          - network: bond0
        - require:
          - network: bond0

    bond0.12:
      network.managed:
        - type: vlan
        - ipaddr: 10.1.0.5
        - use:
          - network: bond0
        - require:
          - network: bond0

Bridge Interfaces
*****************

.. code-block:: yaml

    eth4:
      network.managed:
        - enabled: True
        - type: eth
        - proto: dhcp
        - bridge: br0

    br0:
      network.managed:
        - enabled: True
        - type: bridge
        - proto: dhcp
        - bridge: br0
        - delay: 0
        - ports: eth4
        - bypassfirewall: True
        - use:
          - network: eth4
        - require:
          - network: eth4

.. note::
    When managing bridged interfaces on a Debian/Ubuntu based system, the
    ``ports`` argument is required. RedHat-based systems will ignore the
    argument.

Network Teaming (RHEL/CentOS 7 and later)
*****************************************

.. versionadded:: 3002

- Configure the members of the team interface with a ``type`` of ``teamport``,
  and a ``team_master`` option set to the name of the bond interface.

  - ``master`` also works, but will be ignored if both ``team_master`` and
    ``master`` are present.

  - If applicable, include a ``team_port_config`` option. This should be
    formatted as a dictionary. Keep in mind that due to a quirk of PyYAML,
    dictionaries nested under a list item must be double-indented (see example
    below for interface ``eth5``).

- Configure the team interface with a ``type`` of ``team``. The team
  configuration should be passed via the ``team_config`` option. As with
  ``team_port_config``, the dictionary should be double-indented.

.. code-block:: yaml

    eth5:
      network.managed:
        - type: teamport
        - team_master: team0
        - team_port_config:
            prio: 100

    eth6:
      network.managed:
        - type: teamport
        - team_master: team0

    team0:
      network.managed:
        - type: team
        - ipaddr: 172.24.90.42
        - netmask: 255.255.255.128
        - enable_ipv6: True
        - ipv6addr: 'fee1:dead:beef:af43::'
        - team_config:
            runner:
              hwaddr_policy: by_active
              name: activebackup
              link_watch:
                name: ethtool

.. note::
    While ``teamd`` must be installed to manage a team interface, it is not
    required to configure a separate :py:func:`pkg.installed
    <salt.states.pkg.installed>` state for it, as it will be silently installed
    if needed.

Configuring the Loopback Interface
**********************************

Use :py:func:`network.managed <salt.states.network.managed>` with a ``type`` of
``eth`` and a ``proto`` of ``loopback``.

.. code-block:: yaml

    lo:
      network.managed:
        - name: lo
        - type: eth
        - proto: loopback
        - onboot: yes
        - userctl: no
        - ipv6_autoconf: no
        - enable_ipv6: true

Other Useful Options
--------------------

noifupdown
**********

The ``noifupdown`` option, if set to ``True``, will keep Salt from restart the
interface if changes are made, requiring them to be restarted manually. Here
are a couple examples:

.. code-block:: yaml

    eth7:
      network.managed:
        - enabled: True
        - type: eth
        # Automatic IP/DNS
        - proto: dhcp
        - noifupdown: True

    eth8:
      network.managed:
        - type: eth
        - noifupdown: True

        # IPv4
        - proto: static
        - ipaddr: 192.168.4.9
        - netmask: 255.255.255.0
        - gateway: 192.168.4.1
        - enable_ipv6: True

        # IPv6
        - ipv6proto: static
        - ipv6addr: 2001:db8:dead:c0::3
        - ipv6netmask: 64
        - ipv6gateway: 2001:db8:dead:c0::1
        # override shared; makes those options v4-only
        - ipv6ttl: 15

        # Shared
        - mtu: 1480
        - ttl: 18
        - dns:
          - 8.8.8.8
          - 8.8.4.4
"""

import difflib
import logging

import salt.loader
import salt.utils.network
import salt.utils.platform

# Set up logging
log = logging.getLogger(__name__)

def __virtual__():
    """
    Confine this module to non-Windows systems with the required execution
    module available.
    """
    if salt.utils.platform.is_windows():
        return (False, "Only supported on non-Windows OSs")
    if "ip.get_interface" in __salt__:
        return True
    return (False, "ip module could not be loaded")

def managed(name, enabled=True, **kwargs):
    """
    Ensure that the named interface is configured properly.

    name
        The name of the interface to manage

    type : eth
        Type of interface and configuration

        .. versionchanged:: 3002

    enabled
        Designates the state of this interface.
    """
    # For this function we are purposefully overwriting a bif
    # to enhance the user experience. This does not look like
    # it will cause a problem. Just giving a heads up in case
    # it does create a problem.
    ret = {
        "name": name,
        "changes": {},
        "result": True,
        "comment": "Interface {} is up to date.".format(name),
    }
    if "test" not in kwargs:
        kwargs["test"] = __opts__.get("test", False)

    # set ranged status
    apply_ranged_setting = False

    # Pull interface type out of kwargs
    iface_type = str(kwargs.pop("type", "eth"))

    if "addr" in kwargs:
        hwaddr = kwargs.pop("addr")
        msg = "'addr' is not a valid argument name, "
        if "hwaddr" not in kwargs:
            msg += "its value has been assigned to 'hwaddr' instead."
            kwargs["hwaddr"] = hwaddr
        else:
            msg += "it has been ignored in favor of 'hwaddr'."
        msg += " Update your SLS file to get rid of this warning."
        ret.setdefault("warnings", []).append(msg)

    # Build interface
    try:
        old = __salt__["ip.get_interface"](name)
        new = __salt__["ip.build_interface"](name, iface_type, enabled, **kwargs)
        if kwargs["test"]:
            if old == new:
                pass
            if not old and new:
                ret["result"] = None
                ret["comment"] = "Interface {} is set to be added.".format(name)
            elif old != new:
                diff = difflib.unified_diff(old, new, lineterm="")
                ret["result"] = None
                ret["comment"] = "Interface {} is set to be updated:\n{}".format(
                    name, "\n".join(diff)
                )
        else:
            if not old and new:
                ret["comment"] = "Interface {} added.".format(name)
                ret["changes"]["interface"] = "Added network interface."
                apply_ranged_setting = True
            elif old != new:
                diff = difflib.unified_diff(old, new, lineterm="")
                ret["comment"] = "Interface {} updated.".format(name)
                ret["changes"]["interface"] = "\n".join(diff)
                apply_ranged_setting = True
    except AttributeError as error:
        ret["result"] = False
        ret["comment"] = str(error)
        return ret

    # Debian based system can have a type of source
    # in the interfaces file, we don't ifup or ifdown it
    if iface_type == "source":
        return ret

    # Setup up bond modprobe script if required
    if iface_type == "bond" and "ip.get_bond" in __salt__:
        try:
            old = __salt__["ip.get_bond"](name)
            new = __salt__["ip.build_bond"](name, **kwargs)
            if kwargs["test"]:
                if not old and new:
                    ret["result"] = None
                    ret["comment"] = "Bond interface {} is set to be added.".format(
                        name
                    )
                elif old != new:
                    diff = difflib.unified_diff(old, new, lineterm="")
                    ret["result"] = None
                    ret[
                        "comment"
                    ] = "Bond interface {} is set to be updated:\n{}".format(
                        name, "\n".join(diff)
                    )
            else:
                if not old and new:
                    ret["comment"] = "Bond interface {} added.".format(name)
                    ret["changes"]["bond"] = "Added bond {}.".format(name)
                    apply_ranged_setting = True
                elif old != new:
                    diff = difflib.unified_diff(old, new, lineterm="")
                    ret["comment"] = "Bond interface {} updated.".format(name)
                    ret["changes"]["bond"] = "\n".join(diff)
                    apply_ranged_setting = True
        except AttributeError as error:
            # TODO Add a way of reversing the interface changes.
            ret["result"] = False
            ret["comment"] = str(error)
            return ret

    if kwargs["test"]:
        return ret

    # For Redhat/Centos ranged network
    if "range" in name:
        if apply_ranged_setting:
            try:
                ret["result"] = __salt__["service.restart"]("network")
                ret["comment"] = "network restarted for change of ranged interfaces"
                return ret
            except Exception as error:  # pylint: disable=broad-except
                ret["result"] = False
                ret["comment"] = str(error)
                return ret
        ret["result"] = True
        ret["comment"] = "no change, passing it"
        return ret

    # Bring up/shutdown interface
    try:
        # Get Interface current status
        interfaces = salt.utils.network.interfaces()
        interface_status = False
        if name in interfaces:
            interface_status = interfaces[name].get("up")
        else:
            for iface in interfaces:
                if "secondary" in interfaces[iface]:
                    for second in interfaces[iface]["secondary"]:
                        if second.get("label", "") == name:
                            interface_status = True
                if iface == "lo":
                    if "inet" in interfaces[iface]:
                        inet_data = interfaces[iface]["inet"]
                        if len(inet_data) > 1:
                            for data in inet_data:
                                if data.get("label", "") == name:
                                    interface_status = True
                    if "inet6" in interfaces[iface]:
                        inet6_data = interfaces[iface]["inet6"]
                        if len(inet6_data) > 1:
                            for data in inet6_data:
                                if data.get("label", "") == name:
                                    interface_status = True
        if enabled:
            if "noifupdown" not in kwargs:
                if interface_status:
                    if ret["changes"]:
                        # Interface should restart to validate if it's up
                        __salt__["ip.down"](name, iface_type)
                        __salt__["ip.up"](name, iface_type)
                        ret["changes"][
                            "status"
                        ] = "Interface {} restart to validate".format(name)
                else:
                    __salt__["ip.up"](name, iface_type)
                    ret["changes"]["status"] = "Interface {} is up".format(name)
        else:
            if "noifupdown" not in kwargs:
                if interface_status:
                    __salt__["ip.down"](name, iface_type)
                    ret["changes"]["status"] = "Interface {} down".format(name)
    except Exception as error:  # pylint: disable=broad-except
        ret["result"] = False
        ret["comment"] = str(error)
        return ret

    # Try to enslave bonding interfaces after master was created
    if iface_type == "bond" and "noifupdown" not in kwargs:

        if "slaves" in kwargs and kwargs["slaves"]:
            # Check that there are new slaves for this master
            present_slaves = __salt__["cmd.run"](
                ["cat", "/sys/class/net/{}/bonding/slaves".format(name)]
            ).split()
            if isinstance(kwargs["slaves"], list):
                desired_slaves = kwargs["slaves"]
            else:
                desired_slaves = kwargs["slaves"].split()
            missing_slaves = set(desired_slaves) - set(present_slaves)

            # Enslave only slaves missing in master
            if missing_slaves:
                if __grains__["os_family"] != "Suse":
                    ifenslave_path = __salt__["cmd.run"](["which", "ifenslave"]).strip()
                    if ifenslave_path:
                        log.info(
                            "Adding slaves '%s' to the master %s",
                            " ".join(missing_slaves),
                            name,
                        )
                        cmd = [ifenslave_path, name] + list(missing_slaves)
                        __salt__["cmd.run"](cmd, python_shell=False)
                    else:
                        log.error("Command 'ifenslave' not found")
                    ret["changes"][
                        "enslave"
                    ] = "Added slaves '{}' to master '{}'".format(
                        " ".join(missing_slaves), name
                    )
            else:
                log.info(
                    "All slaves '%s' are already added to the master %s"
                    ", no actions required",
                    " ".join(missing_slaves),
                    name,
                )

    if enabled and interface_status:
        # Interface was restarted, return
        return ret

    # Make sure that the network grains reflect any changes made here
    __salt__["saltutil.refresh_grains"]()
    return ret

def routes(name, **kwargs):
    """
    Manage network interface static routes.

    name
        Interface name to apply the route to.

    kwargs
        Named routes
    """
    ret = {
        "name": name,
        "changes": {},
        "result": True,
        "comment": "Interface {} routes are up to date.".format(name),
    }
    apply_routes = False
    if "test" not in kwargs:
        kwargs["test"] = __opts__.get("test", False)

    # Build interface routes
    try:
        old = __salt__["ip.get_routes"](name)
        new = __salt__["ip.build_routes"](name, **kwargs)
        if kwargs["test"]:
            if old == new:
                return ret
            if not old and new:
                ret["result"] = None
                ret["comment"] = "Interface {} routes are set to be added.".format(name)
                return ret
            elif old != new:
                diff = difflib.unified_diff(old, new, lineterm="")
                ret["result"] = None
                ret[
                    "comment"
                ] = "Interface {} routes are set to be updated:\n{}".format(
                    name, "\n".join(diff)
                )
                return ret
        if not old and new:
            apply_routes = True
            ret["comment"] = "Interface {} routes added.".format(name)
            ret["changes"]["network_routes"] = "Added interface {} routes.".format(name)
        elif old != new:
            diff = difflib.unified_diff(old, new, lineterm="")
            apply_routes = True
            ret["comment"] = "Interface {} routes updated.".format(name)
            ret["changes"]["network_routes"] = "\n".join(diff)
    except AttributeError as error:
        ret["result"] = False
        ret["comment"] = str(error)
        return ret

    # Apply interface routes
    if apply_routes:
        try:
            __salt__["ip.apply_network_settings"](**kwargs)
        except AttributeError as error:
            ret["result"] = False
            ret["comment"] = str(error)
            return ret

    return ret

def system(name, **kwargs):
    """
    Ensure that global network settings are configured properly.

    name
        Custom name to represent this configuration change.

    kwargs
        The global parameters for the system.

    """
    ret = {
        "name": name,
        "changes": {},
        "result": True,
        "comment": "Global network settings are up to date.",
    }
    apply_net_settings = False
    kwargs["test"] = __opts__["test"]
    # Build global network settings
    try:
        old = __salt__["ip.get_network_settings"]()
        new = __salt__["ip.build_network_settings"](**kwargs)
        if __opts__["test"]:
            if old == new:
                return ret
            if not old and new:
                ret["result"] = None
                ret["comment"] = "Global network settings are set to be added."
                return ret
            elif old != new:
                diff = difflib.unified_diff(old, new, lineterm="")
                ret["result"] = None
                ret[
                    "comment"
                ] = "Global network settings are set to be updated:\n{}".format(
                    "\n".join(diff)
                )
                return ret
        if not old and new:
            apply_net_settings = True
            ret["changes"]["network_settings"] = "Added global network settings."
        elif old != new:
            diff = difflib.unified_diff(old, new, lineterm="")
            apply_net_settings = True
            ret["changes"]["network_settings"] = "\n".join(diff)
    except AttributeError as error:
        ret["result"] = False
        ret["comment"] = str(error)
        return ret
    except KeyError as error:
        ret["result"] = False
        ret["comment"] = str(error)
        return ret

    # Apply global network settings
    if apply_net_settings:
        try:
            __salt__["ip.apply_network_settings"](**kwargs)
        except AttributeError as error:
            ret["result"] = False
            ret["comment"] = str(error)
            return ret

    return ret


Mamas and Papas Childs Backpack Reins - Frog The animal backpacks are a fun accessory for your little one, but an important safety harness for you, letting you keep them nearby at all times. The Frog design includes embroidered detailing and playful 3D eyes and feet.
Mamas and Papas Childs Backpack Reins - Ladybird The animal backpacks are a fun accessory for your little one, but an important safety harness for you, letting you keep them nearby at all times.The Ladybird design includes embroidered detailing and a playful 3D antennae.


I can't believe it...Edgar is three months old!
He's doubled his weight...from 12 lbs to 23.4 lbs today. Now I know why I go through a 20 lb. bag of dog food every two weeks just for him.
He barks if you're not doing something he thinks you should be doing, such feeding him. He jumps on to furniture when he's not supposed to, although I love seeing his happy face wiggling on the sofa when I walk in the door.
And his newest habit you ask? Think Charmin toilet paper commercial...yes, he loves toilet paper and will run with it through the house if you don't keep the bathroom door closed.
He is picture perfect! I know the toilet paper thing is not fun for you but I can picture this precious pup grabbing and running and I just laugh out loud! I so wish I could give him a hug!


LOUENDA DOWNS, Former Davis County Commissioner: "Lorene Kamalu would be the most awesome commissioner! She is bright, well-read, level-headed, articulate, well-versed in politics, as well as possessing incredible people skills. The county could use her. Lorene's values are intact and she is a wise woman with integrity."
WILF SOMMERKORN, Director, Salt Lake County Regional Planning & Transportation: "I've been a professional urban planner for many years and have done many conference presentations, where I've met and gotten to know Lorene well. Lorene attends these conferences as a Kaysville City planning commissioner to improve her knowledge about community planning.
As a 30-year resident of Kaysville, I believe Lorene will make a great leader. We need someone with experience in planning and business who will work well with citizens and with officials from around the county and the state. I fully endorse her."
AREESH AHMED, President of Kaysville's business "SHOETA": "Lorene is a genuine person who has immense positive energy that you will sense even the first time you meet her. She has helped Shoeta with public relations, team building, and business planning. Lorene can solve complex problems using her business experience, analytical mind, and exceptional people skills. I think her skills will translate perfectly."
KRISTI FRODSHAM, Retired Director of Elementary Schools, Davis County: "I know Lorene well as her next-door neighbor. She is a bright, independent thinker who takes the time to research and gather information before trying to influence others or making a decision. She is a happy, grateful person who truly sees holding office as a way to serve and give back. She is not afraid to get her hands dirty and sees challenges from broken sprinklers to training puppies to getting her MPA to scaling Half Dome to running a campaign, as opportunities to learn. Lorene is one of the most principled and goal-oriented people I have ever met. Like Lorene, I love our community. It matters to me that it is lead by someone who has great leadership skills and common sense. My next door neighbor is all these things and more!"
CHAD SMITH, Citizen: "I had never given much thought as to what makes a community great until I experienced working with Lorene and the Planning Commission. The commission meets regularly to review and vote on very important decisions involving our community. It is vital that our commissioners study and consider these decisions from multiple perspectives in order to make the best decisions. I found that Lorene does this and that she cares about her role and the citizens she serves. I'm grateful that she gives so much of her free time to public service and really considers and does her homework before making important decisions that can affect all of us."
LAUREE WHITTAKER SUNDAHL: "Lorene Kamalu understands that economic development in communities is an important part of tax revenues. In her recent role as a planning commissioner, she has consulted with a wide range of businesses to improve their operations. Lorene understands business and its impact on the future growth of Davis County."
BROK THAYNE, Chair, Kaysville Power Commission: "As Chair of Kaysville's newest commission, I endorse Lorene Kamalu for county commissioner. She has taken the time to understand how power and alternative energy sources work, to help make good decisions for citizens, and to promote the future of Davis County."
ANDREA RICHARDS, friend: "Lorene Kamalu = boundless energy, enthusiasm and optimism. Lorene knows how to research and reach out. Most importantly Lorene knows that every decision, in business or government, impacts people and that those people should be listened to, considered, and valued."
Dr. GREG FERGUSON: "I have become well acquainted with Lorene over the past year. She has been a part of the effort I and many other residents have undertaken to influence and improve upon UDOT's freeway plan for US-89. Her interest and encouragement to stay involved have been most helpful.
Lorene has the knowledge and experience that make her highly qualified to serve as our commissioner. She is full of ideas and has the drive to get things done. Just as important, she understands and respects the balance that should be maintained between the community and individual needs and desires. Her work as a member of the Kaysville Planning Commission, making determinations about whether or not to rezone residential property for commercial development, has demonstrated a great concern over maintaining that balance.
I fully endorse Lorene to serve as commissioner. She understands that Davis County is a great place to live because of the people who live here. She will serve us well."
SANDY SEKULICH, friend: "Lorene and I could not be more different yet she agreed to open her heart and mind and accompany me to a panel discussion on a rather controversial topic. I have always had the utmost admiration for Lorene but it was solidified by her graciousness and willingness to seek to understand. Her passion, compassion and resolve lead me to believe that she would serve Davis County well as our commissioner."
SHERRELL HEALEY, neighbor: "Our family has known Lorene and her family for many years. I've watched her interact with her children and I believe, that besides unconditional love, the legacy she gives them includes diligence, dedication, integrity, and loyalty. I remember when she was busily involved with her home business and how comfortable she appeared as she kindly helped and taught large groups of mostly women. She had a ready smile and encouraged each of us, patiently answering each question no matter how elementary and no matter how many times she had already answered the same question. I've never seen her angry but always has a kind word for others. I see Lorene as a woman of great faith who has an attitude of service."