text:
using System;
using ColossalFramework.UI;
using MetroOverhaul.Extensions;
using UnityEngine;
using System.Collections.Generic;

namespace MetroOverhaul.UI
{
    public class MetroTrackAssetCustomizerUI : MetroCustomizerBaseUI
    {
        protected override bool SatisfiesTrackSpecs(PrefabInfo info)
        {
            return ((NetInfo)info).IsMetroTrack() || ((NetInfo)info).IsMetroStationTrack();
        }

        protected override ToolBase GetTheTool()
        {
            return m_netTool;
        }

        protected override PrefabInfo GetToolPrefab()
        {
            return ((NetTool)GetTheTool())?.m_prefab;
        }

        protected override PrefabInfo CurrentInfo { get => m_currentNetInfo; set => m_currentNetInfo = (NetInfo)value; }

        protected override void SubStart()
        {
            trackStyle = TrackStyle.Modern;
            trackDirection = 1;
            pillarType = PillarType.WideMedian;
            ExecuteUiInstructions();
        }

        protected override void CreateUI()
        {
#if DEBUG
            Next.Debug.Log("MOM TRACK GUI Created");
#endif
            base.CreateUI();
            width = 250;
            CreateDragHandle("Track Options");
            var pnlStyles = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlStyles",
                ColShare = 6,
                Margins = new Vector2(10, 0)
            });
            var pnlDirections = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlDirections",
                ColShare = 5,
                ColOffset = 1,
            });
            var lblStyles = CreateLabel(new UILabelParamProps()
            {
                Name = "lblStyles",
                Text = "Style Selector",
                ParentComponent = pnlStyles,
                ColumnCount = 1
            });
            var tsStyles = CreateTabStrip(new UITabstripParamProps()
            {
                Name = "tsStyles",
                ParentComponent = pnlStyles,
                Margins = new Vector2(9, 0),
                ColumnCount = 1
            });
            btnModernStyle = CreateButton(new UIButtonParamProps()
            {
                Name = "btnModernStyle",
                ToolTip = "Modern Style",
                ColumnCount = 3,
                ParentComponent = tsStyles,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_ModernStyleAtlas", UIHelper.ModernStyle),
                Width = 59,
                Height = 52,
                EventClick = (c, v) =>
                {
                    trackStyle = TrackStyle.Modern;
                    ExecuteUiInstructions();
                }
            });
            btnClassicStyle = CreateButton(new UIButtonParamProps()
            {
                Name = "btnClassicStyle",
                ToolTip = "Classic Style",
                ColumnCount = 3,
                ParentComponent = tsStyles,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_ClassicStyleAtlas", UIHelper.ClassicStyle),
                Width = 59,
                Height = 52,
                EventClick = (c, v) =>
                {
                    trackStyle = TrackStyle.Classic;
                    ExecuteUiInstructions();
                }
            });
            btnVanillaStyle = CreateButton(new UIButtonParamProps()
            {
                Name = "btnVanillaStyle",
                ToolTip = "Vanilla Style",
                ColumnCount = 3,
                ParentComponent = tsStyles,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_VanillaStyleAtlas", UIHelper.VanillaStyle),
                Width = 59,
                Height = 52,
                EventClick = (c, v) =>
                {
                    trackStyle = TrackStyle.Vanilla;
                    ExecuteUiInstructions();
                }
            });
            var lblDirections = CreateLabel(new UILabelParamProps()
            {
                Name = "lblDirections",
                Text = "Direction",
                ParentComponent = pnlDirections,
                Margins = new Vector2(8, 16),
                ColumnCount = 1
            });
            var tsDirections = CreateTabStrip(new UITabstripParamProps()
            {
                Name = "tsStyles",
                ParentComponent = pnlDirections,
                Margins = new Vector2(9, 0),
                StartSelectedIndex = 1,
                ColumnCount = 1
            });
            btnOneWay = CreateButton(new UIButtonParamProps()
            {
                Name = "btnOneWay",
                ColumnCount = 2,
                ParentComponent = tsDirections,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_OnewayDirectionAtlas", UIHelper.OnewayDirection),
                Width = 36,
                Height = 33,
                Margins = new Vector2(8, 27),
                EventClick = (c, v) =>
                {
                    trackDirection = 0;
                    ExecuteUiInstructions();
                }
            });
            btnTwoWay = CreateButton(new UIButtonParamProps()
            {
                Name = "btnTwoWay",
                ColumnCount = 2,
                ParentComponent = tsDirections,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_TwowayDirectionAtlas", UIHelper.TwowayDirection),
                Width = 36,
                Height = 33,
                Margins = new Vector2(8, 27),
                EventClick = (c, v) =>
                {
                    trackDirection = 1;
                    ExecuteUiInstructions();
                }
            });
            var pnlTrackVsStation = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlTrackVsStation",
                ColShare = 10,
                ColOffset = 2,
                Margins = new Vector2(0, 20)
            });
            var lblTrackVsStation = CreateLabel(new UILabelParamProps()
            {
                Name = "lblTrackVsStation",
                Text = "Track / Station Track",
                ParentComponent = pnlTrackVsStation,
                ColumnCount = 1
            });
            pnlTrackVsStation = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlTrackVsStation",
                ColumnCount = 1,
                ParentComponent = pnlTrackVsStation
            });
            btnTrack = CreateButton(new UIButtonParamProps()
            {
                Text = "Track",
                ColumnCount = 2,
                EventClick = (c, v) =>
                {
                    isStation = 0;
                    ExecuteUiInstructions();
                }
            });
            btnStation = CreateButton(new UIButtonParamProps()
            {
                Text = "Stn Trk",
                ColumnCount = 2,
                EventClick = (c, v) =>
                {
                    isStation = 1;
                    ExecuteUiInstructions();
                }
            });
            var pnlPillarChooserWrapper = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlPillarChooserWrapper",
                ColShare = 11,
                ColOffset = 1,
                Margins = new Vector2(0, 20)
            });
            var lblPillarChooser = CreateLabel(new UILabelParamProps()
            {
                Name = "lblPillarChooser",
                Text = "Pillar Selector",
                ParentComponent = pnlPillarChooserWrapper,
                ColumnCount = 1
            });
            pnlPillarChooser = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlPillarChooser",
                ColumnCount = 1,
                ParentComponent = pnlPillarChooserWrapper
            });
            btnWideMedianPillar = CreateButton(new UIButtonParamProps()
            {
                Name = "btnWideMedianPillar",
                ParentComponent = pnlPillarChooser,
                ColumnCount = 4,
                Width = 50,
                Height = 50,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_WideMedianPillarAtlas", UIHelper.WideMedianPillar),
                EventClick = (c, v) =>
                {
                    pillarType = PillarType.WideMedian;
                    ExecuteUiInstructions();
                }
            });
            btnWidePillar = CreateButton(new UIButtonParamProps()
            {
                Name = "btnWidePillar",
                ParentComponent = pnlPillarChooser,
                ColumnCount = 4,
                Width = 50,
                Height = 50,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_WidePillarAtlas", UIHelper.WidePillar),
                EventClick = (c, v) =>
                {
                    pillarType = PillarType.Wide;
                    ExecuteUiInstructions();
                }
            });
            btnNarrowPillar = CreateButton(new UIButtonParamProps()
            {
                Name = "btnNarrowPillar",
                ParentComponent = pnlPillarChooser,
                ColumnCount = 4,
                Width = 50,
                Height = 50,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_NarrowPillarAtlas", UIHelper.NarrowPillar),
                EventClick = (c, v) =>
                {
                    pillarType = PillarType.Narrow;
                    ExecuteUiInstructions();
                }
            });
            btnNarrowMedianPillar = CreateButton(new UIButtonParamProps()
            {
                Name = "btnNarrowMedianPillar",
                ParentComponent = pnlPillarChooser,
                ColumnCount = 4,
                Width = 50,
                Height = 50,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_NarrowMedianPillarAtlas", UIHelper.NarrowMedianPillar),
                EventClick = (c, v) =>
                {
                    pillarType = PillarType.NarrowMedian;
                    ExecuteUiInstructions();
                }
            });

            var pnlCheckboxOptions = CreatePanel(new UIPanelParamProps()
            {
                Name = "pnlCheckboxOptions",
                ColumnCount = 1,
                Margins = new Vector2(0, 10)
            });
            CheckboxDict = new Dictionary<string, UICheckBox>();

            CheckboxDict[ALT_BARRIER] = CreateCheckbox(new UICheckboxParamProps()
            {
                Text = ALT_BARRIER,
                ColumnCount = 1,
                ParentComponent = pnlCheckboxOptions,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_CheckboxAtlas", UIHelper.Checkbox),
            });
            CheckboxDict[OVER_ROAD_FRIENDLY] = CreateCheckbox(new UICheckboxParamProps()
            {
                Text = OVER_ROAD_FRIENDLY,
                ColumnCount = 1,
                ParentComponent = pnlCheckboxOptions,
                Atlas = UIHelper.GenerateLinearAtlas("MOM_CheckboxAtlas", UIHelper.Checkbox),
            });
            //CreateCheckbox(EXTRA_PILLARS);
        }
        protected override void ExecuteUiInstructions()
        {
            btnSingleTrack.isVisible = isStation == 0;
            btnDoubleTrack.isVisible = isStation == 0;
            btnQuadTrack.isVisible = isStation == 0;
            btnOneWay.isVisible = isStation == 0;
            btnTwoWay.isVisible = isStation == 0;

            foreach (var kvp in CheckboxDict)
            {
                kvp.Value.isVisible = isStation == 0;
            }
            foreach (var kvp in buttonStationDict)
            {
                kvp.Value.isVisible = isStation == 1;
            }

            ToggleButtonPairs((int)trackStyle, btnModernStyle, btnClassicStyle, btnVanillaStyle);
            ToggleButtonPairs(isStation, btnTrack, btnStation);

            if (isStation == 0)
            {
                ToggleButtonPairs(trackDirection, btnOneWay, btnTwoWay);
            }
            else if (isStation == 1)
            {
                ToggleButtonPairs(stationType);
            }
            NetInfo prefab = null;
            var fence = CheckboxDict[ALT_BARRIER].isChecked;
            if (!btnOneWay.isInteractive)
            {
                btnOneWay.isInteractive = true;
                if (trackDirection == 0)
                {
                    btnOneWay.state = UIButton.ButtonState.Focused;
                }
                else
                {
                    btnOneWay.state = UIButton.ButtonState.Normal;
                }
            }
            if (!btnNarrowMedianPillar.isInteractive)
            {
                btnNarrowMedianPillar.isInteractive = true;
                if (pillarType == PillarType.NarrowMedian)
                {
                    btnNarrowMedianPillar.state = UIButton.ButtonState.Focused;
                }
                else
                {
                    btnNarrowMedianPillar.state = UIButton.ButtonState.Normal;
                }
            }
            switch (trackStyle)
            {
                case TrackStyle.Vanilla:
                    switch (trackSize)
                    {
                        case 0:
                            {
                            }
                            break;
                        case 1:
                            if (trackDirection == 0)
                            {

                            }
                            else
                            {
                                prefab = vanillaPrefab;
                            }
                            break;
                    }
                    break;
                case TrackStyle.Modern:
                    {
                        switch (isStation)
                        {
                            case 0:
                                switch (trackSize)
                                {
                                    case 0:
                                        if (trackDirection == 0)
                                            prefab = fence ? concreteSmallPrefab : concreteSmallPrefabNoBar;
                                        else
                                            prefab = fence ? concreteSmallTwoWayPrefab : concreteSmallTwoWayPrefabNoBar;
                                        break;
                                    case 1:
                                        if (trackDirection == 0)
                                            prefab = fence ? concreteTwoLaneOneWayPrefab : concreteTwoLaneOneWayPrefabNoBar;
                                        else
                                            prefab = fence ? concretePrefab : concretePrefabNoBar;
                                        break;
                                    case 2:
                                        {
                                            if (trackDirection == 0)
                                            {
                                                btnOneWay.enabled = false;
                                                btnTwoWay.SimulateClick();
                                            }
                                            else
                                            {
                                                prefab = fence ? concreteLargePrefab : concreteLargePrefabNoBar;
                                                btnOneWay.state = UIButton.ButtonState.Disabled;
                                                btnOneWay.isInteractive = false;
                                                btnNarrowMedianPillar.state = UIButton.ButtonState.Disabled;
                                                btnNarrowMedianPillar.isInteractive = false;
                                            }
                                        }
                                        break;
                                }
                                break;
                            case 1:
                                switch (stationType)
                                {
                                    case StationTrackType.SidePlatform:
                                        prefab = concreteSideStationPrefab;
                                        break;
                                    case StationTrackType.IslandPlatform:
                                        prefab = concreteIslandStationPrefab;
                                        break;
                                    case StationTrackType.SinglePlatform:
                                        prefab = concreteSingleStationPrefab;
                                        break;
                                    case StationTrackType.ExpressSidePlatform:
                                        prefab = concreteQuadSideStationPrefab;
                                        break;
                                    case StationTrackType.DualIslandPlatform:
                                        prefab = concreteQuadDualIslandStationPrefab;
                                        break;
                                }
                                break;
                        }
                    }
                    break;
                case TrackStyle.Classic:
                    {
                        switch (isStation)
                        {
                            case 0:
                                {
                                    switch (trackSize)
                                    {
                                        case 0:
                                            {
                                                if (trackDirection == 0)
                                                {
                                                    prefab = fence ? steelSmallPrefab : steelSmallPrefabNoBar;
                                                }
                                                else
                                                {
                                                    prefab = fence ? steelSmallTwoWayPrefab : steelSmallTwoWayPrefabNoBar;
                                                }
                                            }
                                            break;
                                        case 1:
                                            {
                                                if (trackDirection == 0)
                                                {
                                                    prefab = fence ? steelTwoLaneOneWayPrefab : steelTwoLaneOneWayPrefabNoBar;
                                                }
                                                else
                                                {
                                                    prefab = fence ? steelPrefab : steelPrefabNoBar;
                                                }
                                            }
                                            break;
                                        case 2:
                                            {
                                                if (trackDirection == 0)
                                                {
                                                    btnOneWay.enabled = false;
                                                    btnTwoWay.SimulateClick();
                                                }
                                                else
                                                {
                                                    prefab = fence ? steelLargePrefab : steelLargePrefabNoBar;
                                                    btnOneWay.state = UIButton.ButtonState.Disabled;
                                                    btnOneWay.isInteractive = false;
                                                    btnNarrowMedianPillar.state = UIButton.ButtonState.Disabled;
                                                    btnNarrowMedianPillar.isInteractive = false;
                                                }
                                            }
                                            break;
                                    }
                                    break;
                                }
                            case 1:
                                {
                                    switch (stationType)
                                    {
                                        case StationTrackType.SidePlatform:
                                            prefab = steelSideStationPrefab;
                                            break;
                                        case StationTrackType.IslandPlatform:
                                            prefab = steelIslandStationPrefab;
                                            break;
                                        case StationTrackType.SinglePlatform:
                                            prefab = steelSingleStationPrefab;
                                            break;
                                        case StationTrackType.ExpressSidePlatform:
                                            prefab = steelQuadSideStationPrefab;
                                            break;
                                        case StationTrackType.DualIslandPlatform:
                                            prefab = steelQuadDualIslandStationPrefab;
                                            break;
                                    }
                                }
                                break;
                        }
                        break;
                    }
            }
            if (prefab != null)
            {
                if (CheckboxDict.ContainsKey(OVER_ROAD_FRIENDLY))
                {
                    var noCollisionPillars = CheckboxDict[OVER_ROAD_FRIENDLY].isChecked;
                    var elevatedPrefab = PrefabCollection<NetInfo>.FindLoaded(prefab.name.Replace("Ground", "Elevated"));
                    var ttbai = elevatedPrefab?.GetComponent<MOMMetroTrackBridgeAI>();
                    if (ttbai != null)
                    {
                        ttbai.NoPillarCollision = noCollisionPillars;
                    }

                    var bridgePrefab = PrefabCollection<NetInfo>.FindLoaded(prefab.name.Replace("Ground", "Bridge"));
                    var ttbai2 = bridgePrefab?.GetComponent<MOMMetroTrackBridgeAI>();
                    if (ttbai2 != null)
                    {
                        ttbai2.NoPillarCollision = noCollisionPillars;
                    }
                }

                m_netTool.m_prefab = prefab;
                m_currentNetInfo = prefab;
            }
        }

        protected override void Activate(PrefabInfo info)
        {
            base.Activate(info);
            if (info.name.Contains("Large"))
            {
                trackSize = 2;
            }
            else if (info.name.Contains("Small"))
            {
                trackSize = 0;
            }
            else
            {
                trackSize = 1;
            }
            ExecuteUiInstructions();
        }
        protected override void SubDeactivate()
        {
            if (m_TheIntersectClass != null)
            {
                m_currentNetInfo.m_intersectClass = m_TheIntersectClass;
            }
        }
    }
}

