text:
using std::get;

namespace Ai {

/// Wraps the target prioritization and storing it inside unit.
/// Separate class mostly for testing the logic without having
/// to modify any global state like HitReactions does.
class BestPickedTarget
{
    public:
        constexpr BestPickedTarget(Unit *unit) : unit(unit) { }
        Unit *GetPicked() { return unit->ai_reaction_private.picked_target; }
        void UpdatePicked(Unit *attacker) {
            if (unit->Ai_IsBetterTarget(attacker, GetPicked()))
                unit->ai_reaction_private.picked_target = attacker;
        }
        void Reset() { unit->ai_reaction_private.picked_target = nullptr; }

    private:
        Unit * const unit;
};

static bool IsUsableSpellOrder(int order)
{
    switch (order)
    {
        case Order::YamatoGun:
        case Order::Lockdown:
        case Order::DarkSwarm:
        case Order::SpawnBroodlings:
        case Order::EmpShockwave:
        case Order::PsiStorm:
        case Order::Irradiate:
        case Order::Plague:
        case Order::Ensnare:
        case Order::StasisField:
            return true;
        default:
            return false;
    }
}

void HitReactions::Reset()
{
    int region_count = (*bw::pathing)->region_count;
    ask_for_help_regions.clear();
    ask_for_help_regions.resize(region_count * Limits::ActivePlayers, nullptr);
    region_enemy_strength_updates.clear();
    region_enemy_strength_updates.resize(region_count * Limits::ActivePlayers, 0);
    helpers.clear();
    update_attack_targets.clear();
    is_valid = true;
}

void HitReactions::AskForHelp_AddRegion(int player, UnitList<Region *> ** region_list, int region, Region *attacker_region)
{
    if (!*region_list)
    {
        *region_list = pbf_memory.Allocate<UnitList<Region *>>();
        Region *this_region = bw::player_ai_regions[player] + region;
        this_region->flags |= 0x20;
    }
    (*region_list)->Add(attacker_region, &pbf_memory);
}

bool HitReactions::AskForHelp_CheckRegion(int player, int own_region, int region, Region *enemy_region, UnitList<Region *> *** region_list)
{
    if (region == own_region)
        return false;

    int region_count = (*bw::pathing)->region_count;
    *region_list = &ask_for_help_regions[player * region_count + region];
    if (**region_list)
    {
        auto it = (**region_list)->Begin();
        for (Region *reg = *it; reg; ++it, reg = *it)
        {
            if (reg == enemy_region)
            {
                return false;
            }
        }
    }
    return true;
}

bool HitReactions::AskForHelp_IsGood(Unit *unit, Unit *enemy, bool attacking_military)
{
    if (attacking_military)
    {
        if (unit->ai == nullptr || unit->ai->type != 4 || !IsInAttack(unit))
            return false;
        if (!unit->CanAttackUnit(enemy, true))
        {
            if ((unit->flags & UnitStatus::Burrowed) && !enemy->CanAttackUnit(unit, true)) // Might reaction spell?
                return false;
        }
        return true;
    }
    else
    {
        if (unit->ai && unit->ai->type == 1)
        {
            if (!unit->CanAttackUnit(enemy, true))
                return false;
            // At least have to do this for carrier/reaver
            if (enemy->IsFlying() && unit->GetTurret()->GetAirWeapon() == Weapon::None )
                return false;
            if (!enemy->IsFlying() && unit->GetTurret()->GetGroundWeapon() == Weapon::None )
                return false;

            int dist = Distance(enemy->sprite->position, ((Ai::GuardAi *)unit->ai)->home);
            if (dist > unit->GetWeaponRange(!enemy->IsFlying()) + 0xc0)
                return false;
        }
        return true;
    }
}

/// Practically checks if UnitWasHit would be no-op.
/// If UnitWasHit logic is ever modified, this has to be modified as well :s
bool HitReactions::AskForHelp_CheckIfDoesAnything(Unit *own)
{
    if (own->ai)
    {
        if (own->ai->type == 4)
        {
            if (IsInAttack(own))
                return false;
        }
        else if (own->ai->type != 1 || !(bw::player_ai[own->player].flags & 0x20))
        {
            return false;
        }
    }
    return true;
}

void HitReactions::AskForHelp_CheckUnits(Unit *own, Unit *enemy, bool attacking_military, Unit **units)
{
    STATIC_PERF_CLOCK(Ai_AskForHelp_CheckUnits);
    Region *attacker_region = GetAiRegion(own->player, enemy->sprite->position);
    int own_region = own->GetRegion();
    for (Unit *unit = *units++; unit; unit = *units++)
    {
        if (unit->hitpoints == 0)
            continue;

        int region;
        UnitList<Region *> ** region_list;
        bool uninterruptable = unit->IsInUninterruptableState();
        // Optimization: Calling AddReaction with uninterruptable state barely does anything, so do it here
        // Not doing for buildings because there is some unk town stuff in start of AddReaction
        if (uninterruptable && (~units_dat_flags[unit->unit_id] & UnitFlags::Building || unit->ai))
        {
            region = unit->GetRegion();
            if (!AskForHelp_CheckRegion(unit->player, own_region, region, attacker_region, &region_list))
                break;

            if (AskForHelp_IsGood(unit, enemy, attacking_military))
            {
                if (unit->ai && unit->ai->type == 4)
                {
                    Region *ai_region = ((MilitaryAi *)unit->ai)->region;
                    // This building check is copied from ReactToHit, dunno if necessary
                    if (ai_region->state == 1 && ~units_dat_flags[unit->unit_id] & UnitFlags::Building)
                        ChangeAiRegionState(ai_region, 2);
                }
                if (AskForHelp_CheckIfDoesAnything(unit))
                {
                    AskForHelp_AddRegion(unit->player, region_list, region, attacker_region);
                    Region *unit_ai_region = bw::player_ai_regions[unit->player] + region;
                    if (unit_ai_region->state == 4 || unit_ai_region->state == 5)
                        ChangeAiRegionState(unit_ai_region, 6);
                    if (attacker_region->state == 0 && unit_ai_region->state != 0 && *bw::elapsed_seconds > 60)
                        ChangeAiRegionState(attacker_region, 5);
                }
            }
        }
        else
        {
            if (AskForHelp_IsGood(unit, enemy, attacking_military))
            {
                helpers.emplace_back(enemy, unit);
                if (AskForHelp_CheckIfDoesAnything(unit))
                {
                    region = unit->GetRegion();
                    if (AskForHelp_CheckRegion(unit->player, own_region, region, attacker_region, &region_list))
                        AskForHelp_AddRegion(unit->player, region_list, region, attacker_region);
                }
            }
        }
    }
}

// This is kinda different (faster, less bugs), but some unk ai region flags are not set if unit can't attack enemy
void HitReactions::AskForHelp(Unit *own, Unit *enemy, bool attacking_military)
{
    if (enemy->IsWorker())
    {
        int search_radius = CallFriends_Radius;
        if (units_dat_flags[own->unit_id] & UnitFlags::Building)
            search_radius *= 2;
        if (bw::player_ai[own->player].flags & 0x20)
            search_radius *= 2;
        vector<Unit *> helping_workers;
        helping_workers.reserve(32);
        unit_search->ForEachUnitInArea(Rect16(own->sprite->position, search_radius), [&](Unit *unit) {
            if (unit->IsWorker() && unit->ai && unit != own && unit->player == own->player)
                helping_workers.emplace_back(unit);
            return false;
        });
        helping_workers.emplace_back(nullptr);
        AskForHelp_CheckUnits(own, enemy, attacking_military, helping_workers.data());
    }
    Unit **units = own->nearby_helping_units.load(std::memory_order_relaxed);
    while (units == nullptr)
    {
        STATIC_PERF_CLOCK(Ai_AskForHelp_Hang);
        SwitchToThread(); // Bad?
        units = own->nearby_helping_units.load(std::memory_order_relaxed);
    }
    AskForHelp_CheckUnits(own, enemy, attacking_military, units);
}

/// See AskForHelp_CheckIfDoesAnything() if you are modifying the logic here.
void HitReactions::UnitWasHit(Unit *own, Unit *attacker, bool important_hit, bool call_help)
{
    auto attacker_region = GetAiRegion(own->player, attacker->sprite->position);
    int player = own->player;

    bool ignore_transport = false;
    bool attacking = false;
    if (own->ai)
    {
        if (own->ai->type == 4) // Military
        {
            Region *ai_region = ((MilitaryAi *)own->ai)->region;
            if (ai_region->state == 1 && !(units_dat_flags[own->unit_id] & UnitFlags::Building))
                ChangeAiRegionState(ai_region, 2);
            if (IsInAttack(own))
                attacking = true;
        }

        if (important_hit && own->IsTransport() && (own->flags & UnitStatus::Reacts))
        {
            if (own->HasLoadedUnits())
            {
                if (own->order != Order::Unload)
                    IssueOrderTargetingNothing(own, Order::Unload);
                return;
            }
            else
            {
                if (!own->Ai_TryReturnHome(false))
                {
                    if (Ai_ReturnToNearestBaseForced(own))
                        return;
                }
                if (bw::player_ai[player].flags & 0x20)
                    ignore_transport = true;
            }
        }
    }

    Region *target_region = GetAiRegion(own);
    if (!ignore_transport)
    {
        if (call_help)
            AskForHelp(own, attacker, attacking);

        if (!attacking)
        {
            if (own->ai && own->ai->type != 4) // || !IsInAttack(own), but it is always false
            {
                if (own->ai->type != 1 || !(bw::player_ai[player].flags & 0x20))
                {
                    if (target_region->state == 4 || target_region->state == 5)
                        ChangeAiRegionState(target_region, 6);
                    if (target_region->state != 0 && attacker_region->state == 0 && *bw::elapsed_seconds > 60)
                        ChangeAiRegionState(attacker_region, 5);
                }
            }
            if (call_help)
            {
                int region_count = (*bw::pathing)->region_count;
                region_enemy_strength_updates[player * region_count + attacker_region->region_id] = 1;
                if (target_region->needed_ground_strength < attacker_region->needed_ground_strength)
                    target_region->needed_ground_strength = attacker_region->needed_ground_strength;
                if (target_region->needed_air_strength < attacker_region->needed_air_strength)
                    target_region->needed_air_strength = attacker_region->needed_air_strength;
            }
        }
    }
    target_region->flags |= 0x20;
    return;
}

void HitReactions::UpdatePickedTarget(Unit *own, Unit *attacker)
{
    const UpdateAttackTargetContext ctx(own, true, own->order == Order::Pickup4);

    if (ctx.CheckPreviousAttackerValid(attacker) != nullptr)
    {
        BestPickedTarget picked_target(own);
        Unit *previous_picked = picked_target.GetPicked();
        picked_target.UpdatePicked(attacker);
        if (previous_picked == nullptr)
            update_attack_targets.emplace_back(own);
    }
}

void HitReactions::React(Unit *own, Unit *attacker, bool important_hit)
{
    bool uninterruptable = own->IsInUninterruptableState();
    if (uninterruptable && !important_hit)
        return;

    int order = own->order;

    if (~own->flags & UnitStatus::Completed || order == Order::CompletingArchonSummon ||
        order == Order::ResetCollision1 || order == Order::ConstructingBuilding)
    {
        return;
    }
    if (!important_hit && IsUsableSpellOrder(order))
        return;
    if (own->unit_id == Unit::Marine && order == Order::EnterTransport) // What?
        return;

    if (TryReactionSpell(own, important_hit))
        return;

    if (order == Order::RechargeShieldsUnit || order == Order::Move)
        return;

    if (important_hit)
    {
        if (TryDamagedFlee(own, attacker))
            return;
    }

    if (own->target == attacker)
        return;

    if (important_hit && own->ai && attacker->IsInvisibleTo(own))
        Ai_Detect(own, attacker);
    if (uninterruptable)
        return;

    if (own->CanAttackUnit(attacker, true))
    {
        UpdatePickedTarget(own, attacker);
    }
    else if (own->ai)
    {
        if (order == Order::AiPatrol)
        {
            uint32_t flee_pos = PrepareFlee(own, attacker);
            if ((flee_pos & 0xffff) != own->sprite->position.x || (flee_pos >> 16) != own->sprite->position.y)
            {
                IssueOrder(own, Order::Move, flee_pos, 0);
                return;
            }
        }
        if (important_hit && own->unit_id != Unit::Medic)
        {
            if (!own->target || !own->CanAttackUnit(own->target, true))
            {
                Flee(own, attacker);
            }
        }
    }
    return;
}

void HitReactions::AddReaction(Unit *own, Unit *attacker, bool important_hit, bool call_help)
{
    UnitWasHit(own, attacker, important_hit, call_help);
    React(own, attacker, important_hit);
}

void HitReactions::NewHit(Unit *own, Unit *attacker, bool important_hit)
{
    if (!IsComputerPlayer(own->player))
        return;

    STATIC_PERF_CLOCK(AiHitReactions_NewHit);
    if ((attacker->flags & UnitStatus::FreeInvisibility) && !(attacker->flags & UnitStatus::Burrowed))
    {
        attacker = FindNearestUnitOfId(own, Unit::Arbiter); // No danimoth <.<
        if (!attacker)
            return;
    }
    else
        attacker = own->GetActualTarget(attacker);

    AddReaction(own, attacker, important_hit, true);
}

void HitReactions::ProcessEverything()
{
    ProcessAskForHelp();
    ProcessUpdateAttackTarget();
    UpdateRegionEnemyStrengths();
    is_valid = false;
}

void HitReactions::ProcessAskForHelp()
{
    std::sort(helpers.begin(), helpers.end(), [](const auto &a, const auto &b) {
        if (get<1>(a)->lookup_id == get<1>(b)->lookup_id) // Helper
            return get<0>(a)->lookup_id < get<0>(b)->lookup_id; // Enemy
        return get<1>(a)->lookup_id < get<1>(b)->lookup_id;
    });
    for (const auto &pair : helpers.Unique())
    {
        Unit *enemy = get<0>(pair);
        Unit *helper = get<1>(pair);
        AddReaction(helper, enemy, false, false);
    }
}

void HitReactions::ProcessUpdateAttackTarget()
{
    for (Unit *own : update_attack_targets)
    {
        BestPickedTarget picked_target(own);
        Unit *picked = picked_target.GetPicked();
        if (picked != nullptr)
        {
            // The picked unit may have become invalid as a previous_attacker
            // under rare conditions. One such case would be giving attack to
            // a dropship, but having an ai dropship be hit on the same frame,
            // so it starts unloading units and loses its target.
            // Should either delay the unloading, allow UpdateAttackTarget skip
            // the validity check, or have a way to pick another unit.
            own->SetPreviousAttacker(picked);
            if (own->HasSubunit())
                own->subunit->SetPreviousAttacker(picked);
            UpdateAttackTarget(own, false, true, false);
            picked_target.Reset();
        }
    }
}

void HitReactions::UpdateRegionEnemyStrengths()
{
    int region_count = (*bw::pathing)->region_count;
    for (uint32_t player = 0; player < Limits::ActivePlayers; player++)
    {
        uint32_t i = player * region_count;
        for (uint32_t region_id = 0; region_id < region_count; region_id++)
        {
            if (region_enemy_strength_updates[i + region_id] != 0)
            {
                Region *region = bw::player_ai_regions[player] + region_id;
                region->enemy_air_strength = GetEnemyAirStrength(region_id, player);
                region->enemy_ground_strength = GetEnemyStrength(region_id, player, false);
            }
        }
    }
}

Unit *GetBestTarget(Unit *unit, const vector<Unit *> &units)
{
    BestPickedTarget picked_target(unit);
    for (Unit *other : units)
    {
        picked_target.UpdatePicked(other);
    }
    Unit *ret = picked_target.GetPicked();
    picked_target.Reset();
    return ret;
}

/// For each unit, picks all their enemies and confirms that BestPickedTarget
/// uses same logic as just calling UpdateAttackTarget repeatedly.
/// Logs and debug breaks any cases where it is not true, and obviously
/// causes all units to attack enemies by their logic.
bool TestBestTargetPicking()
{
    vector<Unit *> units;
    for (Unit *unit : *bw::first_active_unit)
    {
        if (!IsComputerPlayer(unit->player) || unit->ai == nullptr)
            continue;
        if (unit->IsWorker() || ~unit->flags & UnitStatus::Completed)
            continue;

        units.clear();
        for (Unit *other : *bw::first_active_unit)
        {
            const UpdateAttackTargetContext ctx(unit, true, unit->order == Order::Pickup4);
            if (unit->IsEnemy(other) && ctx.CheckPreviousAttackerValid(other) != nullptr)
                units.emplace_back(other);
        }
        Unit *assumed = GetBestTarget(unit, units);
        Unit *old_target = unit->target;
        Unit *air_target = unit->Ai_ChooseAirTarget();
        Unit *ground_target = unit->Ai_ChooseGroundTarget();
        for (Unit *other : units)
        {
            unit->SetPreviousAttacker(other);
            if (unit->HasSubunit())
                unit->subunit->SetPreviousAttacker(other);
            UpdateAttackTarget(unit, false, true, false);
        }
        unit_search->valid_region_cache = false;
        Unit *picked = unit->target;
        // If the auto target is not a threat, it can cause UpdateAttackTarget switch
        // back and forth weirdly (see Test_AiTargetPriority).
        if (ground_target != nullptr && unit->IsThreat(ground_target))
            continue;
        if (air_target != nullptr && unit->IsThreat(air_target))
            continue;

        if (picked != assumed && picked != old_target && picked != air_target && picked != ground_target)
        {
            debug_log->Log("Best target picking error for unit %08X (%p)\n", unit->lookup_id, unit);
            int pos = 0;
            for (Unit *other : units)
            {
                if (pos == 8)
                {
                    debug_log->Log("\n");
                    pos = 0;
                }
                debug_log->Log("%08X ", other->lookup_id);
                pos++;
            }
            debug_log->Log("\n");
            uint32_t picked_id = 0, assumed_id = 0;
            if (picked != nullptr)
                picked_id = picked->lookup_id;
            if (assumed != nullptr)
                assumed_id = assumed->lookup_id;
            debug_log->Log("Picked %08X (%p), assumed %08X (%p)\n", picked_id, picked, assumed_id, assumed);
            return false;
        }
    }
    return true;
}

} // namespace Ai