redpajama_set_name: RedPajamaGithub


An horrific lorry cab video showing a deadly crash on the A34 near Newbury has now been watched by more than 2.4 million people.
A Mum and three children were killed by a driver who was distracted by his mobile.
Their loved ones released the footage through Thames Valley Police highlighting the dangers of using our phones behind the wheel.
More than 2.4 million Facebook users have watched it and at it's been viewed over a quarter of a million times on YouTube.


text:
AMZN US0231351067
(AMZN)
3125.98 USD -1.65%
03:16a AMAZON COM : reimagines in-store shopping with Style
03:02a Amazon plans a clothing store for a Southern California mall
02:06a Senegalese Logistics and Delivery Company PAPS Raises $4.5m Led By 4DX Ventures and Orange
Climate Next: How data and community can save Zanzibar's mangroves
Digital Earth Africa is helping Zanzibar fight the effects of climate change and protect the island's precious mangrove habitat. The story is also part of a new documentary series, Climate Next.
Zanzibar Island, located off the coast of Tanzania in East Africa, spans 950 square miles of lush vegetation and idyllic beaches that support its tourism-driven economy, in addition to the agricultural and fishing industries that help feed its 1.5 million inhabitants. Zanzibar is known for its most famous coastal ecosystem: mangrove forests.
Mangroves are an incredibly hardy family of trees and shrubs-their deep, salt-tolerant roots thrive on coastlines and serve as natural barriers to storms and rising seas. In Zanzibar, the forests protect the island's human residents and help fish hide from predators. But the mangroves also help protect the planet: They are incredibly effective in naturally combating climate change thanks to their ability to sequester three to four times more carbonfrom the Earth's atmosphere than tropical forests.
However, Zanzibar's mangrove forests are quickly becoming threatened by the effects of climate change, including rising sea levels, coastal erosion, and vanishing natural habitats. Research shows that 70% of natural disasters in Tanzania are climate related. These effects threaten the future existence of plants and animals native to the island, as well as the livelihoods of the islanders who heavily depend on agriculture and fishing. Mangroves, a bedrock of the ecosystem, are also increasingly threatened by human activity like deforestation.
"Zanzibar will be history. That's why we give education to the villagers of Zanzibar to plant more mangroves."
Iddi Hassan Ali
Chairman of Zanzibar Volunteers for Environmental Conservation
The urgency of climate change's effects on Zanzibar, a semiautonomous archipelago in Tanzania, has prompted the Tanzanian government to turn to Digital Earth Africa, an organization that provides a trove of digital data including decades of satellite imagery of Africa. The data and tools provided by Digital Earth Africa, which runs on Amazon Web Services (AWS), examine near-real-time images of Earth. Government officials, NGOs, business leaders, and farmers across use the data to inform future research, decisions, and conservation efforts.
Digital Earth Africa-and the Zanzibar researchers using the service to help fight the effects of climate change-are part of a new AWS original documentary series titled "Climate Next." The four-part series features stories about people and communities around the world driving innovation and creating scalable solutions to address climate change.
Through the Amazon Sustainability Data Initiative (ASDI), AWS is storing petabytes of satellite data to support Digital Earth Africa, at no cost to the project. Today, Digital Earth Africa is the world's largest open data cubefor accessing and analyzing decades of satellite imagery of Africa's lands and seas running on AWS.
Zanzibar native Khairiya Masoud, an assistant lecturer at The State University of Zanzibar (SUZA), said her personal experiences with climate change on the island prompted her to pursue education as a full-time career. Masoud oversees SUZA's Digital Earth Africa club, an extracurricular group that equips students with knowledge of advanced geospatial tools and Earth observation data through Digital Earth Africa. The club improves students' skills and geospatial problem-solving.
AWS is also providing leaders like Massoud Hamad and Raya Ahmada, and assistant lecturers at SUZA, access to all of Digital Earth Africa's data and analysis tools at no cost. The analysis allows the team to obtain important insights that they can apply directly to their conservation efforts, such as protecting and restoring mangroves. In Zanzibar, YouthMappersand other conservation groups build community awareness around the importance of mangrove forests as a way to demonstrate the impacts of climate change on the island.
Khairiya Masoud, Assistant Lecturer at The State University of Zanzibar (SUZA), ensures that young people are equipped with the skills they need to use geospatial technology. Masoud has incorporated Digital Earth Africa into the curriculum for her students at SUZA.
Photo by Sameer Satchu
"As we all know, climate change has been an issue not only in Zanzibar. It's a worldwide problem," said Ahmada. "We are part of the community and we are taking part in helping the community, working with them, supporting them where [they are] in need, also helping in giving them education about [climate change], but also taking parts into [volunteering] programs."
For conservationists, more information means better decisions. With the assistance of AWS Cloud compute and storage capabilities, conservationists are able to access and analyze more information than ever before, including a time series analysis of the mangroves to see ecological trends over the decades.
Dr. Kenneth Mubea, the user engagement manager at Digital Earth Africa, supports engagements with partners across the continent who wish to use the organization's data and services-especially those who work in government, academia, and civil society.
"Digital Earth Africa is helping provide the data that is required, which was already a gap before. All this analysis-ready data is available through AWS in the click of one button," said Mubea. "With the various partnerships we engaged, with the various governments in Africa, they asked for more. And we are able to deploy these for the 54 countries in Africa, so that we leave no one behind."
Listen to the rainforest chorus that's helping scientists protect African elephants
Elusive elephants, gorillas, grey parrots, and tree frogs are among the animal sounds in 1 million hours of rainforest recordings that could help save threatened species.
Digital Earth Africa's data and tools are already informing conservation efforts on the ground. Iddi Hassan Ali is the chairman of Zanzibar Volunteers for Environmental Conservation (ZAVECO) and helps drive the progress on planting mangroves, which he said are crucial across the island.
"Zanzibar, as we know, this is an island, and without mangroves after maybe 20, 25 years, if there's no group like us, volunteers for planting, Zanzibar will disappear because the salt water is coming in the villages," said Hassan Ali. "Zanzibar will be history. That's why we give education to the villagers of Zanzibar to plant more mangroves."
Planting mangroves is what local leaders like Hamad, Ahmada, and SUZA students do nearly every week. Each time they go out, their goal is to plant 1,000 mangrove seeds.
Just like communities around the globe, people in Zanzibar are dependent on the natural resources around them-and with these resources comes responsibility. As the climate continues to change, Digital Earth Africa offers critical resources to help governments and communities across Africa better manage and monitor their natural resources to ensure a more sustainable future.
Amazon and AWS are proud to support innovation and life-changing organizations in Zanzibar and elsewhere in the world and will keep working to help future generations enjoy a clean and sustainable environment.
To find out more about the Amazon Sustainability Data Initiative and its grant program, please visit amazonsdi.com. Learn more about how AWS Aerospace and Satellitesupports customers and partners.
AWSSustainabilityInnovation
Amazon.com Inc. published this content on 01 December 2021 and is solely responsible for the information contained therein. Distributed by Public, unedited and unaltered, on 01 December 2021 03:10:04 UTC.
All news about AMAZON.COM, INC.
02:06a Senegalese Logistics and Delivery Company PAPS Raises $4.5m Led By 4DX Ventures and Ora..
12:08a Telenor partners with Amazon to modernise systems, offer services
01/19 White House meets small and mid-sized firms to discuss competition in tech sector
01/19 US Retailers Coalition Urges Regulators to Scrutinize 'Excessively High Fees' Charged b..
01/19 AMAZON COM : Web Services scholarships help high school seniors go to college
01/19 UK's East Imperial Secures Long-Term Distribution Agreement in US
01/18 Verizon, Amazon Web Services Expand Mobile Edge Computing to Additional US Metro Areas
01/18 Verizon and Amazon Web Services To Expand to 30% More Metro Area Locations With Mobile ..
Analyst Recommendations on AMAZON.COM, INC.
01/11 Amazon.com Receives Price Target Boost to $4,200 From $4,000 From Morgan Stanley, Overw..
01/10 BofA Securities Names Amazon Top FANG Pick for 2022
01/04 AMAZON COM INC : RBC keeps its Buy rating
Sales 2021 470 B - -
Yield 2021 -
Capitalization 1 585 B 1 585 B -
Nbr of Employees 1 298 000
Chart AMAZON.COM, INC.
Technical analysis trends AMAZON.COM, INC.
Trends Bearish Bearish Neutral
Mean consensus BUY
Last Close Price 3 125,98 $
Average target price 4 135,86 $
Andrew R. Jassy President, Chief Executive Officer & Director
Brian T. Olsavsky Chief Financial Officer & Senior Vice President
Jeffrey P. Bezos Executive Chairman
Patricia Q. Stonesifer Independent Director
Jonathan Jake Rubinstein Lead Independent Director
AMAZON.COM, INC. -6.25% 1 585 333
JD.COM, INC. 3.18% 111 627
ETSY, INC. -25.49% 20 683
WAYFAIR INC. -17.87% 16 311
ALLEGRO.EU SA 3.45% 10 318
MOMO.COM INC. -7.38% 9 913

redpajama_set_name: RedPajamaCommonCrawl


Created by by Hungarian artist Levente Szabó (previously), 'Utopia' is an illustrations series inspired by the work of late Brazilian architect Oscar Niemeyer.
"Oscar Niemeyer was a Brazilian architect, considered to be one of the key figures in the development of modern architecture. He was best known for his design of civic buildings for Brasília, a planned city that became Brazil's capital in 1960, as well as his collaboration with other architects on the headquarters of the United Nations in New York.
His exploration of the aesthetic possibilities of reinforced concrete was highly influential in the late 20th and early 21st centuries.


text:
Review: Samsung Galaxy Nexus
It's obvious Ice Cream Sandwich is the star here, so Samsung's hardware basically gets out the way and lets the new OS shine.
Photo by Ariel Zambelich/Wired
$300 at Samsung
If you buy something using links in our stories, we may earn a commission. This helps support our journalism. Learn more. Please also consider subscribing to WIRED
Open rating explainer
Like the T-1000 standing in a sea of Arnolds, the Galaxy Nexus is better, faster and smarter than any other Android phone on the market.
Not that current Android phones fall short in machine power. Rather, much like the androids of the silver screen, the operating system has been the weak point. Previous versions of Android have lacked some intangible spark. A human element, perhaps – a missing je ne sais quoi that has been keeping many critics and users from fully engaging with the platform.
It's a debatable point, but I'd argue that "special something" can be found in Android's biggest competitor, Apple's iOS. Siri, the voice-activated digital servant on the iPhone 4S, is a great example of a feature that marries technical prowess with a human touch: We speak to "her", not to "it."
Android, on the other hand, has always been sold on the strength of its robotic nature. Power, hardware specs and hackability were the reasons why we were supposed to buy an Android. It's not a posh concierge, it's a Swiss Army Knife.
But with the Galaxy Nexus, Google has put a little soul into the machine.
The Galaxy Nexus is a collaboration between Google and Samsung, and the device runs the purest, most "true" representation of Android 4.0 you can get your hands on.The smartphone, available Thursday for Verizon's 4G LTE network, runs Android 4.0, aka Ice Cream Sandwich, the latest iteration of Google's mobile OS. To date, it's only shipping on this phone – the Galaxy Nexus is a collaboration between Google and Samsung, and the device runs the purest, most "true" representation of Android 4.0 you can get your hands on.
Ice Cream Sandwich brings a collection of subtle touches and flourishes to the OS, all of which add up to an enormous leap forward.
Gestures play a much larger role, and this goes a long way towards humanizing the interface. The settings menus inside of native applications, once only navigable via inscrutable, nested lists, are now neatly tucked off to the sides of the screens. By using your thumb to slide the screen to the side in most native apps, you can bring up (and dismiss) these hidden menus. Pinch-to-zoom is incorporated more intuitively into apps, too. In the calendar, for example, reverse-pinching on a list of the whole day's events zooms in on a specific block of hours. Touch-typing has also been revamped to receive user input more accurately.
The opacity of certain elements like the notifications area has been reduced, making the slider translucent so you can always see what's going on beneath it. The phone's contacts menu is smarter, as it now pulls info from all of your synced social apps. All this leads to fewer taps, swipes and squints.
Even Android's system-wide typeface was reimagined, giving the OS more personality. "Roboto," Android's new official font, permeates all parts of the OS. Google's Android user experience chief Matias Duarte tells Wired the font serves a dual purpose, staying "modern, yet approachable," but with mechanical forms underscored by a "cheerful demeanor."
Though they may seem like insignificant changes, these things are the meat, the true stuff of which "soul" is composed. When a device cooperates with you more fully, you develop a stronger emotional connection with it. You start to smile as you notice all the little details and flourishes.
Don't get me wrong. Android hasn't gone all soft.
Hardware-wise, the Galaxy Nexus is still a beast. Unlike the previous Nexus model, the phone's display measures a sizable 4.65 inches, one of the largest of all smartphones on the market, period.
And it's packing the requisite Android-worthy firepower, complete with 1.2-GHz dual-core processor backed by a gigabyte of RAM.
But strangely enough, it doesn't feel beastly. Almost teardrop-like in profile, the Nexus has a wide bottom that tapers as the eye moves upward, still retaining the slight plastic lip on the lower-back part of the handset. And despite its girth, the phone doesn't possess any large degree of heft, feeling airy in hand while still slim enough to slip into a tight pair of jeans.
Surface hardware is minimal, with the tooling taking a backseat to what Samsung does well: the display. Similar to last year's Nexus S, the plastic bezel wrapped around the Galaxy Nexus' screen is incredibly thin, with nearly every square inch of the phone's face devoted to fine glass construction.
More importantly, the ICS home screen just looks right on the phone's tough Gorilla Glass exterior. The newly revamped interface is replete with cool blues, metallic grays and lots of subtly swishing animated effects. Much of that enchanting vibe would be lost on an inferior display, but the 1280 x 720 Super AMOLED screen delivers all the crisp, clear image quality that makes hardcore mobile enthusiasts flock to Samsung's perfect pixels.
The Galaxy Nexus' facade is entirely button-free – virtual software keys have sprung up in their stead. They're unobtrusive, anchored modestly to the bottom of the screen, yet shiftable to the side if, say, you tilt your phone into landscape mode to take a photo.
And with the new Nexus, you're expected to be shooting a whole hell of a lot of pictures. Image captures are lightning-fast, with very little lag between hitting the button and snapping the frame.
Unfortunately, with the increase in speed comes a loss in quality. Image resolution is pretty crummy, and unless you've got a steady hand, you'll probably need to snap three or four shots to get a truly non-blurry picture. Still, I've missed countless precious moments over the years due to sluggish shutters; I'll take a slightly fuzzy photo over nothing at all any day of the week.
It's obvious that Ice Cream Sandwich is the star of this particular show, so it's smart that the hardware basically gets out the way and doesn't try to impress us with flash and flair. It works very well, and it looks great doing it, leaving the spotlight to fall on ICS.
Under that spotlight, we can see the whole of what Google is aiming for with the new Android. Visually, it's stripped down, subdued and sleek. But beneath the calm surface, there are unmeasurable intricacies, performance tweaks and tiny improvements that aim to inject a little bit of humanity into this robot's brain.
WIRED The best Android phone to date, hands down. Improvements in Ice Cream Sandwich make it much easier to use. Super AMOLED screen is bright and crisp. Cool features like Face Unlock and NFC-powered Beam take phone-based parlor tricks to a new level. Data Usage tool provides granular graphs for us OCD types to obsess over.
TIRED Some apps not fully optimized for ICS, bringing out annoying bugs. Snaps pics way faster than a Polaroid, though image quality is twice as crappy. Awesomely shiny screen makes for less-than-awesome battery life.
See Also:- Samsung Galaxy Nexus Finally Gets a Solid Release Date
Samsung Galaxy Nexus Teardown Reveals Easily Swappable Innards
Samsung Galaxy Nexus: A First Look at Android's Next-Gen Handset
Ice Cream Sandwich: Hands-On With Google's New Android OS
Hacker Ports Android 'Ice Cream Sandwich' to Kindle Fire Tablet
Asus' Quad-Core Tablet to Run Android 4.0, aka Ice Cream Sandwich
Google Unwraps Ice Cream Sandwich, the Next-Generation Android OS
Mike is a Wired.com staff writer covering Google and the mobile beat. He's written on a number of different tech topics, ranging from startups to social media.
TopicsandroidgoogleSamsungsmartphonesVerizon