redpajama_set_name: RedPajamaGithub


In the instructions at http://forums.b2evolution.net/viewtopic.php?p=42812 it talks about an attached file... I'm sure I am missing it and feel silly... but where the @#$% is the attached file in the instructions "Download the attached zip file. " also, where is the file "_mediaplayer.conf.php" located which needs to be changed in the instructions "3. Change the "http://your/blog/dewplayer.swf" parts in _mediaplayer.conf.php to wherever you placed Dewplayer. "


text:
Private renters struggle most to hold onto homes amid pandemic
Author: Galina Mikova
Private renters are more likely to struggle with payments than those who own their homes, new research by the Resolution Foundation suggests.
The UK think tank shares data showing one in eight private renters have fallen behind with their payments since the coronavirus crisis began, compared to just one in 12 mortgaged homeowners. The higher costs faced by private renters with average pre-crisis housing costs at 32% of family income, compared to 11% among mortgaged homeowners.
This report was based on a YouGov survey of around 6,000 adults in the UK. It comes after unprecedented measures from the British government to support furloughed workers as well as mortgage holders with an emergency scheme. Critics argue the moves by the government to support renters during the pandemic were insufficient.
These included banning evictions for three months and increasing the Local Housing Allowance. However, many private renters complain that landlords are going ahead with evictions and demands for rents even with the lockdown in effect.
Lindsay Judge, principal policy analyst at the Resolution Foundation, said private renters tended to be in a weaker financial position going into the crisis.
"They had lower levels of savings for example, and they spent considerably more of their income on housing costs in the first place. Homeowners have been more successful at directly reducing their housing costs, so we've seen many more homeowners issued a mortgage holiday than renters are being given reductions in rent," she said.
The Housing, Communities and Local Government Committee fears that "there is a looming crisis in the private rental sector", with thousands of tenants unable to pay their rent due to being made redundant or losing a significant loss of income.
The committee's chair, Labour MP Clive Betts, told the BBC the UK was currently in "the lull before the storm."
Citizens Advice has estimated that around 2.6 million private renters expect to fall behind on their rent because of coronavirus.
The body's principal policy manager Joe Lane warned renters are now facing a countdown to the end of protection from eviction on 25 June. For buy-to-let landlords, the situation is equally as challenging with many having to cope with late, reduced or frozen rent payments.
"Britain already had a huge housing divide before coronavirus struck, and the current economic crisis has only widened that gap" Lindsay Judge added.
The National Residential Landlords' Association (NRLA) wants to see existing support extended to help tenants cover their costs, including the elimination of the five-week waiting time for Universal Credit.
Private lenders who are struggling with rent or persona expenses may benefit from taking out a short-term loan or personal loan to alleviate their financial burden in these challenging times.
Galina is a Hubspot-certified Technical Writer with over 10 years of experience in working with Fortune 500, private investment, banking, FOREX and niche tech companies as well as crypto and blockchain startups. She has a solid background in FinTech and blockchain technology.
ECB preview: Central bank to boost bond-buying, downgrade growth
Hexo stock jumps 20% after cannabis firm granted license to build factory

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Hive UDTF - unable to fetch field names via getFieldName, it is returning _col0,_col1 I am working on Hive UDTF to transpose each row around primary key. as part of requirement, i need to associate column name and corresponding data with the key.
e.g.
Source Data