Calico Publishing is an independent publishing company established by Linda Cassells. We publish non-fiction books, with a focus on health, wellbeing and lifestyle. We also manage the international rights for selected fiction and non-fiction authors. We attend the Frankfurt Book Fair every year, as well as other book fairs around the world.
Calico is proudly a member of PANZ, the Publishers Association of New Zealand.
If you like the idea of growing your own food and cooking with fresh produce, The Grower's Cookbook is the ideal companion.


In the midst of mid-'90s grunge, four childhood friends formed a band that would eventually impact modern rock of the new millennium. Jimmy Eat World formed in 1994 with kindergarten pals Jim Adkins (vocals/guitar) and Zach Lind (drums), Tom Linton (guitar/vocals), and Mitch Porter (bass). The foursome derived the band's moniker from Linton's younger brothers, Ed and Jimmy. The two had a fight one day and Ed resorted to drawing a picture of his cherubic older brother eating the world with "Jimmy Eat World" printed beneath. The band thought it was a perfect fit. Soon, they tinkered around with heavy punk rock sounds, playing small shows around their native Mesa, AZ. Influences ranged from Rocket From the Crypt, early Def Leppard, the Jesus and Mary Chain, Fugazi, and the Velvet Underground, leaving Jimmy Eat World as a work in progress.
Over the course of 1994 and early 1995, Jimmy Eat World issued several EPs and singles on the Tempe, AZ, imprint, Wooden Blue Records. Limited-edition pressings of "One, Two, Three, Four," "Back From the Dead Mother ------," and split EPs with Christie Front Drive, Emery, and Blueprint would later run out of print. During this time, the band gained a following. Capitol Records took notice and signed Jimmy Eat World in mid-1995. Porter soon exited the group; Linton's best mate since seventh grade, bassist Rick Burch, was added to Jimmy Eat World and a dynamic was officially in place. Static Prevails marked their major debut later that year.
In 1998, the band found itself under the emo billing thanks to the intricately hard-edged yet sensitive second album Clarity. It was a basic rock record and not exactly emo; Adkins' songwriting was at its finest. First single "Lucky Denver Mint" was an instant hit among college radio. It scored a spot on the Drew Barrymore love comedy Never Been Kissed in 1999, allowing Jimmy Eat World to be exposed to a larger audience. Their fan base only continued to soar; however, their relationship with Capitol was beginning to sour. They recorded a third LP for the label by 1999, but it was shelved. The decided to leave the label, and Capitol was happy to oblige.
Split releases with Sense Field and Jebediah soon followed.
Jimmy Eat World's powerful rock sound was attracting those overseas; Clarity was popular on the German charts in 2000. That same year, the band funded and self-promoted their first ever tour of Europe. Singles appeared on Big Wheel Recreation later that year. During this jaunt, Jimmy Eat World redesigned their focus in music. DreamWorks opted to take a chance on the band, and Jimmy Eat World went back to work. They hooked up with Clarity's famed producer, Mark Trombino (blink-182, Midtown, Drive Like Jehu), for a follow-up. Bleed American, which would later be retitled as Jimmy Eat World after the horrific events of September 11th, was released in July 2001. "Bleed American" did moderately well, but the second single, the catchy cool "The Middle," landed Jimmy Eat World on the pop/rock map. Spots on MTV's TRL and VH1, and tours with Weezer and Tenacious D proved golden. A year after its release, Jimmy Eat World was still burning up the charts and modern rock radio. A third single entitled "Sweetness" was released in summer 2002, allowing Jimmy Eat World to eventually sell 1.3 million copies in the U.S. By 2003, the band wrapped up two years of touring; however, the Dreamworks record label closed its doors in January 2004. Jimmy Eat World shifted things over to Interscope and joined producer Gil Norton for the recording of their fourth album. Futures was released in October 2004.
Also known as Riverfenix, this Houston-based group consists of singer/guitarists Willie and Damon, bassist Adam, and drummer Donnie. Riverfenix formed in 1995, but due to a shifting lineup didn't play or write much until the following year. 1997 saw the group play on the "Mullets Across America Tour" that also included other pop-punk groups like Home Grown, Cousin Oliver, and the Hippos. This led to a connection with Drive-Thru Records, and that summer the group recorded their self-titled debut album for the label. They also appeared on a Duran Duran tribute album, and their rendition of "Ordinary World" was impressive enough to garner Riverfenix heavy airplay on several modern rock radio stations across the U.S., which in turn led to tours with Less Than Jake, the Suicide Machines, and Blink 182. 1999 saw the group change their name to Fenix TX, earn a spot on Vans' Warped tour, and release their second full-length album.


[JURIST] The Iraqi High Tribunal [official website] heard closing arguments Sunday from defense lawyers in the genocide trial [JURIST news archive; BBC trial timeline] of Ali Hassan al-Majid [JURIST news archive] and other former officials in the Saddam Hussein [JURIST news archive] regime. Al-Majid – Hussein's cousin known in the Western media as "Chemical Ali" – and his co-defendants are being tried for their alleged involvement in the slaughter of tens of thousands of Kurds by using nerve agents and mustard gas during the so-called "Anfal campaign" [HRW backgrounder]. Earlier Sunday co-defendant Sultan Hashim Ahmad al-Tai, a former Hussein defense minister who was an Iraqi Army corps commander at the time of Anfal, testified that he had had no access to chemical weapons and had received no orders to use them, echoing testimony from previous defense witnesses [JURIST report]. Prosecutors have sought the death penalty [JURIST report] for Al-Majid and three other defendants and have asked that charges be dropped against one of the six total defendants due to lack of evidence. Al-Majid became the leading defendant [JURIST report] in the trial following Hussein's execution [JURIST report] last year.
I have filed a submission in order that the Defence is able to obtain its own independent forensic pathologist and toxicologist. The indictments claim that the victims were murdered using chemical weapons. No post mortum or autopsy reports have been furnished to the defence (and Court) proving that anyone died from chemical attacks. It was and remains unconceded that any such deaths occurred without proper admissible evidence. I have requested the court to permit the Defence to exhume victims and to be examined by a forensic pathologist. No response has been forthcoming from the Court.
I have filed a submission to be permitted for the defence to examine documents held by the Iraqi Survey Group and the FBI in its storage facilities in Qatar. No response has been forthcoming from the Court.
I have provided the Court with two documents [DOC text] from many of an exculpatory basis for Saddam Hussein which clearly show that Saddam Hussein ordered no chemical attacks or weapons to be used. He further ordered that villages be 'relocated' not destroyed as the documents show. It was for this reason that there was a rush to execution of Saddam Hussein as I would have introduced these and more documents in my possession to the court.
Finally, we have filed submissions regarding the vagueness of the indictments. How can anyone defend what I term a 'carte blanche indictment'? Iraq was accused of cheating at football but in this case the Iraqi High tribunal with the current form of the indictments have created a 'perpetual moving goalpost' to ensure the Defence is always hindered. I am well aware that in the Anfal case three defendants will be sentenced to death, one to imprisonment and one set free. It has been made crystal clear. Yet despite such all involved regardless of the sever handicaps and unfairness will simply proceed to do our best. Both Dujail and Anfal are being held in grossly unfair and unsafe conditions. It is for these reasons that I am prosecuting Judge Rahman in the UK and will do the same to any Judge in any jurisdiction if unfair conditions are imposed on the defence.


text:
Princess Eugenie caught up in terrifying mugging
Instagram is getting rid of likes
Constance Hall clears the air following split rumours from husband Denim Cooke
Aussie mum claims she was terrorised by a demonic bush creature
GRAPHIC FOOTAGE: Two dead and dozens injured after Indian theme park rise snaps in half
Carrie Bickmore dishes on The Project's worst episode to date
Shock passing of YouTube star
Irina Shayk breaks her silence on split from Bradley Cooper
Matty J reveals very SURPRISING thing he wished he didn't do on the show
Rob Kardashian Says 'Everything Is Exciting' About Blac Chyna's Pregnancy But Wants to Keep It 'Private as Can Be'
Rob Kardashian can't wait to be a father with pregnant fiancée Blac Chyna! - by Karen Mizoguchi
"I mean it's my first time, so everything is exciting, literally," the father-to-be said in a rare on-camera interview with E! News at Tuesday's ChyMoji launch party in Los Angeles.
"I'm happy and I just like to keep it, you know, keep it private... as private as can be," Kardashian, 29, added.
On Friday, Kourtney, Kim and Khloé Kardashian's brother and Chyna announced they were expecting their first child together. "She's pregnant and of course she's happy," her rep told WHO.
"Rob was very close to his dad and lost him at a young age. He's never felt like he had a real father figure," a source previously told WHO. "He's always wanted to give that to his own kids. He's really a loving guy and will give a lot to his children.
Although there has been tensions between the mother-to-be and the KarJenners, Chyna told E! News that "[Kim] gives me a lot of [pregnancy] tips, actually."
A Kardashian insider shared with WHO that Kardashian West is the most supportive family member as of late.
"Kim is probably the one who is least shocked or upset about this. She's telling people that she's excited to be an aunt again," the source explained. "She has the attitude that this is family, you don't always have to agree with family, but you have to be there for them and be loyal to them."


Lake Tuscaloosa #111 – Kingfisher Maps, Inc.
Lake Tuscaloosa. With Topographic and Bathymetric Information. As well as selected On-Water GPS Readings. 24″x36″. One-sided. Waterproof & Tear-Resistant! Lake Tuscaloosa construction was completed in 1970. It is located five miles north of the cities of Tuscaloosa and Northport. Lake Tuscaloosa on 5,885-acre reservoir with 177-miles of shoreline.


We are off to the Green Festival in Leicester this weekend to support the work of Saffron Resource Centre and a variety of activities for large scale carbon reduction for retrofitting and new build development.
An uplifting account of the response to the business rates crisis by the People's Supermarket by Zoe Williams and the level of donations being made to the cooperative. While there are clearly some very interesting aspects to their social business model the real interest is in the top down threat from those risk averse within the local authority and property owners has been well met [at least for now] by the bottom up recognition of an organisation trying to do the right thing. Reference: Williams, Zoe  "Capitalism the cuddly way - and a financial crisis overcome". The Guardian 3rd March p17.
Just a nice extract that begins to introduce the idea of Conway's Game of Life spoken by John Conway himself. Decision making 'agents' or pixels with only a few rules start to behave in a manner that imitates life.
Just a lovely example of a pop-up city idea - art and interactive.


text:
Ohio State of the State
Governor Kasich offers limited policy solutions as his term comes to a close
Governor John Kasich delivered his final State of the State address in an optimistic tone, exclaiming "I believe the state of Ohio is stronger today than it's been in a generation." Available data largely backs up this claim. The recently-released 11th edition of Rich States, Poor States: ALEC-Laffer State Economic Competitiveness Index illustrates Ohio leaping from 45th in economic outlook in 2009 to 21st this year. In the Forbes "Best States for Business" ranking, Ohio now sits at 14, up from 38 in 2010.
This success is largely attributed to reigning in spending, income tax reductions (specifically on small businesses), and regulatory reform. Indeed, the top marginal combined state and local personal income tax rate declined from 8.87 percent in 2008 to 7.5 percent in 2018, while the top marginal corporate income tax rate plunged from 10.5 percent in 2008 to just 3.67 percent in 2018. Property tax and sales tax burdens also fell along with the elimination of the state's death tax during this stretch. Of important note, workers' compensation costs were slashed in half, from 3.32 percent of payroll to just 1.45 percent.
Governor Kasich focused his address on what he believes are his biggest accomplishments over the course of his two terms in office, saying "much of what we have done in the state I like to think is a reflection of [Ohio] virtues and values." Policies like expanding health care, improving the mental health system, stemming the opioid crisis, criminal justice reform, and putting a stop to human trafficking. He touched on job creation and stated Ohio must "have an environment where small businesses can work and where businesses can grow."
The Ohio budget bill signed by Governor Kasich last year resulted in several tax reductions. While not all changes in the bill are commendable, such as targeted tax breaks, overall most Ohio taxpayers should have experienced a small net tax cut beginning in 2018. Governor Kasich initially intended to both consolidate the number of personal income tax brackets and reduce the rates, in exchange for a broader sales tax base; but the state legislature disagreed with this approach. The number of brackets were successfully consolidated from nine to seven, resulting in no state income tax on the first $10,650 of personal income.
Accomplishments aside, Kasich's eight years in office have included a fair share of controversy. He faced backlash for turning away from fiscal conservatism on several occasions, most notably with his unsustainable decision to expand Medicaid. Additionally, the Buckeye State has one of the worst-funded public pension systems in the nation, according to the most recent edition of our ALEC report Unaccountable and Unaffordable. While these liabilities largely existed prior to when Governor Kasich took office, no substantial steps have been taken to address the problem. Ohio has more than $350 billion of total unfunded liabilities, an unfathomable $30,538 per capita. The Buckeye Institute has written several salient pieces this year with suggestions for how the state can be improved, including ridding the budget of pork projects and simplifying the tax code. My colleague, Joel Griffith, wrote about how Ohio must adopt right-to-work or risk being left behind in the Midwest.
Several of Governor Kasich's economic policies have helped, in many ways, improve the state's competitiveness, but backtracking on limited government, free market priorities he touted while running for office will surely complicate his legacy.
Issues: Tax Reform, State Budgets
Tags: kasich, Ohio, Rich States Poor States, State of the States, Tax and Fiscal Policy Task Force, Tax reform
In Depth: Tax Reform
Mainstream economists, small business owners and taxpayers across the country understand that growth-oriented reforms mean increased opportunity for all. As demonstrated by the annual Rich States, Poor States: ALEC-Laffer State Economic Competitiveness Index, sound tax and fiscal policies are critical to economic health, allowing businesses and households to flourish. A…
+ Tax Reform In Depth
Statement of Principles on State Taxation of Digital Advertising and Data Usage
Statement of Principles on Balancing Budgets Over the Business Cycle
Resolution Urging Congress to Protect Consumer Privacy in Banking and Financial Transactions
+ More On Tax Reform


For the woman of classic taste, but practical sensibilities. Soft, flexible, and lightweight, this comfortable handbag will match a multitude of styles and outfits.
This unique design features two entirely separate interior compartments, both with top zipper closures, as well as an elegant "belt and loop" flap-like closure (see photos).
Most embossing options retain smooth leather for the handles, belt, bottom, loop, and sides. However, some options feature embossed or folia leather handles, belt, bottom, loop, and sides.


Annual event presented by Flint Hills Volunteer Center. Fathers dance the afternoon away with their little girl(s) and create a memory to last forever. Fathers, uncles, grandfathers or anyone with a special girl is invited to join in for an afternoon of music, dancing, refreshments, photos and more!


text:
Q: guía sobre programación de un dispositivo ble ibeacon en Android studio Hola eh estado buscando mucho documentación para detectar dispositivos ble desde una pantalla de mi aplicación con Android studio aun así todo lo que eh intentado no ah dado resultados simplemente no encuentra ningún dispositivo, alguien sabe de algún foro o algo que me explique de mejor manera el como hacerlo, solo necesito que cuando la app detecte el beacon reciba una notificación de que esta dentro del área
Este es el dispositivo que quiero detectar

adjunto lo que tengo, pero al momento de scannear los dispositivos bluetooth no encuentra nada solo muestra el toast de no s eecontro ningún beacon
import android.Manifest;
import android.app.AlertDialog;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.os.RemoteException;
import android.provider.Settings;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import org.altbeacon.beacon.Beacon;
import org.altbeacon.beacon.BeaconConsumer;
import org.altbeacon.beacon.BeaconManager;
import org.altbeacon.beacon.BeaconParser;
import org.altbeacon.beacon.Identifier;
import org.altbeacon.beacon.RangeNotifier;
import org.altbeacon.beacon.Region;

import java.util.ArrayList;
import java.util.Collection;