Customer_id    Customer_name     Customer_type
1000000        ABCD              Individual

Hive UDTF will convert the data into following
Key          att_name          att_val
10000000     customer_name     ABCD
10000000     customer_type     Individual

i have written the udtf and it is working and currently producing below data
Key          att_name       att_val
10000000     _col0          ABCD
10000000     _col1          Individual

here is the code in which (StructField)inputFields.get(i)).getFieldName() is returning _col0 instead of customer_name.
could this be a probable defect in apache hive or there is yet another mapping for _col0 to actual schema that i should refer to.
public class transposeUDTF extends GenericUDTF {

private Map tableMap = new HashMap();
private MetadataListStructObjectInspector metadataDetails;

@Override
public StructObjectInspector initialize(StructObjectInspector args) throws UDFArgumentException {

    List inputFields = args.getAllStructFieldRefs();
    ((StructObjectInspector)args).getTypeName();

    for(int i = 0; i < inputFields.size(); ++i)
    {
        tableMap.put(i+1,((StructField)inputFields.get(i)).getFieldName());

    }

    return super.initialize(args);

}

@Override
public StructObjectInspector initialize(ObjectInspector[] argOIs) throws UDFArgumentException {
    List<String> fieldNames = new ArrayList<String>(3);
    List<ObjectInspector> fieldOIs = new ArrayList<ObjectInspector>(3);
    fieldNames.add("key");
    fieldNames.add("AttrName");
    fieldNames.add("AttrVal");
    fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
    fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
    fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
    return ObjectInspectorFactory.getStandardStructObjectInspector(fieldNames, fieldOIs);
}

@Override
public void process(Object[] record) throws HiveException {

    ArrayList<Object[]> results = new ArrayList<Object[]>();

    for(int i = 1; i < record.length; ++i) {
        results.add(new Object[] {record[0],tableMap.get(i).toString(),record[i]});
    }

    Iterator<Object[]> it = results.iterator();

    while (it.hasNext()){
        Object[] r = it.next();
        forward(r);
    }
}

@Override
public void close() throws HiveException {
    // do nothing
}
}

redpajama_set_name: RedPajamaStackExchange


text:
import mock
import unittest
from pythonwarrior.abilities.walk import Walk

class TestWalk(unittest.TestCase):
    def setUp(self):
        self.space = mock.Mock()
        self.space.is_empty.return_value = True
        self.space.unit.return_value = None
        self.position = mock.Mock()
        self.position.relative_space.return_value = self.space
        self.position.move.return_Value = None
        unit = mock.Mock(position=self.position)
        unit.say.return_value = None
        self.walk = Walk(unit)

    def test_should_move_position_forward_when_calling_perform(self):
        self.walk.perform()
        self.position.move.assert_called_once_with(1, 0)

    def test_should_move_position_right_if_that_is_direction(self):
        self.walk.perform("right")
        self.position.move.assert_called_once_with(0, 1)

    def test_should_keep_position_if_something_is_in_the_way(self):
        self.position.move.side_effect = Exception("Boom!")
        self.space.is_empty.return_value = False
        self.walk.perform("right")


The Sydney Splatter Painting below is a part of Splatter Paint Walls Collection Gallery. This digital photography of Sydney Splatter Painting has dimension 3072 × 2304 pixels. You can see a gallery of Splatter Paint Walls below. And if you think that this image are interested to share with your friends, don't hesitate to share it on your Social Media account.
Splatter Paint Walls – Good house designs will be more complete if we use paints color composition correctly according to the desired interior design theme. So thats why if at this time, you are looking for Awesome interior and exterior paint ideas and inspiration especially some ideas related to the Splatter Paint Walls? then you are in the right site since here at Wall Paints Gallery site you can easily discover the most recent inspiration and ideas about the Splatter Paint Walls that you can use for your own guide and informational purpose, especially to improve your house look and appearance.
By the way for your information, the Splatter Paint Walls images and pictures that posted in this post was uploaded by Wall Paints Gallery Staff after long research to deciding on the ones that are best among the others. So, here these list of excellent photos and pictures of Splatter Paint Walls as part of best Wall Paints Gallery collection. Find the best Splatter Paint Walls pictures and photos for your own collection and personal use. The Wall Paints Gallery Group hope that you enjoyed your visit here and if you thought that the collection was interesting and useful, feel free to share this Splatter Paint Walls Gallery at your social media account (Facebook, Twitter, Pinterest or Google Plus). Thank you.