public class TiendasCercanas extends AppCompatActivity implements
View.OnClickListener, BeaconConsumer,
        RangeNotifier {

    protected final String TAG =
TiendasCercanas.this.getClass().getSimpleName();;
    private static final int PERMISSION_REQUEST_COARSE_LOCATION = 1;
    private static final int REQUEST_ENABLE_BLUETOOTH = 1;
    private static final long DEFAULT_SCAN_PERIOD_MS = 6000l;
    private static final String ALL_BEACONS_REGION =
"AllBeaconsRegion";

    // Para interactuar con los beacons desde una actividad
    private BeaconManager mBeaconManager;

    // Representa el criterio de campos con los que buscar beacons
    private Region mRegion;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tiendas_cercanas);

        getStartButton().setOnClickListener(this);
        getStopButton().setOnClickListener(this);

        mBeaconManager =
BeaconManager.getInstanceForApplication(this);

        // Fijar un protocolo beacon, Eddystone en este caso
        mBeaconManager.getBeaconParsers().add(new BeaconParser().
                setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));

    ArrayList<Identifier> identifiers = new ArrayList<>();

    mRegion = new Region(ALL_BEACONS_REGION, identifiers);
}

@Override
public void onClick(View view) {

    if (view.equals(findViewById(R.id.startReadingBeaconsButton))) {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

            // Si los permisos de localización todavía no se han concedido, solicitarlos
            if (this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) !=
                    PackageManager.PERMISSION_GRANTED) {

                askForLocationPermissions();

            } else { // Permisos de localización concedidos

                prepareDetection();
            }

        } else { // Versiones de Android < 6

            prepareDetection();
        }

    } else if (view.equals(findViewById(R.id.stopReadingBeaconsButton))) {

        stopDetectingBeacons();

        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

        // Desactivar bluetooth
        if (mBluetoothAdapter.isEnabled()) {
            mBluetoothAdapter.disable();
        }
    }
}

private void prepareDetection() {

    if (!isLocationEnabled()) {

        askToTurnOnLocation();

    } else { // Localización activada, comprobemos el bluetooth

        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

        if (mBluetoothAdapter == null) {

            showToastMessage("Este dispositivo no soporta bluetooth, no es posible buscar beacons");

        } else if (mBluetoothAdapter.isEnabled()) {

            startDetectingBeacons();

        } else {

            // Pedir al usuario que active el bluetooth
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BLUETOOTH);
        }
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_ENABLE_BLUETOOTH) {

        // Usuario ha activado el bluetooth
        if (resultCode == RESULT_OK) {

            startDetectingBeacons();

        } else if (resultCode == RESULT_CANCELED) { // User refuses to enable bluetooth

            showToastMessage("Con el bluetooth desactivado no es posible buscar beacons");
        }
    }

    super.onActivityResult(requestCode, resultCode, data);
}

private void startDetectingBeacons() {

    // Fijar un periodo de escaneo
    mBeaconManager.setForegroundScanPeriod(DEFAULT_SCAN_PERIOD_MS);

    mBeaconManager.bind(this);

    // Desactivar botón de comenzar
    getStartButton().setEnabled(false);
    getStartButton().setAlpha(.5f);

    // Activar botón de parar
    getStopButton().setEnabled(true);
    getStopButton().setAlpha(1);
}

@Override
public void onBeaconServiceConnect() {

    try {
        // Empezar a buscar los beacons que encajen con el el objeto Región pasado, incluyendo
        // actualizaciones en la distancia estimada
        mBeaconManager.startRangingBeaconsInRegion(mRegion);

        showToastMessage("comenzar busqueda");

    } catch (RemoteException e) {
        Log.d(TAG, "Se ha producido una excepción al empezar a buscar beacons " + e.getMessage());
    }

    mBeaconManager.addRangeNotifier(this);
}

@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {

    if (beacons.size() == 0) {
        showToastMessage("no se encontro ningún beacon");
    }

    for (Beacon beacon : beacons) {
        showToastMessage(getString(R.string.beacon_detected, beacon.getId3()));
    }
}

private void stopDetectingBeacons() {

    try {
        mBeaconManager.stopMonitoringBeaconsInRegion(mRegion);
        showToastMessage("Detener busqueda");
    } catch (RemoteException e) {
        Log.d(TAG, "Se ha producido una excepción al parar de buscar beacons " + e.getMessage());
    }

    mBeaconManager.removeAllRangeNotifiers();

    // Desenlazar servicio de beacons
    mBeaconManager.unbind(this);

    // Activar botón de comenzar
    getStartButton().setEnabled(true);
    getStartButton().setAlpha(1);

    // Desactivar botón de parar
    getStopButton().setEnabled(false);
    getStopButton().setAlpha(.5f);
}

private void askForLocationPermissions() {

    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("se reuieren permisos de ubicacion");
    builder.setMessage("Dar permisos de Ubicacion");
    builder.setPositiveButton(android.R.string.ok, null);
    builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @RequiresApi(api = Build.VERSION_CODES.M)
        public void onDismiss(DialogInterface dialog) {
            requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                    PERMISSION_REQUEST_COARSE_LOCATION);
        }
    });
    builder.show();
}

@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
        case PERMISSION_REQUEST_COARSE_LOCATION: {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                prepareDetection();
            } else {
                final AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("Activar Ubicacion");
                builder.setMessage("Ubicacion no activada, imposible buscar beacons");
                builder.setPositiveButton(android.R.string.ok, null);
                builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialog) {

                    }
                });
                builder.show();
            }
            return;
        }
    }
}

private boolean isLocationEnabled() {

    LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    boolean networkLocationEnabled = false;

    boolean gpsLocationEnabled = false;

    try {
        networkLocationEnabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

        gpsLocationEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);

    } catch (Exception ex) {
        Log.d(TAG, "Excepción al obtener información de localización");
    }

    return networkLocationEnabled || gpsLocationEnabled;
}

private void askToTurnOnLocation() {

    // Notificar al usuario
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setMessage("Ubicacion desactivada");
    dialog.setPositiveButton("Abrir ajustes de ubición", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface paramDialogInterface, int paramInt) {
            // TODO Auto-generated method stub
            Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivity(myIntent);
        }
    });
    dialog.show();
}

private Button getStartButton() {
    return (Button) findViewById(R.id.startReadingBeaconsButton);
}

private Button getStopButton() {
    return (Button) findViewById(R.id.stopReadingBeaconsButton);
}

private void showToastMessage (String message) {
    Toast toast = Toast.makeText(this, message,
Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mBeaconManager.removeAllRangeNotifiers();
        mBeaconManager.unbind(this);
    }
}

y este es mi layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom|center_horizontal"
    android:orientation="vertical"
    tools:context=".TiendasCercanas">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        tools:layout_marginBottom="20dp">

        <Button
            android:id="@+id/startReadingBeaconsButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:background="@android:color/holo_green_light"
            android:enabled="true"
            android:text="@string/start_button_text"
            android:textColor="@android:color/white" />

        <Button
            android:id="@+id/stopReadingBeaconsButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:alpha="0.5"
            android:background="@android:color/holo_red_light"
            android:enabled="false"
            android:text="@string/stop_button_text"
            android:textColor="@android:color/white" />
    </LinearLayout>

</LinearLayout>

redpajama_set_name: RedPajamaStackExchange


text:
module FakeS3
  class S3Object
    include Comparable
    attr_accessor :name,:size,:creation_date,:modified_date,:md5,:io,:content_type,:custom_metadata,:content_encoding

    def hash
      @name.hash
    end

    def eql?(object)
      @name == object.name
    end

    # Sort by the object's name
    def <=>(object)
      @name <=> object.name
    end
  end
end