text:
Here's Why the Do Not Call List Won't Block Your Spam Calls in 2020
The Do Not Call List only protects United States consumers from legal (but annoying) calls.
We've said it before, and we'll say it again. Spam calls are on the rise, and they have been for years. With over 5 billion robocalls made to US consumers each month, phone spam continues to be the #1 complaint made to the Federal Communications Commission (FCC).
To consumers, spam phone calls can feel utterly inescapable. The worst.
Despite the best efforts of agencies like the Federal Trade Commission (FTC), spam calls have yet to be stopped or really slowed down. Why? Most spam calls originate from outside of the United States, they're illegal, and they're not policed by the FTC. So… what can a frustrated someone do to stop the influx of spam?
For most people, the first line of defense is registering for The Do Not Call List, officially known as the National Do Not Call Registry. It allows consumers to opt-out of some types of unsolicited telemarketing calls – which can be helpful. It can also get their hopes up – because the Do Not Call List can not completely solve the spam problem. Not even close.
What is the Do Not Call Registry?
According to the FTC, the Do Not Call Registry prohibits telemarketers from using automated dialers to call cell or landline phone numbers without prior written consent. Registering on the Do Not Call List is likely to prevent law-abiding telemarketers from robocalling your phone. Repeat: Law-abiding. It's much less likely to prevent illegal spammers from targeting your phone.
If phone spammers are already breaking the law, do you think they'd abide by the Do Not Call List? Unlikely. Remember, for a company to robocall you legally and try to sell you something, they need your written consent to do so.
There is only one Do Not Call Registry for both cell phones and landlines, and it is operated by the Federal Trade Commission (FTC). Once a consumer registers their phone number on this Do Not Call List, there is no need to re-register unless the phone service is canceled or service to the number is discontinued.
But the number of spam calls that continue to come through have people like CNN National Correspondent, Ed Lavandera on Twitter asking, "How many times do you have to be placed on a 'Do Not Call' list before the calls actually stop ringing?" It's a good question.
Register and say goodbye to spam calls for good then, right? Not exactly.
You may be starting to realize that the Do Not Call List is pretty limited. It's basically a one-dimensional CSV file of registered phone numbers that legally registered telemarketing companies must purchase to operate. To be legally registered, they have to buy the list, use the list, and abide by the list in order to maintain their telemarketing license – and make legal telemarketing calls.
So, that's the law-abiding telemarketers. The list tells them who they can't call, and it's in their best interest to abide by that list – or risk massive fines. What the Do Not Call List fails to do is stop calls from scammers who ignore the Registry. Not to mention – it doesn't identify spam calls in real-time, and it doesn't use a dynamic database of known illegal callers. So, how many spam calls is the list actually stopping? Not enough.
Not all unsolicited telemarketing calls are illegal, though. There are times that telemarketing companies CAN call you (even if you're on the Do Not Call List). For instance: If you've recently done business with a company, or if you've given a company written permission to call you – those phone calls are still legal. If you ask those companies not to call you? They have to stop. Otherwise, they are breaking the law.
Even if you're on the Do Not Call List, FTC rules also allow:
Political calls
Charitable calls
Debt collection calls
Purely informational calls
Overall, if a robocall, which is a call that plays a recorded message, is trying to sell you something – then it's illegal (unless you've given a company written permission to call you).
Like anything, there are exceptions. An example of an exception to the if-you-didn't-give-written-permission-for-a-robocall-than-it's-illegal rule could be your cable company confirming a service appointment. The cable company may use a pre-recorded message to alert you to the day and time of the service appointment, but they aren't trying to sell you anything. It's informational.
If a company hasn't gotten your permission to call, and you receive a recorded message from them that tries to sell you something – there's a good chance that it's a scam. And whether it's a scam or not, you probably don't want to do business with them.
In a recent RoboKiller survey, 48% or respondents said they'd signed up for the Do Not Call List – and it's almost guaranteed that those 48% of respondents are still receiving spam calls.
The Do Not Call List only protects consumers from legal calls.
Most unwanted calls received by consumers are illegal, so they won't be intercepted by the Do Not Call List. These kinds of scam calls are often the result of caller ID spoofing or robocalls in general. Scammers use these methods to employ thousands, if not millions, of phone numbers to make scam calls – and they change these numbers all of the time.
I'm done with Robo sales calls. I want to create a Robo-Call service that just gives pre-recorded positive affirmations, then hangs up.
"I know some days can be more trying than others, but you've got this. *click*"
"Hey. Just want you to know that I'm proud of you. *click*"
— Matthew Mercer (@matthewmercer) August 7, 2020
What is caller ID spoofing? With Caller ID spoofing, spammers falsify the information displayed on a Caller ID to disguise their identity and get consumers to answer the phone. They may even use a number that looks like it's from a local area code, which is known as Neighbor Spoofing. Neighbor spoofing can make calls appear to be from a local business, doctor's office, or someone the consumer knows.
If you've been fooled by a phone number that shows up on caller ID pretending to be from a local area code or someone you should trust, like the government – that's the work of scammers using spoofing. Spoofing can be nearly impossible to track, because most calls are placed from international locations. Millions of calls in a matter of minutes. And if a consumer tries to call back the phone number that called them, it will most likely be a disconnected number.
Here are some facts about caller ID spoofing:
In 2019, around 70 percent of scam calls in the US used local neighborhood numbers.
In 2019, more than 26 percent of all calls in the US were robocalls.
Experts predicted that, by the end of 2020, 50 percent of all calls in the US will be robocalls, and many of these will use spoofed numbers.
Caller ID spoofing is just one type of robocall. What is a robocall? "If you answer the phone and hear a recorded message instead of a live person, it's a robocall. If you're getting a lot of robocalls trying to sell you something, odds are the calls are illegal. Many are also probably scams," FTC.
In general robocalling is cheap and easy for scammers to do. They use internet calling services that average in the range of a fraction of a penny per minute. This means that spammers can make thousands of calls at once, and these calls are incredibly inexpensive to make. And when the scammers are successful? Robocalling is lucrative.
Most robocalls are made from overseas via the internet, they're nearly impossible to regulate, and with so many VoIP providers – spammers have no shortage of options. The Do Not Call List doesn't stand a chance.
What can you do when you receive illegitimate phone calls from legitimate companies?
It's probably no surprise that legitimate U.S. telemarketing companies willingly violate the rules and make illegitimate calls, too. The difference is: These companies can be sued for ignoring the Do Not Call List. For violating TCPA rules, these companies become prime candidates for lawsuits from individual consumers and class action lawsuits.
What can consumers do? If a consumer receives a robocall or telemarketing call from a U.S. company that they didn't agree to through "express consent," they can sue and receive compensation.
These calls include robocalls and, in some cases, calls from debt collectors. A lawyer may be able to get between $500 and $1500 for each call that violates the rule. Another option is joining a class action suit against individual companies.
What The F*** Facts @WhatTheFFacts says, "In the U.S., the penalty for placing a sales call to a number on the Do Not Call list is $40,654 per call."
In the U.S., the penalty for placing a sales call to a number on the Do Not Call list is $40,654 per call.
— What The F*** Facts (@WhatTheFFacts) June 18, 2019
For someone that's been the victim of harassing robocalls and wants to take legal action, their first step is to retain their phone records. The second step is to decide whether to work with an attorney to try suing in small claims court themselves.
Remember, though – if you've ever provided your phone number to a company without checking the fine print, you may have agreed to receive these calls.
While some companies flagrantly violate TCPA rules, others are simply following up on permissions that consumers gave without realizing it. Anytime someone "agrees to terms" or accepts a company's privacy policy, they need to know what those terms and policies are.
If not the Do Not Call List, then what about cell phone carriers?
Cell phone carriers, themselves, warn their customers of the dangers of spam calls and text messages. But up until recently, they didn't offer much in the form of spam-blocking solutions.
That started to change in mid-2019 when the FCC tasked the communications industry with reducing robocalls. Because of that, "12 phone companies and 51 state attorneys general announced a plan to implement technology to identify, and eventually block robocalls." – CNET
It's called SHAKEN/STIR, and it's meant to ensure that the person who's calling you is real. How's it work? The simple version: When you place a call, the service provider will verify the call and attach a digital signature to ensure it originated from a valid caller ID. The service provider of the recipient then validates that signature and shows the recipient that the call has been verified.
Like the Do Not Call List, SHAKEN/STIR will prevent spam phone calls, but it won't prevent unverified calls from reaching your phone. It will, however, give consumers a better idea of which calls to answer – because caller ID will say "Caller Verified."
Phone companies have started to use the verification technology to build more robust robocall blocking apps and services. Some of the robocall blocking services are included in the service plan, and others cost an additional fee. Not to mention, call verification only works on select phones.
Eliminate 99% of all unwanted calls, legal or illegal, with RoboKiller.
Desperate for a reliable solution to stop and prevent spam calls, consumers can't rely on the Do Not Call List to prevent the influx of spam calls they receive. Consumers must go beyond the Do Not Call List and take action to protect themselves now. How can they do that when most available solutions use outdated technology and are ineffective at blocking spam?
Consumers should start by downloading RoboKiller. RoboKiller is the solution best equipped to stop the spam, because it uses machine-learning and audio algorithms to go beyond Caller ID. RoboKiller's global database of over 26M unique scammer numbers automatically blocks known scammers for all customers – and adds new emerging scams every minute! The Do Not Call List can't do that!
RoboKiller identifies who is calling and why before the phone even rings. It eliminates 99% of unwanted and for the 1% of unfamiliar phone numbers that are not saved to your contacts – RoboKiller's new Call Screening Assistant goes even further to protect you. It answers phone calls and asks the caller to verify their identity and reason for calling. RoboKiller will then give you the information you need to decide whether or not to answer – all before your phone rings.
https://robokiller.wpengine.com/wp-content/uploads/2020/08/70014_Explainer-Video_16x9_01-1.mp4
What happens to the blocked spammers? RoboKiller uses Answer Bots to beat spammers at their own game. They intercept calls by subjecting spammers to a lengthy recording, making them think they are talking to a human. While this is happening, RoboKiller creates an audio fingerprint of the call to ensure no other spam calls like it can be placed. Consumers get the last laugh and help put an end to the problem – while answering their phone calls with confidence.
Here are some of the other benefits of RoboKiller that you need to know about:
RoboKiller utilizes FTC-award-winning audio-fingerprinting tech.
You can add scammers to your block list with the Automated Protection feature (meaning that your phone doesn't have to ring to block a call).
You can use the Pause Call Blocking feature to stop calls being blocked if you are waiting for a call from an unknown number.
You can send spammers to hilariously long recordings, hosted by our Answer Bots, that will give them a taste of their own medicine!
You can control the phone numbers you want to block and allow the phone numbers you want to receive. You can customize these lists at any time.
You can view all blocked and missed calls and see who has been trying to call you.
You can report scam numbers you have found, which will help the RoboKiller community.
RoboKiller has a customer service team (with real human beings!), who are available seven days a week.
Spam calls have consumers feeling bombarded, but what are consumers to do? They can't personally screen their portion of 5 billion robocalls per month. And the FTC's Do Not Call List can only help so much. It doesn't even protect them from illegal robocalls!
Consumers can rely on RoboKiller to stop the spam for good. RoboKiller uses FTC-award-winning, machine-learning and audio algorithms to go beyond the Caller ID and beyond the Do Not Call List. With RoboKiller, you know who is calling you, and you know whether it's a legitimate phone call. You know you are safe from the ongoing onslaught of spam calls.
RoboKiller gives you the freedom to answer your phone. Click here to find out more.
Robocall Record: 7.4 Billion Spam Texts Surpass Total Robocalls By More Than 1 Billion Messages In March 2021 →
RoboKiller Predicts Spam Calls Could Reach 70 Billion, Spam Texts 90 Billion By The End Of 2021 →


Certified Translation of any document in over 170 languages.
We also provide certified and notarized translations of official foreign and local certificates. Part of our notarizing process is a certificate of accuracy, and we guarantee that they comply with legal, Immigration, INS or USCIS, educational, local and foreign authorities' requirements. We've provided over 100,000 professionals and students with complete and certified translations that have assisted them with such things as: entering universities, real estate sales closings, obtaining citizenship, winning legal cases for a law firm, hospitals communicating their services to non-English speaking patients, and more..
MEJ Personal Business Services is confident we can meet your need for quality affordable Translation services. So, whether you're a student that needs some educational transcripts translated and certified, or a law firm with a high volume ,multiple language translation project that is due immediately; we have the resources, the know how, and the talent to get the work done in an accurate and professional manner. Getting your documents translated by MEJ is easy and cost effective. We also offer free shipping for all regular orders.
If quality assurance is important to you, then MEJ is the right Translation Company for you. We are a full service on-line translation service, and we offer a wide range of services that focus on quality assurance. To our company, it's job one! To that end, we have a full staff of proofreaders, editors and desktop publishing services. Our Certified Translators are masters at selecting the precise word to accurately state the meaning of the source text in the target language. Please consider MEJ for your translation service needs.
So, how do I get My Document Translated?
The time frame for delivery and cost of all translation projects varies and depends on volume, complexity of the text, and the delivery time frame. We accept translation projects in various electronic formats including: WORD. Doc, HTML, PDF, and fax. The completed translation can be delivered to you in the format you desire, and desktop publishing formatting is also available. Each certified translation is treated with our commitment to excellence and accuracy. No translation project is too big or too small; we'll work with you to develop the most cost-effective solution that addresses your personal or business needs. To get you document(s) translated now call 1-(866)-557-5336 or use our on-line price quote system.
MEJ is also an organizational member of the American Translators Association.
Birth certificates, marriage certificates, divorce decrees, employee handbooks and manuals, employee training materials, Human Resources (HR) policies, employee review forms, employment applications, internal memos, safety documents and information booklets, newsletters and various HR forms, marketing campaigns, press releases, articles, newsletters, brochures, press kits, cover letters, web content, blog, catalogs, visibility campaigns, biweekly e-mail newsletter, sales letters and catalogue, lease agreements, real estate forms, mortgage documents, real estate purchase contracts, rental applications, rental agreements, mortgage addendum, mortgage deeds, rental property inspection lists, breach of contract paperwork, lead-based paint disclosures, statements, warranty deeds, deed of trust and real estate sales agreements, medical centers journal articles, books, patient education translation, research reports, medical questionnaires, medical brochures, medical transcriptions, educational transcripts, medical communications, certificates, hospital and insurance reports, informed consent forms (ICF), directions for use (DFU), and material safety data sheets (MSDS), public health and medical pamphlets, DVD's and CDs, public health surveys, medical surveys, patient handbooks and brochures, and more.
MEJ also produces certified translations by certified professional native speaking translators.
Advertising, Banking and Financial, Business Administration and Management, Marketing, Child Care, Criminology, Economics, Education, Entrepreneurship, Ethnic and Cultural Studies, Finance, Forensic Science, Humanities and Humanistic Studies, Law and Legal, Patents Translation, Political Science, Sociology, Medicine, Architecture, Broadcast Journalism, Computer Games and Gambling, Electronic Games, Design and Applied Arts, Film and Cinema Studies, Genealogy Family History Research, Mass Communication, Music History and Literature, Government agencies, Military Personal, Police Departments, Fire Departments, Poetry, Construction, Oil, Gas, Petroleum, Travel, Airlines, Hotels, Tourism, Chemicals, Coatings, Plastics Banking, Mortgages & Credit, Insurance, Attorney, Pharmaceutical, Software, Biomedical, and much more.
MEj is committed to providing accurate Translation services for families in NJ ,New York , New Jersey for Documents, Audio and Video web. Please consider us for your translation needs.


text:
IPW 2017
Last Updated: Thursday, June 28, 2018 1:14 PM
(NEW ORLEANS) June 13th, 2017 - The New Orleans Convention and Visitors Bureau and the Louisiana Office of Tourism recently returned to U.S. Travel Association's 49th IPW in Washington, D.C., where more than 6,400 international travel buyers, domestic and international media and U.S. suppliers joined for more than 112,000 total business appointments that drives more than $4.7 billion dollars in future travel to the United States from the more than 70 countries represented. IPW 2017 took place in Washington, D.C. for the first time in event history with a theme "One Big Welcome," helping to express that America is open for business to the world.
After hosting IPW 2016 in New Orleans, the Louisiana Office of Tourism and the New Orleans Convention and Visitors Bureau capitalized on that momentum at IPW 2017 in Washington, D.C., taking center stage during a news conference in front of the largest showing of international media in IPW history and hosting booths on the show floor. The hundreds of media attending the press conference enjoyed traditional New Orleans food, drinks and jazz music. The news conference provided a look back on new international direct flights, the airport expansion, new hotel developments, restaurants, attractions, city projects and more, that have debuted in New Orleans since IPW 2016, as well as a look ahead towards New Orleans' Tricentennial in 2018. British Airways also confirmed that the direct flight linking London to New Orleans will fly five days per week year-round, replacing the five days per week trial period.
The Louisiana Office of Tourism also hosted a booth at IPW, showcasing the Houma Convention and Visitors Bureau, the Jeff Davis Parish Tourist Commission, the Lake Charles/Southwest Louisiana Convention and Visitors Bureau, Shop Louisiana, and the Shreveport-Bossier Convention and Tourist Bureau. Additionally, the New Orleans Convention and Visitors Bureau, Jefferson Parish Convention and Visitors Bureau, Lafayette Convention and Visitor Commission, Visit Baton Rouge, Louisiana's Cajun Bayou, Louisiana's Northshore/St. Tammany Tourist Commission, Louisiana Tax-Free Shopping, New Orleans Plantation Country, West Feliciana Parish Tourist Commission, and Tabasco represented their areas and attractions to tour operators and journalists worldwide.
"IPW is the Super Bowl of the travel industry and we welcomed the world to experience our city firsthand last year. We were thrilled to have the opportunity to continue the momentum in Washington D.C. and share all of the remarkable new developments we have had since they came last year - new direct international flights from London and Frankfurt, a new airport under construction, new hotel developments and so much more," said New Orleans CVB President and CEO, Stephen Perry. "We continue to receive great feedback, media coverage and bookings from all over the world. We will see business from IPW for years to come and the value of our team's work to continue to build on these relationships shows in our growth of international visitors."
"On the heels of a very successful IPW in New Orleans, being in the limelight again as the recent past host city provided the state and city with additional momentum in overseas markets," said Lieutenant Governor Billy Nungesser. "The most recent numbers show international visitation to our state has seen an increase of 37 percent. International visitation is a contributing factor in tourism for the state of Louisiana bringing a return on investment of $40 for every $1 spent."
"The Louisiana Office of Tourism and New Orleans CVB hosted nearly 7,000 participants at this event in 2016. To capitalize on that investment and momentum, more than 75 Louisiana partners joined efforts this year in Washington to promote our state to the world, working to increase international inbound visitation. These efforts will prove to be a tremendous success for the entire state as we work toward a sixth consecutive record-setting year for tourism in Louisiana," said Assistant Secretary Kyle Edmiston.
"IPW gives us the opportunity to touch our clients around the world in a few days of structured appointments and events. Our team conducted more than 200 business appointments this year working alongside our partners from the state office of tourism and our international representatives from Canada, Japan, UK, Germany, France, China and Brazil. We would not have the time or budget to travel around the world to have to have the face to face conversations with the clients that our international representatives have formed relationships with on our behalf throughout the year," stated Kim Priez, senior vice president of Tourism Sales.
The New Orleans Convention & Visitors Bureau (NOCVB) is a nationally accredited, 1,100-member destination marketing organization and the largest and most successful private economic development corporation in Louisiana. The CVB and its members influence thousands of decision-makers and millions of visitors to choose New Orleans through direct sales, marketing, public relations, branding and visitor services at our New Orleans headquarters and offices in Chicago, Columbia, SC, Washington, D.C., the United Kingdom, France, Germany, Canada, Brazil and China. Consistently recognized as one of the top five CVBs in the country, the New Orleans CVB celebrates its 57th anniversary in 2017. For more information, please visit www.neworleanscvb.com; www.facebook.com/neworleans; www.twitter.com/VisitNewOrleans.
The Louisiana Office of Tourism (LOT) is the destination marketing organization for the state of Louisiana. It is charged with the sales, marketing and promotion of the state as a travel destination for potential visitors, both domestic and international. LOT's objective is to increase the number of visitors annually, enhance visitor experiences, generate and increase annual visitor spending resulting in greater tax revenues for local and state government, and increase tourism employment for all areas of the state. The Louisiana Office of Tourism works to promote a positive image of the state as a great place to visit, play, live, and retire through a variety of proven and effective methods such as partnerships with city/parish Destination Marketing Organizations (DMOs). In 2016, the Southeast Tourism Society named the Louisiana Office of Tourism the State Tourism Office of the Year. For more information on traveling to Louisiana, please visit www.LouisianaTravel.com.
U.S. Travel Association is the national, non-profit organization representing all components of the travel industry that generates $2.3 trillion in economic output and supports 15.3 million American jobs. U.S. Travel is the leading force that grows and sustains travel and protects the freedom to travel. Our efforts are focused on achieving our shared vision for the industry: Travel is understood as essential to the economy, American jobs, security, image and well-being of the United States and travelers. For more information on the U.S. Travel Association, please visit www.ustravel.org.
Kristian Sonnier, New Orleans CVB, (504) 481-7933, ksonnier@neworleanscvb.com
Barry Landry, Louisiana Office of Tourism, (225) 342-8142, blandry@crt.la.gov
Categories: 2017 CVB Press Releases


4 | 20 | 18: Working on character pictures!
4 | 21 | 18: Finished with the logo and Mei's picture!
It really says it in the title, I need a lot of Minecraft BAs for my roleplay. So in order to audition all you need to do is put down your Minecraft username and discord tag and you're automatically in!
What you will do: You will help make the fight scene between The teens and the monster.
Kuruo~Kun! Kuruo~Kun! You are in Danger!
You stole my senpai from me!
He's right! Even your partner will not! Spill out your secrets!
She HATES puns and is very easily annoyed, she has a somewhat high voice.
This is so damn… YUMMY! OH MY FREAKING GOSH HOW DID YOU LEARN HOW TO COOK LIKE THAT?! TEACH ME MASTER!!! THIS IS THE BEST PANCAKES I'VE EVER EATEN!!!
OH MY GOSH!!!! I HAVEN'T SEEN YOU IN AGES! WHAT HAPPENED?! HOW'D YOU GET HERE?! TELL ME ALL THE DETAILS!!
Oh... Don't you want her to die?
Merci! Why! You lied to me!
He's Quite smart for his friend Uko and is very protective of his sister, Libra.
It's a part of us, its mom.
I'm sorry, what is that I hear? you prevent me from protecting my sister?
I'm up! I'm up! Chill girl!
He's a bit dumb, he likes to follow Fuji's lead, and he watches way too much fun fact videos that are pretty random.
I won't risk a single stranger on her, she's my friend's sister, so you better not mess with us.
Quickly we have no ti-- more patience!
e is quite professional and is very safe, he hates dirt and gets really awkward around his crush.
An agent part of a group called -name deleted- and is lead of the group in helping to corrupt the world.
If leader orders us with a SPECIAL mission, it must be.
Pick one of the lines to audition with.
Young Fuji is at age 8, but he sounds really mature for his age. He is very responsible and sometimes sneaks out to meet with Young Aoi.
Young Aoi is at age 8, She leaves her window open for young fuji to sneak in and sing with her.
Fine.. Like I need you anyways.
*She is starting to cry*Just promise me?


text:
Lean Manufacturing Makes Itzko Glass & Metal an Industry Leader
"TigerStop has allowed us to speed up production while not jeopardizing the safety of our employees. It has helped us complete 5-6 times the amount of work per year."
– Colin Itzko, Founder & CEO, Itzko Glass & Metal
In 2008, Colin Itzko had a grand vision. He wanted to start a top-of-the-line commercial glazing firm of his own. It was smack-dab in the middle of the financial recession, but Colin was determined, and thus, Itzko Glass & Metal, or IGM, was born.
Thanks to hard work, top-quality results, and lean manufacturing, IGM is now one of the leading design-build glazing contractors in the country. Colin and his team of 20 design and engineer everything in-house and partner with architecture firms, developers, and general contractors to facilitate their common goal of constructing sustainable buildings throughout the region.
Colin was able to defy the odds thanks to his unwavering tenacity and, in part, his use of technology. He was an early adopter of social media and shared IGM content on various social networking platforms. "We were one of the first construction companies on Facebook back in 2010, as well as on Instagram. We made use of Social Media to showcase our work. We've found that this allows people from all over the world to see what we do and what we are capable of."
Lean Manufacturing Technology
TigerStop on Aluminum Cutting Saw, Itzko Glass & Metal Shop
Not only does Itzko pride itself in being savvy online, but the company also uses leading lean manufacturing technology to produce excellent work. Colin explains, "IGM prides itself on the utilization of technology and integration of technology and new methods in all of our work."
In 2011, the team incorporated TigerStop equipment into their production cycle with the goal of increasing production capacity. "Itzko Glass & Metal, Inc. (IGM) uses a TigerStop automated fence on our chop-saw for our non-ferrous metal fabrication. We have the ability to take shop drawings from preconstruction and update them with rough opening fabrication sizes after field measurement. We then kick this data into an IGM standardized Excel format which our employees use during fabrication."
TigerStop equipment has integrated nicely into the IGM lean manufacturing process, and the employees have had success operating the equipment as well. Colin further explains, "Our TigerStop not only saves an abundance of time, it's easy and trustworthy for our employees to use. I would say that having a TigerStop has allowed us to speed up production … it has helped us complete 5-6 times the amount of work per year."
Making a Name in the Industry
Being able to complete many times the amount of work per year has allowed IGM to remain a key player in an increasingly competitive industry. "Having this device [TigerStop] helped set us apart from our competition while accelerating metal fabrication. It allows ANYONE to walk up, punch in a numerical value, and cut 1 or 1-million of the same size. It truly is phenomenal."
Avalon Berkeley Project, Itzko Glass & Metal
Since 2010, the Itzko team has completed over 200 projects throughout Northern California. Quite an incredible feat considering the average project's scope and the prestigious clientele IGM has acquired. Some of the more notable projects IGM has completed include storefronts, curtainwalls, and architectural windows & doors for Disney, Peet's Coffee & Tea, REI, Chase Bank, Target, and Chipotle. "Itzko Glass & Metal, Inc. (IGM) utilizes TigerStop's automated fence on EVERY project we are contracted on," explains Colin. "We literally use it for EVERY single thing in relation to cutting."
With all of the time saved with lean manufacturing using TigerStop equipment, you would think Itzko Glass & Metal team might kick back and relax on occasion. This is hardly the case. The company's founder has done an incredible job giving back to the community and actively engaging IGM in charitable endeavors.
IGM is a proud supporter of the Adopt-a-Highway program with five locations in Northern California. They also support local sports teams. IGM was even featured on the ESPN highlight reel for their support of an Elite Skills Basketball Camp founded by DeMarcus Cousins of the Sacramento Kings. The camp supports underprivileged children and teaches important athletic and life skills to serve them on and off the court.
Colin Itzko's impressive business acumen and philanthropic nature earned him a nomination as a finalist in the Sacramento Business Journal's "40 under 40." He continues to defy the odds, and this December marks Itzko Glass & Metal's 10th anniversary. Keep your eyes peeled—we will surely hear more from Itzko Glass & Metal in the future!


Vientiane has again topped the list of road accidents around the country over a two week period, with 66 recorded accidents and nine fatalities.
A report from the Traffic Police Department of the Ministry of Public Security provided figures from December 29, 2016, to January 8, 2017.
In Vientiane, 66 accidents were recorded, 93 people were injured and nine people died. Second on the list was Champassak province which reported 36 accidents and four fatalities. Third was Savannakhet province with 30 accidents and nine fatalities.
In contrast, Xaysomboun province did not report any accidents or fatalities.
The department's report revealed that 300 road accidents occurred across the country, resulting in 51 fatalities.
In total, 83 people were left in a critical condition, 150 were seriously injured and 188 people were slightly injured. Eighteen vehicles were written off, 279 sustained moderate damage and 245 vehicles sustained minor damage.
Laos has a high rate of road accidents compared to other countries in the region with motorbikes involved in 95 percent of all vehicular accidents and males making up 90 percent of the fatalities.
About 90 percent of accidents involve drunken driving, speeding and other violations of the traffic rules. Many accidents occur on weekends and special occasions when people get together to drink alcohol.
In an accident that occurred in Vientiane on Sunday, a car and a motorbike were involved in a fatal collision in Xaysavang village, Xaythany district. The motorbike rider died instantly but the suspect car drove off. The Vientiane Traffic Police Department is now trying to trace the driver.
Another accident occurred in Km8 village in Hadxaifong district, when a pickup lost control, hit a motorbike and overturned.
The motorbike rider was killed and a passenger sustained injures. Police are investigating the incident.
What Is First Aid In Laos ?


McAfee Antivirus Total Protection has improved for the 2019. As you know that McAfee has also make a single security suite as compared to previously many version of its antivirus products as Norton did many years ago.
Now McAfee have two major products in consumer section. 'McAfee Total Protection' and 'McAfee Live Safe'. McAfee Total protection comes with 1 device, 5 device, 10 device subscription license options.
Download from the below link for a 30 days McAfee Trial. You will also get the 50% discount option with this link if you plan to buy it after free trial.
After download you can Install it normally as you install other software. If you are an existing user and want to upgrade your previous version to the New version then you have to remove the previous installed version and install a fresh copy of the new release.
Though McAfee product subscription comes with Auto-Renewal functionality that your product get renewed automatically but if you auto renewal option is disabled you can renew it manually using following steps.
Login with your login credential.
Renew the product from your account.
If your subscription is already active you will get a notification one month before its expiration and you just have renew it. But if your subscription has been already expired then along with the renewal you also have to Re-Install the McAfee product.
If you are getting problem in installing, re-installing of McAfee products then you can use the Official McAfee removal tool to uninstall McAfee product completely from your device and then re install it will solve most of your problem. If still you have some issue then you contact McAfee customer support.
Your single subscription is compatible with all the devices Laptop, desktop or smartphone on either OS like Winodws 10, iOS or android.
Under it, if there is any virus that the software couldn't recognize, McAfee's tech support will help you with everything including remote diagnosis and remediation. And if the problem cannot be fixed, you get your 100% money back. However, you would need to sign up for the automatic renewal service if you want the pledge to be activated.
Antivirus and anti-malware are now the standard feature of every security software. But McAfee security also includes Anti-Spam feature.
Ransomware is a rising threat and a security software without ransomware protection is nothing. So you will get the ransomware protection to keep your data safe from the bad guys.
A PC optimizer is included with this security software to keep PC running like new. Other then this it also block auto-play videos.
One of the best option to keep your sensitive data safe is by encrypting that data that no other one can read it. It also helps to avoid encryption the data by ransomware.
There is a completely new virus detection system under the hood, called Real Protect. Real Protect focuses on behavior-based detection, and if it detects any malware, can roll back any activity. So, you will be protected from both known and unknown viruses since the system will look at the behavior of each program over time to check if anything is being compromised upon.
McAfee's True Key now comes with multi factor password authentication like facial recognition and Fingerprints. True key is a way to securely login to any websites without remembering lots of passwords. Now with new updates it includes Master password reset and Import of passwords from other password managers.
Just like before, McAfee online security solutions are designed to protect users from the latest online threats, malware and viruses while surfing through the Internet. It also includes parental control for keeping the young ones safe not only from malware and online threats, but also from malicious websites.
McAfee features cross-platform protection from Mac to PC and from tablets to smartphones. This security solution enables monitoring and managing the various security solutions from a single location which greatly increases its convenience, functionality and usability.
The latest edition also features upgraded protection from mobile spam and viruses. Also, the latest edition comes with an interface that is easy to use and intuitive for the average consumer.
McAfee is a very old company which was later acquired by the chip maker Intel. They are continuously improving their security capabilities.
McAfee offers coupons and promotions to promote their product. This promotion let you buy their products in cheap price. We try to bring up the latest promos at one place. So visit our deals page .
A 50% promo is a regular promo offered by the McAfee security. You can buy their products 50% cheaper for the first year. Onward you may be charged as regular price, Always keep an eye on the coupon codes and promos offered by the company.
Thank you, first time user.
Thanks, i was looking for download.
With 50% discount mcafee justify to its price.
Thanks. Nice info and discount coupon codes.
Thank you for the 50% discount and other coupons from McAfee. Can you suggest me that which product should I purchase?
Dear all this website does not deal in illegal things. Using a cracked software is not advisable. It is illegal as well as it also not good for you, just to save some bucks you can loose many times more using an illegal software. All cracks comes with any trojan or malware, They will infect your computer totally and can steal or corrupt your useful data. So beware of pirated softwares and Cracks. Antivirus price are very low these days due to competition in the market. Even you can find other great deals and offers to buy them in cheaper price. So buy a legal software copy and live your online life worry free. If you are not in a situation to buy that there are many Free antivirus programs, which are legally Free for life. you can use them.
I found a coupon to get 50% discount on all mcafee products. But is there any good coupon available to get more discount. Is there any upcoming Cyber Monday or Black Friday Deal to buy it more cheaper.
Still looking for bettre Black Friday deal.
I have Sam's Club purchase of AntiVirus Plus 2015 and do not have direction to update my software last year — can you help me ASAP????????????
I need information/help getting my AntiVirus Plus 2015 installed that was just purchased –I need help!!!!!
David, What exact problem are you facing. Download the McAfee product you purchase and run the installer. It is very easy to install it. Please let us know the exact problem that we can help you.
I need help in getting AnitVirus Plus 2015 software just obtained — thank you!!
Yes the installation is very easy and I have never faced any issue in download or installation. Thanks for the help.
i have been using internet explorer with livesafe but have changed to fire fox browser now i cant get live safe to work but can open up i.e and live safe is fine tried to enable it through ff menu/add ons/check for updates but no mcafee updates listed so cant add them.checked through extentions too.
I bought my card at a retailer in july.But since that day i bought an other Pc. Acer. And i can not find the renewal to that new pc. I have McAfee LiveSafe . 2015 My code is *****[hidden for privacy and security].
Please would you make my inscription. I bought the one at 79.$ but i had a coupon of 30 off when i bought this PC.
Thank you very much for your help. Very grateful.
Please download and install mcafee live safe on new bought PC and activate the software with the code given by you. It will get activated automatically on New PC. But if does not work Please contact directly to the McAfee Support Department.


text:
Oxfam and DEC – Crisis Communications experts
Home » Crisis Communications » Oxfam and DEC – Crisis Communications experts
We're still adjusting to the destruction and havoc caused by the Typhoon Haiyan in the Philippines, and there's plenty more we don't know about, so it seems almost churlish to look at the crisis communications involved while there's still so much suffering on the ground. But I want to applaud the comms efforts of the Aid agencies, particularly Oxfam and the DEC. And criticise the automated ad-booking systems of Expedia and Booking.com (amongst others).
I regularly look at how corporates respond to a social media crisis, or a crisis that plays out in social media. Typically it's about them and how they react. But something like the typhoon is much bigger than that. It's about how the world reacts. And how (in many cases) the Governments and Aid agencies act to motivate people to donate.
In this case, the speed at which the Aid agencies have acted both operationally (getting people on the ground) but also in comms terms has been extremely impressive. The use of 'dark sites', populated extremely quickly and updated in real-time is commendable. The DEC have got a decent site live, but Oxfam's is really very excellent. In particular the way they've rolled in a liveblog to publish their news and collate others'. Fingers crossed it helps increase donations, and then action.
But on the other hand, we have Booking.com and Expedia. Really, did no-one think to stop buying ads against Google searches for 'Philippines Hotel'? At least for a week or so. Hats off to Oxfam (again) for bidding for the top spot, but, while I appreciate Expedia, Booking.com, Asiarooms etc. have businesses to run, surely they could put one aspect on hold for a little while?
[update – after spotting booking.com initially I couldn't screengrab it. Maybe they've turned their booking off]
PrevPreviousWe are all advertisements now – and that's not a good thing
NextA gazillion well-sourced facts about the internetNext
As Facebook becomes Myspace, Google+ becomes Facebook for brands
Spare a moment for Vodafone. Or indeed, 12 hours
We live in an industry where it's all too easy to criticise our peers. We've all got blogs, tweet away to our


The Assembly Judiciary Committee was told Wednesday if someone is arrested but later completely exonerated, the records of their arrest should be destroyed so they don't have to report being arrested on job and other applications.
Assemblyman Alexander Assefa, D-Las Vegas, said AB315 would entirely delete the records of someone who was "determined by a court of jurisdiction and arresting agency or the district attorney that the arrestee was the wrong person." He said in that case, the arrest record should be entirely deleted.
"If the arrest was wrongful, the court shall approve the application to delete the record," the bill states.
Assefa said once those records are deleted, the person wouldn't have to report the arrest on a job application or other document.
But Judiciary Chairman Steve Yeager, D-Las Vegas, said lawmakers still haven't found a way to deal with records that get posted on numerous websites because they have no way to ensure those postings are taken down if someone is exonerated.
Chuck Callaway of the Las Vegas Metropolitan Police and John Jones of the Nevada DA's Association both said they support the bill, which they said would "seal" the records.
But Mindy McKay of the Criminal History Repository said sealing the records doesn't delete or destroy them. She said sealed records are still in the system. She said her agency suggested the language to "delete" the records because then they would no longer be part of the repository files.
Representatives of both the Washoe and Clark County Public Defenders offices also supported the bill.
The committee took no action on AB315.


text:
/*
 * @test
 * @bug     6997116
 * @summary Test verifies that rendering of images with bitmap transparency
 *          to a D3D surface does not cause an ClassCastException.
 *
 * @run main/othervm -Dsun.java2d.d3d=True DrawBitmaskToSurfaceTest
 */

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.IndexColorModel;
import java.util.concurrent.CountDownLatch;
import javax.swing.JFrame;

public class DrawBitmaskToSurfaceTest extends JFrame {

    private final Image src;
    private static java.util.concurrent.CountDownLatch latch = null;
    private static Throwable theError = null;

    public DrawBitmaskToSurfaceTest() {
        src = createTestImage();
    }

    private static Image createTestImage() {
        byte[] r = new byte[]{(byte)0x00, (byte)0x80, (byte)0xff, (byte)0xff};
        byte[] g = new byte[]{(byte)0x00, (byte)0x80, (byte)0xff, (byte)0x00};
        byte[] b = new byte[]{(byte)0x00, (byte)0x80, (byte)0xff, (byte)0x00};

        IndexColorModel icm = new IndexColorModel(2, 4, r, g, b, 3);

        BufferedImage img = new BufferedImage(100, 100,
                                              BufferedImage.TYPE_BYTE_INDEXED,
                                              icm);
        return img;
    }

    @Override
    public void paint(final Graphics g) {
        try {
            System.err.println("paint frame....");
            g.drawImage(src, 30, 30, this);
        } catch (Throwable e) {
            theError = e;
        } finally {
            if (latch != null) {
                latch.countDown();
            }
        }
    }

    public static void main(final String[] args) throws Exception {
        final JFrame frame = new DrawBitmaskToSurfaceTest();
        frame.setBounds(10, 350, 200, 200);
        frame.setVisible(true);

        Thread.sleep(2000);

        System.err.println("Change frame bounds...");
        latch = new CountDownLatch(1);
        frame.setBounds(10, 350, 90, 90);
        frame.repaint();

        try {
            if (latch.getCount() > 0) {
                latch.await();
            }
        } catch (InterruptedException e) {
        }

        frame.dispose();

        if (theError != null) {
            throw new RuntimeException("Test failed.", theError);
        }

        System.err.println("Test passed");
    }
}


cute, little, great, good and adorable.
This product had a total of 46 reviews as of our last analysis date on Nov 19 2018.
They don't stick as well as other types of tape (which i believe is typical for washi tape) but as far as designs go they're adorable! sticks well and you get a decent amount of washi tape :) great tapes and they sent me a complimentary extra tape!!


I'm happy with the off-line, any idea why the SDK of SLES12-SP-3 seems to give issues ?
repositories. You can re-register the system after upgrade, though.
> SUSEConnect --cleanup  to remove all registration trace.
> More in the morning, I'll let this update tonight.
> A new install ran Okay.
>     *SLE-15-Installer* and *SLE-15-Packages* isos.


1971 datsun 510 - eugene.craigslist.org, 71 datsun 510 4 door. has full techno toy tuning coilover suspension along with there bump steer spacers and the 280zx front spindles and brakes. 15% window tint. got. Datsun 510 sale - bat auctions - bring trailer, Browse and bid online for the chance to own a datsun 510 at auction with bring a trailer, the home of the best vintage and classic cars online.. Craigslist – daily datsun, Part of the daily routine? hop onto to craigslist and if warranted, shout out the latest datsun deals to my wife (not that she cares, but she's the only one around.


text:
Open Training Institute was an online Registered Training Organisation (RTO) based in Australia, owned by Open Universities Australia.

Open Training Institute offered online Vocational Education Training (VET) courses across a number of business disciplines.

While the majority of enrolled students were based in Australia, courses were available to students internationally. With no entry requirements and no student quotas for courses, the Institute was "open" for all.

Open Training Institute offered 24 business qualifications online and provided two ways to study: self-paced or in a structured class.

Background
Open Training Institute was owned by Open Universities Australia.

History
Open Training Institute launched on December 27, 2013.  According to their official website, accessed 18 August 2017, "On 1 March 2016, Open Training Institute (RTO 40766) went into a teach-out phase and as a result, ceased all business operations as of 30 June 2017."

Y Factor
Open Training Institute launched with a brand advertising campaign featuring a fictional talent show called Y Factor. The advertisements featured Australian TV stars Mark Holden and Kimberly Davies as celebrity judges.

The talents of the fictional contestants featured on the Y Factor were a claw machinist, an extreme dog groomer, a slipper kicker, a dance cup stacker, an anthem gargler, a food juggler and a gymnastic spoonist.

References

External links

Organizations established in 2013
Australian vocational education and training providers
Open Universities Australia
Companies based in Melbourne

redpajama_set_name: RedPajamaWikipedia


text:
Five organisations you can support to help #EndSARS
A number of people taking part in #EndSARS protests in Nigeria have reportedly been shot dead in Lagos. An indefinite 24-hour curfew has now been imposed on the capital and other regions. Meanwhile, the army has dismissed reports as "fake news". Here's how you can help.
#EndSARS: young Nigerians speak out
Yesterday, protestors gathered in London and Abjua, Nigeria, including Wizkid, Burna Boy and Davido, to call for the abolishment of SARS – a corrupt unit of the Nigerian police force. Here's what went down in the capital.
Fireboy DML is Nigeria's elusive loverman
The artist's new album Apollo puts a fresh spin on the Afrobeats sound and takes on matters of the heart.
Adesuwa Aighewi: Heaven and hell in your mouth
The American model selects any meal anywhere in the world, from Los Angeles to Lagos.
Meet Mowalola's favourite rapper, DetoBlack
The muse, rapper, actor, chartered accountant and gender equality activist is getting ready for the big league.
Priya Ahluwalia's insatiable sweet tooth finds her in Southall
Launching today as part of London's first digital fashion week, Ahluwalia's new book, Jalebi, celebrates Southall's multiculturalism in all its glory – and is named after a golden syrup-coated dessert. Delicious.


text:
The Anti-Vaccine Movement Should Be Ridiculed, Because Shame Works
Matt Novak
Published 6 years ago: February 7, 2015 at 11:00 am -
Filed to:anti-vaccine movement
anti-vaxxershistoryjenny mccarthymedicinerantshamesocial control
The best way to win a debate is to present your facts in a clear, respectful way. When that doesn't work, another option is incessant ridicule. Here's why we have to use shame if we want to stop the anti-vaccine movement.
By now I'm sure you know the score. America's anti-vaccination movement has steamrolled its way across the country, leaving a trail of sick people in its wake. Measles is back. Whooping cough is back. And it's all because we spent the last decade watching people like Jenny McCarthy concoct a narrative that vaccines are unsafe. This is a public health crisis that's simply inexcusable.
Vaccines are safe, though I'm not here to convince you of that. Countless scientists and doctors have already presented evidence for over a century that vaccines work. They save the lives of kids, families, and whole communities. At this point no amount of logical argument or proof will convince McCarthy and her ilk that vaccines are safe. Studies show that confronting anti-vaxxers or climate change deniers with logic only makes them more defensive and thus more deeply entrenched in their positions. So why do we continue to use logic with the anti-vaccination movement? After all, the movement's modern founding text, a 1998 paper by British doctor Andrew Wakefield, was retracted and deemed fraudulent. Wakefield was even stripped of his medical licence. But this has only strengthened the resolve of the anti-vaxxers in their belief that the medical establishment doesn't want people to know "the truth."
I'm here to convince you that the best way to deal with anti-vaxxers is to ridicule their position so much that it's no longer acceptable to say in polite company that vaccines cause autism. Ridicule is our best option to help stem the tide of dangerous superstition washing over this beautiful, measles-infested country of ours. Because shaming works.
Shame is one of the most potent forces in American society. And just like any tool of socialisation and conformity, it can be used for both good and evil. Shame is currently winning the battle for marriage equality. We're seeing the battle play out in real time, and the bigots are losing because they're being ridiculed for articulating hateful beliefs. It's fast becoming unacceptable to compare gay marriage with bestiality. Not simply because it's an absurd comparison but because doing so rightly opens one up to ridicule and shame.
When it comes to the unhinged advocacy of unscientific ideas that endanger public health, it's time to bring out the big guns. Ridicule and shame are here to help. And history provides a handy guide for how they can be used for good.
Shaming the KKK
In the mid-1940s, an activist named Stetson Kennedy infiltrated the Ku Klux Klan to learn about the hate group's secret handshakes and code words. Kennedy passed on this information to the producers of "The Adventures of Superman", one of the most popular radio shows of the time, and the show serialised Superman's battles against the KKK. Over 16 glorious episodes the Klan was ridiculed nonstop for their ridiculous beliefs and silly practices. Virtually overnight, Klan recruitment slipped to zero.
White Americans of the 1940s didn't instantly become less racist. But joining the Klan was now something laughable — it was something you didn't admit to in public. Klansmen continued to exist and racism persisted, but Americans no longer wanted to be openly affiliated with an organisation that dressed up in their bedsheets and whispered stupid codewords to each other. The introduction of ridicule to anyone who thought of joining the Klan had worked. Association with the Klan was now something to be ashamed of in mainstream American society after the KKK's brief (yet still terrifying) flirtation with respectability. What worked against the Klan can work for unscientific ideas, like the toxic meme that vaccines are causing more diseases than they're preventing.
The fact is, people don't like to feel dumb. Sure, some say that there's been a rise of anti-intellectualism in the United States. But that narrative (which, frankly, I think is a gross romanticisation of a period in American history that never actually existed) isn't dependent upon our desire to not look foolish in front of our peers.
The anti-vaccination movement isn't exclusive to any particular ideology. So how is it possible that politicians like Rand Paul can respond to questions about the safety of vaccines with anything other than an unequivocal "use them because they're safe"? Because the anti-scientific alternative hasn't yet been made repugnant enough. Still, shame is making inroads: Paul would later get a booster vaccine after the media firestorm over his comments, proving that shame really does work.
Shame vs Guilt
When people complain that Americans have no shame these days, they're not altogether wrong. The United States is primarily a guilt-based culture. The dominant method of social control in this country involves teaching people to feel guilt about not living up to personal expectations. Contrast this with shame-based cultures like Japan. As researchers Ying Wong and Jeanne Tsai explain in their paper, Cultural Models of Shame and Guilt, shame is "associated with the fear of exposing one's defective self to others. Guilt, on the other hand, is associated with the fear of not living up to one's own standards." In this formulation, guilt is based on failing to achieve personal ideals; shame is based on social exposure.
The United States is a nation of guilt. We could use a bit more shame.
A high school student in Little Rock during integration attempts in 1957 proudly punches a dummy of a black student lynched, and later burned, in effigy (Associated Press)
The anti-vaccination movement, much like other poisonous elements of society, will still be there after the tide has turned. The goal is not to completely wipe out personal beliefs, but rather make them so unpopular that it's not longer acceptable to take pride in the anti-vaccination position in public. Real change in culture follows.
What happened to the racists standing in front of schools shouting that they didn't want racial integration during the 1950s and 60s? Did they just disappear? Nope. But over the next two decades it became increasingly inappropriate to spew racist bile in public. Their racism was no longer considered socially acceptable behaviour by the culture at large. Joyously punching (and later burning) an effigy of a black student was no longer something that could be done in public, as it was in the photo above. Mainstream America came to see it as a shameful act. The social rules changed.
Shaming a Movement, Not Humiliating People
Let me be clear that I'm not advocating that individuals on street corners be shamed for not vaccinating their kids. Fundamentally, individuals choosing not to vaccinate are doing so largely out of misguided concern for the health of their children. I'm arguing that we need to do something much more radical and difficult: we need to support a culture that shames its members for not vaccinating their kids — and by extension, for endangering their communities. Vaccination is a social issue, and therefore shame should regulate it.
But changing our culture means taking aim at the powerful and those profiting from the anti-vaccination movement. And make no mistake that there are people getting rich from the anti-vaccine industry.
We also must also draw a distinction between shame and humiliation. It is not our goal to humiliate. As William Ian Miller explains in his book Humiliation and Other Essays on Honour, Social Discomfort, and Violence:
To shame is serious business. Shaming someone is usually understood to be more formal, more regularized, more directed to the maintenance of specific community norms than humiliating someone is. […] Shaming operates by stripping someone of a status she had some right to before the particular failing, whereas humiliation destroys the illusion of having belonged at all.
I don't want to advocate humiliating or bullying individuals. Shame is about regulating social norms, not screaming at powerless people on Twitter.
As a society, we need to ridicule the anti-vaccination movement's appeals to science and reason. Because fundamentally, that's the problem. Anti-vaccine advocates believe that they have scientific backing on this one, and that's what gives them social legitimacy. But that legitimacy is a lie. It is a shameful and socially destructive lie.
There are some people with perfectly legitimate reasons not to vaccinate their kids. Allergies to vaccines are rare, but they exist. And that's all the more reason that establishing herd immunity through 90-95 per cent vaccination rates is important. Ridicule of anti-vaxxers isn't targeted at people who are allergic, just as the ridicule of faddish gluten-free diets isn't aimed at people who are actually allergic to gluten.
The anti-vaccine movement is threatening everybody's health and safety. And for that, they should be ashamed of themselves. Ridicule and the resulting shame are not pleasant things to talk about or invoke. But it's time to stop pretending. Until we establish a culture of shame around anti-vaccine talking points, this problem will not go away.
Pictures: Jim Cooke, Getty


The work Serenade to music ; : English folk song suite ; Norfolk rhapsody no. 1 ; Fantasia on 'Greensleeves' ; In the Fen country ; The lark ascending represents a distinct intellectual or artistic creation found in University of Oklahoma Libraries. This resource is a combination of several types including: Work, Audio, Musical, Music.


text:
The 36th Rhubarb Festival – Young Creators Unit Preview
by in the greenroom on February 9, 2015
I met with the Young Creators Unit (kumari giles, Faith-Ann Mendes, Andre Prefontaine and Brian Postalian) at Buddies in Bad Times Theatre to learn more about their individual upcoming performances as part of the 36th annual Rhubarb Festival.
The four artists, along with YCU director, theatre-maker Evalyn Parry, and myself sat around a table in the Buddies Antechamber to discuss the challenges, origins and highlights of their individual creations over a 5 month-long process. Identity, ancestry and memory are some of the common themes that weave their way through the four distinctly different pieces of theatre. The following is drawn from the transcript of our conversation.
BG: Tell me about your piece, where it began and what it's about.
Faith-Ann Mendes – Justice Spelled with V(engeance)
"I'm working on a show about a young, black woman and her experience at college. It's a coming of age story about my character, Mia. She starts off trying to fit in, and then it turns into her seeking vengeance. She comes from my time, past and present, at Queens [University] – Super white, super wealthy, and it's almost comical how extreme it is. I had this feeling like, this can't be real. And it's also very violent. I wanted to talk about that and what I would want to happen in a very "theatre" way. [The piece] explores fantasy, rape on campus and the culture of white privilege."
Brian Postalian – There Was and There Was Not
"My piece started from a place of me not being sure of my history as an Armenian. There was a genocide in 1915 and over a million Armenians were massacred by the Turkish. My grandfather and grandmother were survivors of this genocide. My grandfather was a young orphan who was brought over from Lebanon to a farm in Georgetown, Ontario. However, my grandfather passed away before I was born. My grandmother also passed away when I was young. I didn't know what the family stories were. The piece has been an exploration of this history that I feel I have been bereft of… that is lacking. It's changing constantly, but at the moment it's exploring the relationship between two Armenian orphans in Lebanon who are trying to make sense of the haunting the genocide has left and how they can recover, if they can recover."
kumari giles – things i cannot speak
"My piece is about what happens when you listen to and uncover body memory. The story comes through a character named kumari, which is also my name, and their grandmother atchcha, their great-grandmother and a mysterious boy who comes in to play. It's inspired by my own journeys of listening to different things in my body, the people who come to reside in them and spirits who reside around me. The messages that get passed through blood and body and the messages that get passed through voices when they can't be passed through your body. It relates to queer history, as well as ancestral history, and a longing to find home in an in-between place."
Andre Prefontaine – (mE)dith Piaf
"My piece is about… how does one find their artistic voice when they spend so much time listening to others? And when life presents you challenges do you succumb to them, or do you rise above? So I paralleled instances in my life to that of Edith Piaf. She's like a guardian angel that shows up at the very end and gives a sense of purpose to it all. It's about living your life in a way to find the true sense of your voice, living with no regrets. And then embracing the past, because it's what gave you your present tense voice and how you use it to then shape what your future will be.
I asked the four artists to describe to me what has been some of the challenges and highlights of this intense creative process. Andre expressed his initial intimidation, coming from a slam poet background as opposed to a theatrical base: "It was equally as exciting because all of my comrades came in with nothing but ideas. Over the past five months it has been so encouraging to see the amount of growth. I'm not in this by myself. I see their pieces grow and that's the strength I want to have for myself."
Brian chuckled and revealed to me that Andre is the group's resident astrologist: "He gives us our moon and star readings for the week." All four artists smiled as Andre nods and laughs. "It's nice to know you're not alone," Brian continued, "other people have been there and are still going through it. The energy we've all brought to the room on a consistent basis just reflects on each other." Brian emphasized how comforting the shared energy of the group has been in supporting the creative work.
kumari cut right to the core of their challenges: "The whole process is challenging because you have to write a show in five months. I'm grounded in movement, so it was very challenging for me. When text is spoken out loud there's the challenge of what folks are expecting and what you want out of it." kumari discussed how in their personal movement practice they often write text, but then the words are translated into pure movement and therefore the writing is never revealed to the audience. For kumari, the most exciting part was meeting with the group and finding solace in shared experience as they delved deeper into the ever-growing, ever-changing work. "Putting this show on its feet and discovering more about the story while workshopping it has been very exciting," kumari nodded.
Faith-Ann stared at the ceiling as she considered her challenges. "I guess…" she began before cutting herself off with a firm, "no, I know." The group burst out laughing and I couldn't help but notice the mutual respect and support shared between the group. Faith-Ann described her biggest adjustment, which was transitioning from a solo process to a collaborative process, with a full-fledged professional company on top of it all. Faith-Ann concluded the interview by saying, "Writing can be such a solitary practice, but theatre is so collaborative. To have that kind of impetus to come together and compare other voices makes my writing better. Less isolated."
The 36th annual Rhubarb Festival runs from February 11th to the 22nd at Buddies & Bad Times Theatre.
For more information about the Rhubarb Festival's Young Creators Unit and the dates & times for each of these performances, please visit their website.
Tags: 36th Rhubarb Festival, Andre Prefontaine, Bailey Green, Brian Postalian, Buddies in Bad Times Theatre, Faith-Ann Mendes, kumari giles, Theatre Festival, Toronto Theatre, Young Creators Unit
← In Conversation: "Melancholy Play" by Sarah Ruhl
Artist Profile: Sara Farb, Playwright & Performer of personal piece R-E-B-E-C-C-A at Theatre Passe Muraille →
Bailey Green	#
Reblogged this on Bailey Green | Freelance Writer.