text:
A site dedicated to David Foster
Fly Away – The songs of David Foster
A special message from David
A few words from David…
LOVE'S THE WAY I FEEL 'BOUT CHA
from YESTERDAY'S DREAMS
written by Alphonso Johnson, Philip Bailey& Pat Walker
Virtuoso musician Alphonso Johnson is one of the modern legends of bass guitar. His eclectic talent, superior technique and fantastic groove is appreciated worldwide by jazz, rock and r&b audiences. During the course of his long and remarkable career, Johnson has played alongside people like Phil Collins, Michael Jackson, Pat Metheny, Pino Daniele, Bob Weir of The Grateful Dead, George Duke, Gov't Mule and Chuck Mangione.
He was also a member of rock legends Santana and seminal jazz/rock masters The Weather Report. In the second half of the seventies, right after his very fortunate stint with The Weather Report, Johnson signed a three record deal with Epic Records.
The first two albums, "Moonshadows" and "Yesterday's Dreams," were solid jazz/funk affairs produced by Skip Drinkwater. Drinkwater was a hot name in the fusion circle and worked with Lee Ritenour, Norman Connors and others. Those two albums included some of the most revered names in jazz/fusion including the aforementioned Ritenour, Patrice Rushen, Narada Michael Walden, Ndugu Chancler, Chuck Findley and Grover Washington, Jr. "Yesterday's Dreams" also features a young David Foster playing organ on the opening track and the lead single, "Love's The Way I Feel 'Bout Cha." That song is an infectious funk jam co-written by Johnson with Philip Bailey of Earth, Wind & Fire fame. Bailey also sings on "Love's The Way I Feel 'Bout Cha" with the fantastic Dianne Reeves. Another great touch on the track was added with Washington 's trademark tenor sax solo, Patrice Rushen on the electric piano, a very young Sheila Escovedo hot on the congas and Foster, as previously mentioned, playing the organ. "Yesterday's Dreams" marked the first appearance on a record by the now famous Sheila E. This album is a good example of the American jazz/funk sounds of the seventies with its influences ranging from EWF's funk to Ritenour's fusion. Although it does not include a memorable composition, "Yesterday's Dreams" was a good vehicle to appreciate Johnson's superior artistry and the fantastic skills of his all-star supporting players.
[audio:https://www.fozfan.com/wp-content/uploads/2014/06/love_s_the_way_i_feel_bout_cha.mp3|titles=Love's The Way I Feel 'Bout Cha|artists=Dianne Reeves & Philip Bailey]
Vocals: Dianne Reeves & Philip Bailey
Bass & Vocals: Alphonso Johnson
Guitar: Lee Ritenour
Electric Piano: Patrice Rushen
Drums: Mike Clark
Congas: Sheila Escovedo
Organ: David Foster
Tenor Saxophone: Grover Washington, Jr.
Synthesizers: Ian Underwood
Produced by Skip Drinkwater
No Lyrics
Tagged 2014, David Foster, Dianne Reeves, Philip Bailey
Previous Previous post: LONELY WON'T LEAVE ME ALONE
Next Next post: SOMEDAY
DAVID FOSTER – ELEVEN WORDS
Archives Select Month January 2021 (1) December 2020 (2) November 2020 (3) October 2020 (2) September 2020 (2) August 2020 (2) July 2020 (2) June 2020 (2) May 2020 (3) April 2020 (2) March 2020 (2) February 2020 (2) January 2020 (2) December 2019 (3) November 2019 (2) October 2019 (2) September 2019 (2) August 2019 (2) July 2019 (2) June 2019 (3) May 2019 (2) April 2019 (2) March 2019 (2) February 2019 (2) January 2019 (2) December 2018 (5) November 2018 (4) October 2018 (4) September 2018 (5) August 2018 (4) July 2018 (5) June 2018 (3) May 2018 (4) April 2018 (5) March 2018 (4) February 2018 (4) January 2018 (4) December 2017 (5) November 2017 (4) October 2017 (5) September 2017 (4) August 2017 (4) July 2017 (5) June 2017 (4) May 2017 (4) April 2017 (5) March 2017 (4) February 2017 (4) January 2017 (5) December 2016 (4) November 2016 (4) October 2016 (5) September 2016 (4) August 2016 (4) July 2016 (5) June 2016 (4) May 2016 (5) April 2016 (4) March 2016 (4) February 2016 (4) January 2016 (5) December 2015 (5) November 2015 (4) October 2015 (4) September 2015 (4) August 2015 (5) July 2015 (4) June 2015 (4) May 2015 (5) April 2015 (4) March 2015 (5) February 2015 (4) January 2015 (4) December 2014 (4) November 2014 (5) October 2014 (4) September 2014 (4) August 2014 (5) July 2014 (4) June 2014 (5) May 2014 (4) April 2014 (4) March 2014 (5) February 2014 (4) January 2014 (4) December 2013 (5) November 2013 (4) October 2013 (4) September 2013 (5) August 2013 (4) July 2013 (4) June 2013 (5) May 2013 (4) April 2013 (4) March 2013 (5) February 2013 (4) January 2013 (4) December 2012 (5) November 2012 (4) October 2012 (4) September 2012 (5) August 2012 (4) July 2012 (5) June 2012 (4) May 2012 (4) April 2012 (5) March 2012 (4) February 2012 (4) January 2012 (5) December 2011 (4) November 2011 (4) October 2011 (5) September 2011 (4) August 2011 (4) July 2011 (5) June 2011 (4) May 2011 (5) April 2011 (4) March 2011 (4) February 2011 (4) January 2011 (5) December 2010 (4) November 2010 (4) October 2010 (5) September 2010 (4) August 2010 (5) July 2010 (4) June 2010 (4) May 2010 (5) April 2010 (4) March 2010 (4) February 2010 (4) January 2010 (5) December 2009 (4) November 2009 (5) October 2009 (4) September 2009 (4) August 2009 (5) July 2009 (4) June 2009 (4) May 2009 (5) April 2009 (4) March 2009 (5) February 2009 (4) January 2009 (4) December 2008 (4) November 2008 (5) October 2008 (4) September 2008 (5) August 2008 (5) July 2008 (4) June 2008 (5) May 2008 (4) April 2008 (4) March 2008 (5) February 2008 (4) January 2008 (4) December 2007 (5) November 2007 (4) October 2007 (4) September 2007 (5) August 2007 (4) July 2007 (5) June 2007 (4) May 2007 (4) April 2007 (5) March 2007 (4) February 2007 (4) January 2007 (4) December 2006 (5) November 2006 (4) October 2006 (5) September 2006 (4) August 2006 (4) July 2006 (5) June 2006 (4) May 2006 (4) April 2006 (5) March 2006 (4) February 2006 (4) January 2006 (5) December 2005 (4) November 2005 (4) October 2005 (5) September 2005 (4) August 2005 (4) July 2005 (5) June 2005 (4) May 2005 (5) April 2005 (4) March 2005 (4) February 2005 (4) January 2005 (5) December 2004 (4) November 2004 (4) October 2004 (5) September 2004 (4) August 2004 (5) July 2004 (4) June 2004 (4) May 2004 (5) April 2004 (5) March 2004 (4) February 2004 (5) January 2004 (4) December 2003 (4) November 2003 (5) October 2003 (4) September 2003 (4) August 2003 (5) July 2003 (4) June 2003 (5) May 2003 (4) April 2003 (4) March 2003 (5) February 2003 (4) January 2003 (4) December 2002 (5) November 2002 (4)
LET YOUR FEELINGS SHOW January 9, 2021
FORGIVE A FOOL IN LOVE December 26, 2020
THE FIRST NOEL December 12, 2020
THE BEST YEARS OF OUR LIVES November 29, 2020
YOU CAN HAVE ME ANYTIME November 15, 2020
Highlights & Rarities
http://www.contanteysonante.com
Spotlight CD
Friend's Banners
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 Al Jarreau Andrea Bocelli Barbra Streisand Bill Champlin Boz Scaggs Celine Dion David Foster Diane Warren Fee Waybill Humberto Gatica Jay Graydon Jeremy Lubbock Jerry Hey Jochem van der Saag Josh Groban Kenny Loggins Lee Ritenour Linda Thompson Maurice White Michael Bublè Michael Thompson Paul Anka Peter Cetera Seal Steve Lukather Tom Keane William Ross
Copyright © 2010 – 2021 SONG OF THE WEEK


text:
Understanding the Deeper Methodologies Driving White Privilege Education.
February 22, 2021 February 22, 2021 by David Risselada
I started writing because of my experience in social work education. During the first semester, my professor flat out stated I was not fit for the profession because I opposed concepts like social justice and white privilege. They taught us America was a nation of systemic racism where white people have privileges that minorities do not have. Therefore, white people benefit from a system of oppression and, failing to question it means we are racist. This is the textbook definition of white privilege and it based on something called critical race theory.
This was alarming to me because I realized they were stoking the flames of discontent and if not stopped, hatred and anger towards white people would only grow. How could it not? Students were being trained to believe that white people had the privilege of living in a society that was designed only for them. A decade later, white privilege education has grown into an uncontrollable monster. People driven by the need to find racism behind every corner are overwhelming our education system.
For instance, in New York City, an elementary school principal has encouraged parents to evaluate the eight identities of whiteness which range from being a full-blown white supremacist on one end to an all-out white abolitionist on the other. The term white abolitionist means denying whiteness altogether to dismantle systematic power and privilege. The eight identities of whiteness allow white people to identify their own racism and where they are in their attempts to eliminate it. Only by working to completely dismantle white hegemony can one expect to overcome their own bigotry.
This is like the Helms racial identity model found in an article entitled Owning Whiteness: The Reinvention of Self and Practice (Blitz, 2008) in the Journal of Emotional Abuse. Under this model, whiteness is broken down into six categories. Contact, disintegration, reintegration, pseudo-independence, immersion/emergence, and autonomy. These phases start with a white person being aware of racial differences but being satisfied with the status quo. The next phase realizes that there are social implications to whiteness that cause feelings of guilt. Reintegration involves adopting the attitude that whites have it better than people of color and, denying any responsibility for their own racism. Next, there are the recovery phases, which include white people becoming dependent on persons of color to help them define their racial identity. White people who recover from whiteness (if you will) emerge with new ideas on morality, and how to approach discussions about how other white people deal with their own racism (Blitz, 2008).
Unfortunately, many Americans remain blissfully unaware of how entrenched concepts like Critical Race Theory are in our education system. Having a degree in social work I have the added benefit of knowing where to find the latest news on white privilege education.
For example, the journal Understanding and Dismantling Privilege published an article entitled Considerations for Using Critical Theory and Critical Context Analysis: A Research Note. (Perez Huber, Gonzalez & Solorzano, 2018) The purpose of the article is to examine the best methods of determining whether there is racial bias in children's books and the theoretical framework in which they should identify this bias. As a student at Liberty University, I took a class where we interpreted various stories through the lens of critical theory. This would entail any perspective that challenges what the left refers to as, the normative power structures. When examining children's books for racial bias through a theoretical perspective like CRT, they are looking for anything that can fit that framework, even if the author did not intend it.
Along with CRT, the journal article above discusses two other theoretical perspectives from which they examine power and privilege. Critical multicultural analysis and critical context analysis. The first examines power relationships, looking for hidden ways in which dominant cultural ideologies are oppressing minorities. For example, if immigrants in a children's book were portrayed as Mexican, Perez Huber, et al (2018), would claim the book is suggesting all Mexicans are immigrants. This is not true, of course, but for examining so-called hidden biases and implementing change, this would be the claim. Critical context analysis focuses on examining sociocultural elements of a story that may identify which characters may or may not have power and whose perspective the story is being told from (Perez Huber et al 2018).
The larger point of Perez Huber et al's article is the merging of these three theories to frame a theoretical approach to implementing CRT in all aspects of education. Critical context and multicultural analysis' are the research methodologies being used to question children's literature and, identify what the left would view as racist or biased. CRT is a way of interpreting it. Because critical race theory is just a theory, there is no truth in any of it. Much of this is based purely on the pre-existing biases of those conducting the studies. They are looking for racism because they are critical race theory scholars who, in the absence of race theories, would have nothing better to do than twiddle their thumbs.
It is one thing to understand that they are teaching our children they are racists for being white. Taking the time to understand the perspectives and methodologies they operate from, to teach such things, is what we need if we are going to do something about it. They use theories like white privilege and critical race theory, along with words like systematic oppression to silence opposition and keep people afraid of speaking up.
The justifications used to prove this racism are laughable and only justified through the left's ridiculous definitions of racism. For example, in the University of Oklahoma's Master of Social Work Program I attended in 2013, we had a textbook that suggested a black woman was depressed because she sold herself out to the white man's economic system and lost touch with her historic roots of oppression. As ridiculous as that sounds, the same concept is highlighted in the journal article I discussed. A critical analysis of the short story The Circuit, which is primarily about the triumphs of an immigrant and his journey to America, still highlights a system of white hegemony because the main character is pursuing the American dream (Perez Huber et al 2018). The implication being that the American culture is superior. According to Perez Huber et al (2018), the story pushes a racist narrative by focusing on the American dream and not the journey of the immigrant and, the struggles he endured as an immigrant.
It is hoped that by writing articles like this I am making readers aware of the deeper methodologies the left is using to push their theories. At the end of chapter one of the book, The Naked Communist, Cleon Skousen said if we could just study and come to understand the problem of Marxism, we may be able to save humanity. Unfortunately, he said this nearly seventy years ago and since that time, the left's agenda has advanced almost unnoticed in terms of how deeply they have infiltrated our educational institutions. We must understand what it is they are doing if we stand any chance of defeating it on an ideological level. My intent is to give readers the opportunity to review these sources for themselves.
Categories Critical race theory, cultural marxism, global elite, political correctness, political corruption, social science, white privilege Post navigation
God's Coming Great Reset, Pt 4
Are Christians Always to Obey the Government?
3 thoughts on "Understanding the Deeper Methodologies Driving White Privilege Education."
Pingback: Understanding the Deeper Methodologies Driving White Privilege Education - The Washington Standard
Pingback: Methodologies of Critical Race Theory Part Two: Normalizing Whiteness Through Mathematics – In Defense of Our Nation
Pingback: Methodologies of Critical Race Theory Part Two: Racist Mathematics - The Washington Standard


As with any historical period I believe that you really will get a much better feel and understanding for these troops if you do some research first.Take some time to look at contemporary paintings and woodcuts of the period to get a feel for the way the clothing was made along with the dyes available at the time.
To begin, I thoroughly recommend you look up the coloured woodcuts from the workshops of Albrecht Altdorfer and Erhard Schon, the level of detail is astounding and it will give you simple starting points such as the colour and decoration of hats and feathers, typical colour combinations and most importantly an appreciation for the dyes and hues of colour available. For example, Yellow tends to be a more earthy ochre, white a lived in canvas and deep reds with brown and orange variations.
Orange 3 - Good to have, I use the shade colour as a final highlight to Scarlet.
Yellow; I begin with a base of Deep Brown Leather C which is washed with a mix of Deep Brown leather A and Bay Brown A. I then re-touch in Deep Brown Leather C then Ochre 4A & 4B as a final highlight. I find this much better than the standard yellow palettes, it's a lot more natural and consistent with contemporary paintings.
Canvas 8 - a good alternative to white and also looks good to represent the inner lining of clothing and also feathers.
Royal Purple 19 - Rarely used but it beats mixing it.
Phlegm Green 28 - as with ochre it's quite a muted green and is not as stark as others.
Black; I use the Granite 31 set with a black wash.
Scarlet 38 - A decent well rounded red. I also use this as part of a flesh wash.
Spearshaft 13 - pike / halberd shafts & katzbalger handles.
Bay Brown 42 - Used in flesh & shading washes.
Deep Brown Leather 45 - Used for leather, also used as a shade wash for Ochre.
Chestnut 53, Drab 12 & Tan 14 - Hair, shoes, coifs, caps, sword scabbards.
Gold 36 - Buckles, armour trim & sword decoration.
Armour 35 - armour plate, chainmail and trim.
Note; These are a starting point as I use a wash over all of the shade colours then build it up from there. This gives the figures a lived-in look and achieves a more earthy tone which I favour. I detail this procedure in the step by step pages.
Perhaps the most important aspect one can gain from a study of contemporary images have is that complex stripes and a riot of slashing and colour are not a feature of every Landsknecht, the opposite tends to be true – the more elaborate a soldier's dress appears the more likely they are to be paid more, as the collection of Erhard Schon woodcuts at the top of this page illustrates in the depiction of a drummer, halberdier, arquebusier, light cavalryman and officer. All of these were usually experienced soldiers and were paid at least double, if you reflect this in your painting these troops will stand out as different – just as they're meant to be.
Most rank and file soldiers are usually depicted in fairly simple combinations of colour, with one colour predominant or a simple two tone variation.
To complement these simple palettes you could then add further detail in a different colour to the hats, ribbons and inner slashing.
You can then start to experiment with stripes on a leg, arm, one side of the body or the entire figure.
Another fun study is to try emulating a woodcut which can be quite fun though it is rare to find a figure sculpted as a facsimile of a woodcut, there's more on this in the Erhard Schon Case Study post.
As these examples show, less really is more ! You can stop there and leave it at that, in fact make sure you do so for a few of your men.
Using this method here's how I painted the figures above; I started painting the fifer with blue as the anchor and then painted the right leg yellow and the left green and red - all of these colours complement each other independently and as a whole.
For the halberdier, again I began with blue as the anchor although to a lesser extent as one arm is striped, the remaining colours all complement each other as above.
Once you've had some experience and gained confidence with your basic palette you could then introduce muted shades of your base colours and apply the same principles as above. So replace white with an off white or light brown, try a blue grey instead of blue or go the other way and opt for a lighter blue.
For red and yellow try tans and ochres. When you're starting just try your new colour on a limb and if you like it you could do a whole outfit. The more variety you try the more 'Landsknecht' your miniatures will look.


With an estimated incidence of 1 in 100 live births, bicuspid aortic valve (BAV) is the most common congenital heart defect. Approximately one third of patients develop serious complications, which may include dilatation of the aorta, stenosis, regurgitation, aortic aneurysms and dissection. Current clinical methods poorly predict which patients will develop complications and thus fail to guide decisions for early intervention. Advanced blood flow imaging methods for assessing abnormal hemodynamics in the aortic root and ascending aorta may permit the development of tools for risk factor stratification.
The aim of this study is to analyze the blood flow patterns in the aortic root by 4-D phase-velocity encoded MRI to determine their value as an indicator for the development of complications in patients with BAV. This early report analyzes the relationship between blood flow patterns in the aortic root and ascending aorta and aortic dilatation in a pilot population of teenage patients with BAV and normal control subjects.
Nine asymptomatic BAV patients (8 male, 1 female, ages 16–18) and 6 control subjects (4 male, 2 female, ages 10–16) underwent a cardiac MRI study on a GE Signa TwinSpeed 1.5 T scanner. Structural breath-held SSFP ciné images included a 4-chamber view, two orthogonal planes through the left ventricular outflow tract, the aortic valve plane, and "candy-cane" view through the aortic arch. Breath-held 3-D velocity-encoded ciné acquisitions were obtained in seven slices at, proximal, and distal to the aortic valve plane. In addition, respiratory-compensated 4-D ciné flow data were obtained through the entire aortic arch region. Figure 1.
Blood flow patterns were analyzed with in-house HeartViz/FlowViz software, using combined 3-D visualization of blood flow and structural images. The aortic root channel axis at systole was calculated from border definitions in two orthogonal views through the aortic root axis. The direction of the systolic flow jet through the valve plane was determined from 4-D velocity data. The angle between these vectors, a quantitative parameter of misdirected valvular flow, was hypothesized to be associated with aortic dilatation. Dilatation, adjusted for body surface area, was calculated as a z-score from linear cross-sectional measurements at the aortic valve annulus (AoV), mid-sinus of Valsalva (SoV), and the sinotubular junction (STJ). Flow jet asymmetry was also evaluated by quadrant analysis methods from through-plane flow.
Correlations between variables were assessed by Pearson test, with Mann-Whitney U test to determine significance.
A significant correlation was found in BAV patients of the systolic flow jet angle with aortic dilatation at the AoV (r2 = 0.833, p = 0.005) and the SoV (r2 = 0.685, p = 0.04) levels. In control patients no significant correlation between aortic sizes and flow jet angle was found. Across both groups combined, we found significant correlations between the systolic flow jet angle and dilatation at all three levels (AoV: r2 = .78, p = 0.001; SoV: r2 = .71, p = 0.003; STJ: r2 = .54, p = 0.04). No significant correlations were observed in BAV patients of flow jet angle with dilatation at the level of the STJ, or of any quadrant asymmetry parameter with dilatation at any level in either group.
We have observed a link between the direction of the systolic flow jet and aortic dilatation in BAV. This is consistent with a possible causal relationship, which will be investigated in continued research on this patient population.
This work was supported in part by NIH grants R01HL077627 and P41RR09784 (Stanford University). The authors thank Drs Marcus Alley and Norbert Pelc for help with 4-D flow imaging software, and Dr Rudolf Beekman of Leiden University for his valuable insights and medical student mentorship.


text:
PRSA Names Mateo CCO
Fri., Mar. 1, 2019
By Steve Barnes
Karen Mateo
PRSA has named Karen Mateo chief communications officer. She will be responsible for developing and implementing the PRSA's overall strategic communication goals, reporting to CEO Joe Truncale.
Mateo was previously a senior vice president at North 6th Agency, where her duties included development of product positioning, executive visibility and thought leadership for agency clients.
Prior to N6A, she was SVP of communications for CBS Radio, with responsibility for all internal and external communications functions for the division's 120+ radio stations and portfolio of digital media properties.
Mateo has also served as director of communications for CBS 2 New York and as a senior press representative for CBS Sports, where she was lead publicist for the network's coverage of college basketball, including the NCAA Men's Basketball Championship, and college football.
Truncale called Mateo a "skilled and insightful communicator who will help PRSA continue to expand and strengthen its position as the leading voice promoting the importance and influence of the PR profession."
Return to Mar. 1, 2019 News