text:
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace Microsoft.Docs.MarkdownLite.Dfm.MarkdownValidators
{
    using System.Collections.Generic;
    using System.Collections.Immutable;
    using System.IO;
    using System.Linq;
    using System.Text.RegularExpressions;

    public class MarkdownValidatorBuilder
    {
        #region Consts
        public const string DefaultValidatorName = "default";
        public const string MarkdownValidatePhaseName = "Markdown style";
        #endregion

        #region Fields
        private readonly List<RuleWithId<MarkdownMetadataValidationRule>> _metadataValidators =
            new List<RuleWithId<MarkdownMetadataValidationRule>>();
        private readonly List<RuleWithId<MarkdownTagValidationRule>> _tagValidators =
            new List<RuleWithId<MarkdownTagValidationRule>>();
        private readonly List<RuleWithId<MarkdownValidationRule>> _validators =
            new List<RuleWithId<MarkdownValidationRule>>();
        private readonly List<MarkdownValidationSetting> _settings =
            new List<MarkdownValidationSetting>();
        private readonly Dictionary<string, MarkdownMetadataValidationRule> _globalMetadataValidators =
            new Dictionary<string, MarkdownMetadataValidationRule>();
        private readonly Dictionary<string, MarkdownValidationRule> _globalValidators =
            new Dictionary<string, MarkdownValidationRule>();
        #endregion

        #region Ctors

        public MarkdownValidatorBuilder(MarkdownValidationContext validation)
        {
            Validation = validation;
        }

        #endregion

        #region Properties
        public MarkdownValidationContext Validation { get; }
        #endregion

        #region Public Methods

        public static MarkdownValidatorBuilder Create(MarkdownValidationContext validation, string baseDir, string templateDir)
        {
            var builder = new MarkdownValidatorBuilder(validation);
            LoadValidatorConfig(baseDir, templateDir, builder);
            return builder;
        }

        public void AddMetadataValidators(string category, Dictionary<string, MarkdownMetadataValidationRule> validators)
        {
            if (validators == null)
            {
                return;
            }
            foreach (var pair in validators)
            {
                if (string.IsNullOrEmpty(pair.Value.ContractName))
                {
                    continue;
                }
                _metadataValidators.Add(new RuleWithId<MarkdownMetadataValidationRule>
                {
                    Category = category,
                    Id = pair.Key,
                    Rule = pair.Value,
                });
            }
        }

        public void AddMetadataValidators(MarkdownMetadataValidationRule[] rules)
        {
            if (rules == null)
            {
                return;
            }
            foreach (var rule in rules)
            {
                if (string.IsNullOrEmpty(rule.ContractName))
                {
                    continue;
                }
                _globalMetadataValidators[rule.ContractName] = rule;
            }
        }

        public void AddTagValidators(string category, Dictionary<string, MarkdownTagValidationRule> validators)
        {
            if (validators == null)
            {
                return;
            }
            foreach (var pair in validators)
            {
                _tagValidators.Add(new RuleWithId<MarkdownTagValidationRule>
                {
                    Category = category,
                    Id = pair.Key,
                    Rule = pair.Value,
                });
            }
        }

        public void AddTagValidators(MarkdownTagValidationRule[] validators)
        {
            if (validators == null)
            {
                return;
            }
            foreach (var item in validators)
            {
                _tagValidators.Add(new RuleWithId<MarkdownTagValidationRule>
                {
                    Category = null,
                    Id = null,
                    Rule = item,
                });
            }
        }

        public void AddValidators(string category, Dictionary<string, MarkdownValidationRule> validators)
        {
            if (validators == null)
            {
                return;
            }
            foreach (var pair in validators)
            {
                if (string.IsNullOrEmpty(pair.Value.ContractName))
                {
                    continue;
                }
                _validators.Add(new RuleWithId<MarkdownValidationRule>
                {
                    Category = category,
                    Id = pair.Key,
                    Rule = pair.Value,
                });
            }
        }

        public void AddValidators(MarkdownValidationRule[] rules)
        {
            if (rules == null)
            {
                return;
            }
            foreach (var rule in rules)
            {
                if (string.IsNullOrEmpty(rule.ContractName))
                {
                    continue;
                }
                _globalValidators[rule.ContractName] = rule;
            }
        }

        public void AddSettings(MarkdownValidationSetting[] settings)
        {
            if (settings == null)
            {
                return;
            }
            foreach (var setting in settings)
            {
                _settings.Add(setting);
            }
        }

        public void EnsureDefaultValidator()
        {
            if (!_globalValidators.ContainsKey(DefaultValidatorName))
            {
                _globalValidators[DefaultValidatorName] = new MarkdownValidationRule
                {
                    ContractName = DefaultValidatorName,
                };
            }
        }

        public IMarkdownTokenRewriter CreateRewriter()
        {
            var context = new MarkdownRewriterContext(Validation, GetEnabledTagRules().ToImmutableList());
            return new MarkdownTokenRewriteWithScope(
                MarkdownTokenRewriterFactory.FromValidators(
                    MarkdownValidatePhaseName,
                    GetEnabledRules().Concat(
                        new[]
                        {
                            MarkdownTokenValidatorFactory.FromLambda<IMarkdownToken>(context.Validate)
                        })),
                MarkdownValidatePhaseName);
        }

        public IEnumerable<IInputMetadataValidator> GetEnabledMetadataRules()
        {
            HashSet<string> enabledContractName = new HashSet<string>();
            foreach (var item in _metadataValidators)
            {
                if (IsDisabledBySetting(item) ?? item.Rule.Disable)
                {
                    enabledContractName.Remove(item.Rule.ContractName);
                }
                else
                {
                    enabledContractName.Add(item.Rule.ContractName);
                }
            }
            foreach (var pair in _globalMetadataValidators)
            {
                if (pair.Value.Disable)
                {
                    enabledContractName.Remove(pair.Value.ContractName);
                }
                else
                {
                    enabledContractName.Add(pair.Value.ContractName);
                }
            }
            return from name in enabledContractName
                   from IInputMetadataValidator mv in Validation?.MetadataValidators
                   select mv;
        }

        #endregion

        #region Private Methods

        private static void LoadValidatorConfig(string baseDir, string templateDir, MarkdownValidatorBuilder builder)
        {
            if (string.IsNullOrEmpty(baseDir))
            {
                return;
            }
            if (templateDir != null)
            {
                var configFolder = Path.Combine(templateDir, MarkdownSytleDefinition.MarkdownStyleDefinitionFolderName);
                if (Directory.Exists(configFolder))
                {
                    LoadValidatorDefinition(configFolder, builder);
                }
            }
            var configFile = Path.Combine(baseDir, MarkdownSytleConfig.MarkdownStyleFileName);
            if (File.Exists(configFile))
            {
                var config = JsonUtility.Deserialize<MarkdownSytleConfig>(configFile);
                builder.AddMetadataValidators(config.MetadataRules);
                builder.AddValidators(config.Rules);
                builder.AddTagValidators(config.TagRules);
                builder.AddSettings(config.Settings);
            }
            builder.EnsureDefaultValidator();
        }

        private static void LoadValidatorDefinition(string mdStyleDefPath, MarkdownValidatorBuilder builder)
        {
            if (Directory.Exists(mdStyleDefPath))
            {
                foreach (var configFile in Directory.GetFiles(mdStyleDefPath, "*" + MarkdownSytleDefinition.MarkdownStyleDefinitionFilePostfix))
                {
                    var fileName = Path.GetFileName(configFile);
                    var category = fileName.Remove(fileName.Length - MarkdownSytleDefinition.MarkdownStyleDefinitionFilePostfix.Length);
                    var config = JsonUtility.Deserialize<MarkdownSytleDefinition>(configFile);
                    builder.AddMetadataValidators(category, config.MetadataRules);
                    builder.AddTagValidators(category, config.TagRules);
                    builder.AddValidators(category, config.Rules);
                }
            }
        }

        private IEnumerable<IMarkdownTokenValidator> GetEnabledRules()
        {
            HashSet<string> enabledContractName = new HashSet<string>();
            foreach (var item in _validators)
            {
                if (IsDisabledBySetting(item) ?? item.Rule.Disable)
                {
                    enabledContractName.Remove(item.Rule.ContractName);
                }
                else
                {
                    enabledContractName.Add(item.Rule.ContractName);
                }
            }
            foreach (var pair in _globalValidators)
            {
                if (pair.Value.Disable)
                {
                    enabledContractName.Remove(pair.Value.ContractName);
                }
                else
                {
                    enabledContractName.Add(pair.Value.ContractName);
                }
            }
            if (Validation == null)
            {
                return Enumerable.Empty<IMarkdownTokenValidator>();
            }
            return from name in enabledContractName
                   from vp in Validation.TokenValidators
                   from v in vp.GetValidators()
                   select v;
        }

        private IEnumerable<MarkdownTagValidationRule> GetEnabledTagRules()
        {
            foreach (var item in _tagValidators)
            {
                if (IsDisabledBySetting(item) ?? item.Rule.Disable)
                {
                    continue;
                }
                yield return item.Rule;
            }
        }

        private bool? IsDisabledBySetting<T>(RuleWithId<T> item)
        {
            bool? categoryDisable = null;
            bool? idDisable = null;
            if (item.Category != null)
            {
                foreach (var setting in _settings)
                {
                    if (setting.Category == item.Category)
                    {
                        if (setting.Id == null)
                        {
                            categoryDisable = setting.Disable;
                        }
                        else if (setting.Id == item.Id)
                        {
                            idDisable = setting.Disable;
                        }
                    }
                }
            }
            return idDisable ?? categoryDisable;
        }

        #endregion

        #region Nested Classes

        private sealed class MarkdownRewriterContext
        {
            private static readonly Regex OpeningTag = new Regex(@"^\<(\w+)((?:""[^""]*""|'[^']*'|[^'"">])*?)\>$", RegexOptions.Compiled);
            private static readonly Regex ClosingTag = new Regex(@"^\</(\w+)((?:""[^""]*""|'[^']*'|[^'"">])*?)\>$", RegexOptions.Compiled);
            private static readonly Regex OpeningTagMatcher = new Regex(@"^\<(\w+)((?:""[^""]*""|'[^']*'|[^'"">])*?)\>", RegexOptions.Compiled);

            public MarkdownRewriterContext(MarkdownValidationContext validation, ImmutableList<MarkdownTagValidationRule> validators)
            {
                Validation = validation;
                Validators = validators;
            }

            public MarkdownValidationContext Validation { get; }

            public ImmutableList<MarkdownTagValidationRule> Validators { get; }

            public void Validate(IMarkdownToken token)
            {
                var text = GetTokenText(token);
                if (string.IsNullOrEmpty(text))
                {
                    return;
                }
                var m = OpeningTag.Match(text);
                bool isOpeningTag = true;
                if (m.Length == 0)
                {
                    m = ClosingTag.Match(text);
                    if (m.Length == 0)
                    {
                        return;
                    }
                    isOpeningTag = false;
                }

                ValidateCore(token, m, isOpeningTag);
            }

            private string GetTokenText(IMarkdownToken token)
            {
                if (token is MarkdownTagInlineToken)
                {
                    return token.SourceInfo.Markdown;
                }
                if (token is MarkdownRawToken &&
                    (token.Rule is MarkdownHtmlBlockRule || token.Rule is MarkdownPreElementInlineRule))
                {
                    return OpeningTagMatcher.Match(token.SourceInfo.Markdown).Value;
                }
                return null;
            }

            private void ValidateCore(IMarkdownToken token, Match m, bool isOpeningTag)
            {
                foreach (var validator in Validators)
                {
                    if (isOpeningTag || !validator.OpeningTagOnly)
                    {
                        var hasTagName = validator.TagNames.Any(tagName => string.Equals(tagName, m.Groups[1].Value, System.StringComparison.OrdinalIgnoreCase));
                        if (hasTagName ^ (validator.Relation == TagRelation.NotIn))
                        {
                            ValidateOne(token, m, validator);
                        }
                    }
                }
                return;
            }

            private void ValidateOne(IMarkdownToken token, Match m, MarkdownTagValidationRule validator)
            {
                if (!string.IsNullOrEmpty(validator.CustomValidatorContractName))
                {
                    if (Validation == null)
                    {
                        Logger.LogWarning($"Unable to validate tag by contract({validator.CustomValidatorContractName}): CompositionHost is null.");
                        return;
                    }
                    var customValidators = GetCustomMarkdownTagValidators(validator);
                    if (customValidators != null && customValidators.Count == 0)
                    {
                        Logger.LogWarning($"Cannot find custom markdown tag validator by contract name: {validator.CustomValidatorContractName}.");
                        return;
                    }
                    if (customValidators.TrueForAll(av => av.Validate(token.SourceInfo.Markdown)))
                    {
                        return;
                    }
                }
                ValidateOneCore(token, m, validator);
            }

            private List<ICustomMarkdownTagValidator> GetCustomMarkdownTagValidators(MarkdownTagValidationRule validator)
            {
                return Validation.TagsValidators?.Cast<ICustomMarkdownTagValidator>().ToList();
            }

            private void ValidateOneCore(IMarkdownToken token, Match m, MarkdownTagValidationRule validator)
            {
                switch (validator.Behavior)
                {
                    case TagValidationBehavior.Warning:
                        Logger.LogWarning(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.SourceInfo.Markdown), line: token.SourceInfo.LineNumber.ToString());
                        return;
                    case TagValidationBehavior.Error:
                        Logger.LogError(string.Format(validator.MessageFormatter, m.Groups[1].Value, token.SourceInfo.Markdown), line: token.SourceInfo.LineNumber.ToString());
                        return;
                    case TagValidationBehavior.None:
                    default:
                        return;
                }
            }
        }

        private sealed class RuleWithId<T>
        {
            public T Rule { get; set; }
            public string Category { get; set; }
            public string Id { get; set; }
        }

        private sealed class MarkdownTokenRewriteWithScope : IMarkdownTokenRewriter, IInitializable
        {
            public IMarkdownTokenRewriter Inner { get; }

            public string Scope { get; }

            public MarkdownTokenRewriteWithScope(IMarkdownTokenRewriter inner, string scope)
            {
                Inner = inner;
                Scope = scope;
            }

            public void Initialize(IMarkdownRewriteEngine rewriteEngine)
            {
                (Inner as IInitializable)?.Initialize(rewriteEngine);
            }

            public IMarkdownToken Rewrite(IMarkdownRewriteEngine engine, IMarkdownToken token)
            {
                return Inner.Rewrite(engine, token);
            }
        }

        #endregion
    }
}

redpajama_set_name: RedPajamaGithub


The Fort Lauderdale slip, trip and fall accident lawyers at MADALON LAW want you to know that the next time you fall and injure yourself, you might want to take a closer look at what caused the fall before assuming it was your own carelessness.
There are building codes in place to provide a safe walking area for anyone on a property. Even though all property owners are required to meet these safety requirements, it is surprising how many don't. This is negligence on their part that can put you or a loved one in a situation that could cause an injury by tripping or falling.
The American Society of Testing Materials (ASTM) has a standard that has been carefully developed for your safety. It covers design and construction guidelines for buildings and their walking areas. Besides walkways and floorings, the ASTM standards also address carpeting, changes in level, headroom, lighting, mats, runners, hardware, exterior walkways, stairs, single steps, speed bumps, wheel stops, warnings and gratings.
Handrails: At home a staircase only needs one handrail, but commercial buildings actually require their full height staircases to have 2 handrails. Commercial building codes also make it a requirement that handrails must be continuous and uninterrupted.
Stairways with dimensional inconsistency: Have you ever seen stairs where one step is shorter or higher than the others? Have you ever climbed to the top of a staircase (also called the "rise") and before you enter the doorway there is still a separate step because the stairs ended before the doorway? These are all considered dimensional inconsistency. This interruption in the flow of design can be the cause of someone tripping down the stairs.
Interior and exterior surfaces are not leveled: Have you ever walked into a business and you had to step up to go into the doorway because the entrance was not leveled with the exterior of the business? This is a common building code violation and tripping hazard that many see.
Obstruction within the entranceway: The entranceway must be clear for people who enter. If there is an obstruction in the entrance of a business, then that is a code violation and hazard.
Uneven base of ramp: the base (or bottom) of a ramp is supposed to smoothly meet the ground level. If it doesn't, then it creates a "trip step" which someone can easily trip over.
Stairways with no landing: When you get to the top of the stairs, there needs to be a landing (the flat area you can stand on). If the stairs meet exactly at the door so that you are still standing on a step until you walk in the door, then that is a violation.
Building code violations are enforced because it has been proven time and again that a violation can cause an accident. The Fort Lauderdale slip, trip and fall attorneys at MADALON LAW know what to look for in these types of cases to establish the other party's negligence and seek the financial compensation you deserve. Contact our office so you can tell us what happened and we can answer your questions with a free consultation.


Items where Author is "Maliti, Deodatus Vincent"
Maliti, Deodatus Vincent (2015) Ecological and genetic determinants of malaria vectors feeding and resting behaviours. PhD thesis, University of Glasgow.
This list was generated on Wed Apr 24 01:56:44 2019 BST.


text:
Roundwood Press
Book Review: Wave – A Memoir of Life After the Tsunami
On the 26th of December, 2004, Sonali Deraniyagala's friend named Orlantha stood in the doorway of a hotel room in the Yala National Park on the southeastern coast of Sri Lanka. She praised Sonali's two children and her marriage and said, "What you guys have is a dream."
She then looked out the window and saw a tsunami wave flushing toward the hotel.
Minutes later Sonali's 'dream life' vanished when her husband, children, parents and friend Orlantha were all killed by the tidal wave that ripped thousands of lives apart in Sri Lanka.
Calm before disaster
Wave is a quick, unsentimental read. Sonali first recalls strange memories of being swept up in water. Her mind recalls unexpected imagery while this nightmare unfolded, while she was temporarily trapped in a car, then swept away. At one point she looked up to the sky. "Painted storks, I thought. A flight of painted storks across a Yala sky…"
After finding out that her family has been killed, she stays with other family members who live in Sri Lanka. At first, she is resigned to end her own life. She writes, "The next morning my aunt called doctor. A bit pointless, I thought, I will kill myself soon." And, "I kept Googling ways of killing myself. I needed to know how to do it successfully, I couldn't mess it up." The result of her mindset was that "An army of family and friends guarded me night and day."
The story describes time in Sri Lanka, and then Sonali's return to her London home years later. It was there where she had lived with her children, as well as the husband she had met while studying at Cambridge. For years, Sonali oscillates between depression, denial, and drug abuse.
"This could not have happened to me. This is not me. I teetered endlessly. Look at me, powerless, a plastic bag in a gale." And, "After my evening of drinking I'd pop two pills, then another two, another four, four more, and two more again, in quick succession. Then a mug of gin."
She blames herself for the death of their family, though there is no reason to do so.
"How I have fallen. When I had them, they were my pride, and now that I've lost them, I am full of shame. I was doomed all along, I am marked, there must be something very wrong with me. These were my constant thoughts in those early months."
Tranquil, and powerful
The years pass and her ability to handle the loss increases. There are also glimmers of the inexplicable and the synchronous that she, a professor of economics, does not question. One event regarded the sister of her deceased husband.
"Steve's sister Beverly sat on my bead wiping her tears. On the morning of the twenty-sixth of December, she had woken up in London, weeping. At the time she hadn't been able to imagine a reason for this….before someone phoned her with news of a tidal wave in Sri Lanka, she had been crying."
Another occurs when she visits the site of the demolished hotel in Sri Lanka with her deceased husband's parents. They wander around the wreckage.
"When I came back to my father-in-law, he was holding a sheet of paper, peering at it. He showed it to me. He told me he'd stood in that wind and spoke a few words into the air, to Steve and the boys. That's when something fluttered by his foot…..just a scrap of paper…It was the back cover of a research report written by Steve…"
With time, her ability to cope increases – not by blocking out the past years with her family, but by embracing them.
"I can recover myself better when I dare let in their light."
As she re-establishes her life and works not only in London but also in New York, Sonali faces a recurring problem when people she meets ask if she is married or has children, or where her parents live. Mostly, she shrugs off these questions and ignores them. This book, however, is her answer. It is Sonali's way of admitting that the past with her family was not a dream, but a beautiful reality, where she learned – as any of us may – how all we cherish can be lost within minutes.
Wave – A Memoir of Life After the Tsunami
by Sonali Deraniyagala
Published by Virago Press, a division of Little, Brown Book Group, London.
Subscribe To Roundwood Press
If you receive this newsletter and are not signed up, your address can be lost whenever we modify this site. Sign up to guarantee that you will continue receiving these posts...
Also - everyone who signs up receives 2 free ebooks!
Share the story:
© 2021 Roundwood Press | Visit my other sites: Vinoexpressions.com & Riversofchange.com

redpajama_set_name: RedPajamaCommonCrawl


text:
There were two Danish attacks on Norman England.  The first was an invasion in 1069–1070 conducted in alliance with various English rebels which succeeded in taking first York and then Ely before the Danes finally accepted a bribe to leave the country.  The second was a large-scale raid in 1075, intended to support the Revolt of the Earls, in which the Lincolnshire coast and York were both ravaged.  A third attack was planned in 1085, and a large invasion fleet comprising Danish, Flemish and Norwegian vessels was gathered, but it never sailed.  All three attacks were motivated by a claim on the English throne asserted originally by Cnut the Great's nephew Sweyn II, king of Denmark (), and maintained by later Danish kings until as late as the 13th century, but neither of the two realised attacks succeeded in making Sweyn's claim good, or indeed gained anything for the Danes apart from a certain amount of plunder.

Background

Sweyn Estridson was the nephew of Cnut the Great, king over an empire that included England, Denmark and Norway, and the first cousin of Harthacnut, king of England and Denmark.  On Harthacnut's death Edward the Confessor became king of England, but when Sweyn visited Edward shortly thereafter he was, according to his own rather implausible claim reported by the later writer Adam of Bremen, given a promise that he would succeed to the English throne after Edward's death.  For many years he was distracted from English concerns by a series of wars in Denmark, where he disputed the throne with first Magnus the Good and then Harald Hardrada; he could not rule his Danish kingdom in peace until 1064.  So far as is known there were no supporters for his claim to the English crown when Edward the Confessor died childless in January 1066, and he may not have taken any steps to intervene during the resulting succession crisis.  A 13th-century source, Heimskringla, reports that Tostig, estranged and exiled brother of the new English king Harold Godwinson, sought military help from Sweyn, but without success.  A diplomatic mission sent by William, Duke of Normandy to Denmark seems to have secured a promise of neutrality in any Norman attempt on the English throne, though a contemporary writer, William of Poitiers, claimed, correctly or not, that Sweyn then sent troops to support Harold at the Battle of Hastings.  In 1067, after William's coronation but before he had gained effective control of the whole country, English leaders appealed to Sweyn to intervene, and though he made no move he was certainly considered a dangerous threat by the Norman regime.

Invasion of 1069–1070

In January 1069 rebellion broke out in Northumbria when its newly-appointed earl, Robert de Comines, and a party of several hundred of his followers, were ambushed and killed.  Another appeal for help was sent out to Sweyn by the Northumbrians, while William dispatched Æthelsige, abbot of St Augustine's, Canterbury, to Denmark to dissuade Sweyn from stepping in.  English exiles at the Scottish court returned to England to join the rebels, but William quickly took his forces north and defeated them at York before returning to the south of England.

In August 1069 Sweyn finally launched an invasion fleet whose strength was variously estimated at 240 or 300 ships.  The army it carried had been recruited not just in Denmark but reportedly in Norway, Frisia, Saxony, Poland and even Lithuania, and was commanded not by Sweyn himself but by his sons Harald and Cnut and his brother Asbjørn.  Following the coast of the North Sea the fleet reached the coast of Kent and attempted to land first at Dover and then at Sandwich, but was repulsed at both places.  A landing was effected at Ipswich, but local forces drove the Danish army back to their ships, nor did they succeed any better at Norwich.  The Danes finally made for the Humber and, effecting a successful landing there, were joined by various English leaders, including Waltheof, Gospatric and Edgar Ætheling, a claimant to the throne.  The Anglo-Saxon Chronicle says that these nobles were accompanied by "all the people of the country", which suggests a general uprising in Yorkshire, and that the combined force advanced on York "riding and marching in high spirits".  They defeated in open battle the Norman garrison of York's two castles and took the city.  William was in the Forest of Dean when he learned of the Danish fleet's landing, but he marched north.  On learning of this the Danes abandoned the city, either to retreat to their ships or to establish a line of defence along the Humber, Aire and Ouse.  William's army cleared Lindsey of a portion of the Danish army, forced a crossing of the River Aire and by Christmas had reoccupied York.  After Christmas he proceeded to lay the northern counties waste in a brutal campaign known as the Harrying of the North, while the Danes came to an agreement with him that in return for a large payment and permission to feed themselves by ravaging the eastern coast they would leave in the following spring.

In the spring of 1070 Sweyn Estridson himself joined the fleet, sailed it to the Wash, and from there marched his army to the Isle of Ely.  The Anglo-Saxon Chronicle says that "Englishmen from all the fenlands came to meet them, thinking that they were sure to conquer the whole land"; among these was Hereward, a thegn from Lincolnshire, who proceeded to lead a band of men in sacking Peterborough Abbey.  In the summer Sweyn and William came to an agreement, the terms of which are not known but which doubtless included another payment, following which Sweyn returned to Denmark.

It is believed that some time thereafter he was visited by his cousins Godwin and Edmund, the two eldest sons of Harold Godwinson, who were probably there to canvass for his active support in their attempts to reinstate the House of Godwin on the throne.  They were disappointed in any such hopes, Sweyn's recent experiences not disposing him to launch another invasion on someone else's behalf.

Raid of 1075

In 1075 Ralph de Gael, Earl of East Anglia, Roger de Breteuil, 2nd Earl of Hereford, and Waltheof, pardoned veteran of the 1069 rebellion and now Earl of Northumbria, conspired together at the marriage-feast of Ralph de Gael and Roger de Breteuil's sister Emma to raise a rebellion against the king.  Each returned to his own earldom, and messengers were sent to Denmark asking for help.  Hostilities broke out while William was in Normandy, but his representative Lanfranc, Archbishop of Canterbury, together with those earls who remained loyal, were able to smother the rebellion without much difficulty.  A Danish fleet of 200 ships under the command of Sweyn's son Cnut and a certain Earl Hakon sailed to Norfolk, but arrived to find they were too late to help the earls.  The fleet then turned north, pillaging the lands on the Lincolnshire coast and sacking York, before turning south again and making for Flanders, their leaders doubtless realising that their force was too small to achieve anything more without English help.

Invasion plans of 1085–1086

Sweyn's son Cnut, a leader in both the 1069 and 1075 attacks and now king of Denmark as Cnut IV, had by the beginning of 1085 brought about an alliance with both Robert I, Count of Flanders and Olaf III, king of Norway, the intention being to collaborate in an invasion of England.  According to the chronicler William of Malmesbury the combined invasion fleet, stationed in Limfjord, consisted of 1000 ships from Denmark, 600 from Flanders, and 60 from Norway, dwarfing both the 1069 and 1075 fleets; on the other side, William had no serious navy to oppose it, and could not have prevented it from landing.  Instead, he brought over large numbers of mercenaries from Brittany, Maine and the crown lands of France, quartering them not just in the eastern coastal counties but apparently as far inland as Worcester.  The Anglo-Saxon Chronicle claims that "the king gave orders for the coastal districts to be laid waste, so that if his enemies landed they would find nothing which could be quickly seized", but little evidence for this can be found in Domesday Book, and the damage may have been fairly minor.  One 12th-century writer, Ælnoth of Canterbury, claimed that William's wide-ranging precautions extended even to ordering that Englishmen dress, shave and arm themselves in a French manner, "in order to delude the eyes of the invaders".  However, on the other side of the North Sea Cnut's attention was increasingly turning to other problems, such as dealing with his rebellious brother Olaf and with aggression from the Holy Roman Empire.  By the spring of 1086 William must have decided that the danger was past, since he stood his army down.  In July 1086 Cnut was killed by rebels in Odense Cathedral, thereby decisively ending the threat of a Danish invasion, probably the last such threat England was ever to face.  Arguably, this crisis had important results in motivating William to strengthen his ties with his more prominent subjects by exacting from them an oath of allegiance at Old Sarum, and to better understand his resources by initiating the Domesday Survey, though the causal link is not accepted by all historians.

Later history of the Danish claim

The claim to the English throne was not renounced, and was revived occasionally through the 12th century.  A Flemish continuator of Sigebert of Gembloux's Chronicon sive Chronographia even claims that king Eric III asserted it by launching an attack on England's borders in 1138, before being defeated by King Stephen.  No English historical source mentions any such attack, nor does any Danish one, and the continuator's statement has consequently been ignored by most modern historians.  E. A. Freeman in his History of the Norman Conquest and A. L. Poole in From Domesday Book to Magna Carta treated it as a confused reference to the Scottish army with which David I invaded England in that year, or to Danish soldiers attached to that army, and Peter Sawyer simply denied the existence of any such Danish attack.  The historian Thomas Heebøll-Holm has however advanced arguments for its reality.

In the 1170s Richard FitzNeal, in Dialogus de Scaccario, mentioned the continuing existence of the Danish claim, and in 1193 the French king, Philip II, married a Danish princess with, according to William of Newburgh, the intention of inheriting her rights in the English throne.  Nevertheless, the Danes had as late as 1206 still not abandoned their hopes of reclaiming England, if Lambert of Ardres is to be believed.  In 1240 Matthew Paris wrote in his Chronica Majora that "rumours abounded in England that the Danes were preparing to invade the kingdom".  These fears were probably groundless.  There is no other evidence that Valdemar II, the then reigning king of Denmark, had an actual invasion fleet, and the English rumour was doubtless founded on English nervousness over Henry III's weakness in the face of foreign threats rather than on any concrete Danish plan.

Footnotes

References

1069 in England
1070 in England
1075 in England
11th century in Denmark
Battles involving Denmark
Battles involving England
Battles involving the Anglo-Saxons
Battles involving the Normans
Conflicts in 1069
Conflicts in 1070
Conflicts in 1075
Invasions by Denmark
Invasions of England
Norman conquest of England
Rival successions
William the Conqueror

redpajama_set_name: RedPajamaWikipedia


text:
Q: Form Subscriber on radio button receive wierd value I have a form with a field that should appear only if a previous radio button is checked as "Oui".
To do this, I use a Form Subscriber attached to the radio field.
The Form Type :
class RegistrationStep3UserDataType extends AbstractType
{
    /**
     * @var EntityManagerInterface
     */
    private $em;

    /**
     * RegistrationUserDataType constructor.
     * @param EntityManagerInterface $em
     */
    public function __construct(EntityManagerInterface $em)
    {
        $this->em = $em;
    }

    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $transformer = new ActivityNameTransformer($this->em);

        $builder
            ->add('activitiesNumber', 'choice', [
                'label' => 'Souhaitez-vous exercer une seconde activité ?',
                'expanded' => false,
                'choices' => array(
                    2 => 'Oui',
                    1 => 'Non',
                ),
                'label_attr' => [
                    'class' => 'radio-inline'
                ],
            ])
        ;

        $builder->get("activitiesNumber")->addEventSubscriber(new AddSecondaryActivityFieldsSubscriber());
    }
}

The Subscriber :
class AddSecondaryActivityFieldsSubscriber  implements EventSubscriberInterface
{
    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return array(
            FormEvents::POST_SET_DATA => 'postSetData',
            FormEvents::POST_SUBMIT => 'postSubmit',
        );
    }

    /**
     * @param FormEvent $event
     */
    public function postSetData(FormEvent $event)
    {
        $activitiesNumber = $event->getData();
        $form = $event->getForm()->getParent();

        if (2 == $activitiesNumber) {
            $this->addSecondaryActivityField($form);
        }
    }

    /**
     * @param FormEvent $event
     */
    public function postSubmit(FormEvent $event)
    {
        $activitiesNumber = $event->getData();
        $form = $event->getForm()->getParent();

        echo '<pre>';
        \Doctrine\Common\Util\Debug::dump($activitiesNumber);
        echo '</pre>';

        if (2 == $activitiesNumber) {
            $this->addSecondaryActivityField($form);
        }
    }

    /**
     * @param FormInterface $form
     */
    public function addSecondaryActivityField(FormInterface $form)
    {
        $form
            ->add('secondaryActivity', 'text', [
                'label' => 'Activité secondaire souhaitée',
                'attr' => [
                    'required' => true,
                ],
            ]);
    }
}

In the postSubmit method, I dump the $activitiesNumber and instead of receiving a integer value (1 or 2), I receive the following array :
array(2) {
  [0]=>
  bool(true)
  [1]=>
  bool(false)
}

This is just a de-indexed array of the radios, and I have no way to know which one was checked..
But if I change my activitiesNumber field to a select box ("expanded" => false), I receive an integer value (the value of the selected option).
I could fix the problem by using a select instead of radio button, but I really need radio button on this feature. Any one knows about this bug ? How can I solve it, or make this works ?

redpajama_set_name: RedPajamaStackExchange


text:
NBA Daily: Serge Ibaka's Efforts Shouldn't Go Unnoticed
NBA Daily: Veterans Influencing Spurs Youngsters
Spencer Davies breaks down a career year for Serge Ibaka his impact on the Toronto Raptors as a rim protector and an improved offensive presence.
Spencer Davies
The Toronto Raptors continue to tussle with the Milwaukee Bucks for the top seed in the Eastern Conference.
While they fell to the Cleveland Cavaliers at Quicken Loans Arena on Monday, we have to remember the game was on the second night of a back-to-back and the third and final stint of a road trip.
Consider that, less than 24 hours beforehand, the Raptors had beaten the New Orleans Pelicans and Miami Heat handily by double digits, including a 21-for-40 three-point barrage in South Beach.
Under first-year head coach Nick Nurse, the talented combination of Kawhi Leonard, Kyle Lowry, Pascal Siakam, Danny Green and Marc Gasol—plus an energetic, lethal bench awaiting the return of Fred Van Vleet—looks to be poised for big things come playoff time.
With so much positive energy around Toronto's organization, some have tended to overlook the man in the middle who's been having as consistent of a season as any player on the roster—Serge Ibaka.
In his first full year with the Raptors, Ibaka looks extremely comfortable at the center position on both ends of the floor, and his production has been reminiscent of his dominant Oklahoma City Thunder days.
Notorious for his emphatic rejections and physical style on the defensive end, Ibaka has become a true leader for Toronto.
"He understands the coverages and the game plan," Nurse said during pre-game in Cleveland. "He's talking to guys out there and letting 'em know what's coming and he's really good at communicating, those type of things. So he's kind of an anchor back there."
In the last four games combined, Ibaka has blocked 14 shots. He probably would've had a couple more if the scuffle between him and Marquese Chriss didn't happen, too. Nurse acknowledged that since the Raptors acquired Gasol that he's picked the rim protection back up.
On the year as a whole, Ibaka is averaging 1.4 blocks per game. However, his presence in the restricted area is more telling of the 29-year-old's skill.
Among players seeing at least five tries within five feet per game, Ibaka is fourth in the league in defending those attempts at 54.2 percent. Putting this in perspective, he's ranked above the likes of Rudy Gobert, Joel Embiid, Karl-Anthony Towns, and Anthony Davis in that category.
Yes, all of those players might be seeing more action under the rim, but that's natural since the star players' minutes exceed Ibaka's by quite a bit. You could also surmise that those penetrating opponents are getting rid of the ball when the 6-foot-10 big man comes over to alter or deter those shots.
What really stands out about Ibaka's season, though, is the job he's done as a scorer. He's obviously not getting the volume of work that Leonard and Lowry do, yet he is putting up the best offensive numbers of his career in five years—averaging a shade over 15 points and 8 rebounds per contest.
Per Cleaning The Glass, the Raptors' offensive rating is 116.8 with Ibaka on the floor. When he's not playing, they're losing 8.1 points per 100 possessions.
Other than having an uncharacteristically down year from deep, Ibaka is thriving in Nurse's scheme. Taking a gander at his shot chart, there's a mixture of areas where he's had success.
For example, Ibaka is one of five centers in the NBA that has attempted three or more shots each in the restricted area, in the paint and from mid-range. He's the leader in field goal percentage across the board in all three categories.
In pick-and-roll plays as the roll man, Ibaka is the top dog with a 56.1 percent success rate and the highest score rate in the league. He is just barely behind Al Horford at 1.12 points per possession in such situations, too.
Credit his chemistry with Lowry for the majority of these scenarios, and a rapport will likely develop quickly with Jeremy Lin when Ibaka is playing with the second unit.
Before you ask why Nurse is putting Ibaka with the bench bunch, it's an easy answer—lineups depend on matchups. When there is a more traditional center out there, Gasol is going to get the nod. If the opposition has a guy who is more versatile to stretch the floor, Ibaka would likely be in the starting five.
In the future, we might even see the two play alongside one another with Gasol at the five and Ibaka shifted over at power forward. Nurse is curious to see the strengths and weaknesses of that pairing since they've only played a total of 10 minutes since the trade.
"We haven't had them together very often," Nurse said. "It's another one of those combinations that we'd probably like to look at a little bit more just for the heck of it. You never know when we may need to have both of them out there in the future, so they probably need a little time together."
Whether it's playing with the first five, backing up Gasol or joining forces with him, Ibaka's efforts will certainly not go unnoticed. He's made his mark for this Toronto group, and they wouldn't be in the position they're in without him.
Once Ibaka returns from his three-game suspension, he'll be as hungry as he's ever been to push the Raptors to the conference apex.
This has only been an appetizer.
Ibaka is salivating for the full-course meal.
Related Topics:Main PageToronto Raptors
NBA Daily: Are Brighter Times Finally Ahead For The Suns?
Spencer Davies is an Senior NBA Writer based in Cleveland in his third year with Basketball Insiders. Covering the league and the Cavaliers for the past four seasons, his bylines have appeared on Bleacher Report, FOX Sports and HoopsHype.
Sources: Patrick McCaw to Re-Sign with Raptors
David Yapkowitz continues Basketball Insiders' "Grading The Offseason" series by taking a look at the Chicago Bulls.
David Yapkowitz
With summer league over and the big name free agents all signed, we're now approaching the doldrums of the NBA offseason. Most big moves have all been made, and we shouldn't expect to too much movement between now and the start of training camp.
Most teams probably have an idea already of what the bulk of their roster will look like come training camp, and as such, we're starting a new series here at Basketball Insiders taking a look at each team's offseason to this point.
Next up in our series is the Chicago Bulls.
The Bulls are a team clearly in rebuilding mode. After this offseason, they've done a pretty solid job at filling out the roster with young talent at every position. It's obvious now that they were clear winners of their trade with the Minnesota Timberwolves two years ago that netted them Zach LaVine, Lauri Markkanen and Kris Dunn.
LaVine continued his ascent to stardom this past season. There may have been initial concerns when he was traded to Chicago as to how he would respond after his torn ACL, but since then, he's showed no lingering limitations. He's well on his way to becoming one of the elite shooting guards in the league. Few can match his scoring prowess whether he's slashing to the rim or shooting 37.4 percent from the three-point line.
Markkanen has emerged as one of the top young big men in the NBA. He made some strong steps forward in his second year in the league. He's moving closer to becoming a double-double threat every night. He's exceeded projections from when he was drafted that pegged him as little more than a three-point shooting big. He has shown a lot more versatility to his game.
One major addition the Bulls made last season was the trade deadline acquisition of Otto Porter Jr. When he arrived in Chicago, he quickly played some of the best basketball of his career, fitting in seamlessly with the team and solidifying himself as part of their future core.
They've also got Wendell Carter Jr. in the fold. Their top draft pick last offseason, Carter quickly established himself a great defensive complement to Markkanen. An injury cut his rookie season shorter than expected, but he still showed flashes of being a capable around the rim scorer.
They do have some other decent rotation guys in Antonio Blakeney, Chandler Hutchinson and Ryan Arcidiacono. Blakeney is an instant offense scoring guard for the second unit, and Hutchinson was showing flashes of his talent before he too went down with an injury during his rookie season. Arcidiacono was re-signed by the Bulls after being one of their most consistent outside shooters last season.
The Bulls came into draft night with the seventh overall pick. It might have seemed like a disappointment seeing as how the Bulls probably had a shot at a top three pick considering their record. But ultimately, Chicago might have gotten what it wanted in the end. Point guard has been an area of need for the Bulls for quite some time, and they used their pick on North Carolina's Coby White.
White is a little more in the mold of a scoring guard, but if you could take away one thing from his performance in summer league, it's that he can thrive as a playmaker as well. It's unlikely that White will get to start right away, but he's got the makings of developing into the Bulls eventual starter at the point.
Chicago also picked up Daniel Gafford in the second round. The Bulls needed frontcourt depth after losing Robin Lopez in free agency, and they may very well have found their answer with Gafford. Summer League isn't always a great indicator of how a player will translate to the NBA, but Gafford was solid as a finisher around the rim and a shot blocker in the paint. He may end up becoming one of the steals of the draft.
In free agency, the Bulls made some rather solid moves. On a team full of young players, it's necessary to have a couple of key veterans for the young guys to lean on and to provide leadership and stability in the locker room. Thaddeus Young certainly fits that bill. Entering his 13th year in the league, Young played in 81 games last season and was a key guy on a Pacers team that made the playoffs. He'll provide the Bulls with consistency on and off the court.
They also made a big step to addressing their point guard woes. They acquired Tomas Satoransky in a sign and trade with the Washington Wizards. He'll provide a perfect stop-gap as the starting point guard while White develops. He proved himself as a facilitator with the Wizards, and he's one of the better three-point shooters in the league, He's a versatile guy who can play and defend multiple positions.
The Bulls also picked up Luke Kornet who spent last season with the New York Knicks. Kornet is relatively young and gives the Bulls a solid stretch big man on a decent contract. He's also a solid shot blocker and should compete with Gafford for minutes off the bench.
Chicago also picked up an intriguing prospect in Adam Mokoka. The French combo guard initially declared for the draft a year ago but ultimately withdrew. He re-entered the draft this summer but went undrafted. In summer league, he showed flashes of playing both wing positions and being a capable defender who can shoot from three. He'll be on a two-way contract so he'll see significant time with the Windy City Bulls, Chicago's G League affiliate.
PLAYERS IN: Adam Mokoka (two-way), Coby White, Daniel Gafford, Luke Kornet, Thaddeus Young, Tomas Satoransky
PLAYERS OUT: Brandon Sampson, Rawle Alkins, Robin Lopez, Shaquille Harrison, Timothe Luwawu-Cabarrot, Walt Lemon Jr., Wayne Selden
The Bulls roster currently stands at 15 guaranteed contracts and one two-way contract. They're likely done with any roster additions unless they find someone to take that second two-way contract slot. They'd most likely move Cristiano Felicio if they could find a taker for his contract, but it's probably unlikely.
With the additions of Satoransky and White, that likely spells the end of the Kris Dunn experiment in Chicago. If Dunn remains on the roster through the season, and the Bulls aren't able to move him, it's highly unlikely Chicago tenders him a qualifying offer. In all likelihood, this is his final season in the Windy City.
The Bulls have done a decent job at filling the roster out with good, young talent. Making the playoffs, even in the Eastern Conference, is still likely a few seasons away. But there is reason for optimism for the Bulls future.
OFFSEASON GRADE: B


text:
Father's Day has been particularly difficult this year.
As many of Buster's faithful readers already know, our beloved and outspoken blogger ended his fight with brain cancer last month, after two years of fighting tooth and nail. He handled his illness with grace and strength, and never once lost his trademark sense of humor, even when faced with a rapid decline in health.
He is so sorely missed. Knowing the impact he had on so many he knew is a comfort, however. In the wake of such sadness for my family and myself, all the lovely messages, cards, and gifts we have received have illustrated just how great a man Buster was.
Reading countless posts on social media today about all my friends' fathers has been tough, but at the same time very heartwarming. I want everyone reading to cherish their fathers today, living or not. If your father is still with us, let him know how much you care about him and love him. Life is fleeting, and oftentimes our families are the closest people we have in our lives. Please, never take your parents for granted. Reconciling with the fact that my parents are not invincible has been the toughest part of this whole two-year-plus journey.
My father was perhaps the most politically principled man I knew, and also one of the most knowledgeable. His viewpoints are not at all dissimilar to my own. After all, the apple doesn't fall far from the tree. 😉
This is not the end of Buster's Blog. I, Buster Jr., will do my very best to continue my father's online legacy, in the political sphere and sporting world. You won't see the frequency of posts you once did, as Dad was quite the active blogger. And considering Dad was so politically savvy, you might not get as refined a political take from me, although my sentiments will be entirely familiar to the average reader. You will see, however, more sports content than my father provided, as that is what I know best. Expect a lot of Tribe, Cavs, Browns, and Buckeyes talk.
Myself, along with the help of some of Buster's very dearest friends will do our very best contribute to this blog and continue the standard of excellence Dad exuded here on this blog. This is just but one small way to honor a terrific man, and one who I am so glad to have called my father.
I hope you continue to follow this blog, as Dad would have loved to have you stick around. Here's to many more pointed posts.
And as always, fuck Fox News, and fuck Koch Industries. 😉
Buster Jr.
Man vs. Squirrel
Posted by Buster at 5:48 PM 1 comment:
Local Judge Shows Remarkably Good Judgment
Franklin County Ohio Municipal Court Judge Julie Lynch is one of my county's longest-serving judges. Earlier this month, she announced she's leaving the Republican party and will run in the future as a Democrat. She said she no longer wanted to be affiliated with what the Republicans have become on the national level.
Great decision, Judge Lynch! Welcome back to the human race!
Otherwise Blameless?
Judge T.S. Ellis
He ran a consulting firm known as "The Torturer's Lobby." He has recently been found guilty of tax fraud and bank fraud, and of hiding millions earned as an unregistered Ukranian lobbyist, and of witness tampering. So naturally enough, the federal judge presiding over the sentencing of the tax and bank fraud crimes, Judge T.S. Ellis, opened his remarks by declaring that Paul Manafort had "led an otherwise blameless life." Ellis is a conservative old crank appointed by Reagan. Manafort's crimes carried sentencing guidelines of 19 to 24 years. Ellis gave him 47 months, less time already served, for a net sentence of just 3 years.
Judge Amy Berman Jackson
Yeah, on the tax and bank fraud charges, Manafort was lucky. He got off more than Robert Kraft at the Orchids of Asia Day Spa, but this Wednesday is Round Two -- his sentencing for the rest of his most recent crimes. Different court, different sentencing guidelines (10 years), and a different judge, Judge Amy Berman Jackson. Signs are that Judge Jackson will not consider Manafort otherwise blameless, and will sentence him appropriately.
Meaning Paulie will be 80 years old, give or take, when he's finally sprung from the can, and thankfully, we can avoid hearing about his skeevy ass for a good decade or more.
When he cools his heels once again, does the fashion plate appear more blameless in prison green or prison orange?
Posted by Buster at 7:43 PM No comments:
Javanka's Security Clearance Is Nauseating Nepotism
From the start, White House security officials were reluctant to approve Javanka for top-level security clearances, so Trump pressured Chief of Staff John Kelly and administration attorney Don McGahan to do it. They refused, so Trump did it himself in 2017. Straight nepotism from Daddy Dearest.
It should never have happened. Jared is up to his neck in Russian and Saudi money, and Ivanka pushed her merchandise lines in the Far East. Neither are exactly top-security material, just greedily money-motivated.
And when asked directly about Javanka's undeserved security clearances, both daughter and father lied awkwardly, as is their habit:
Ivanka: The president had no involvement pertaining to my clearance or my husband's clearance, zero.
NYT reporter: Did you tell General Kelly or anyone else in the White House to overrule security officials?
Donald Trump: I don't think I have the authority to do that. I'm not sure I do.
NYT reporter: You do have the authority to do it.
Trump: But I wouldn't. I wouldn't do it.
No, of course he wouldn't. But his 2020 federal budget proposal includes not only an $8.6 billion request for his hateful wall which no one wants, but also a $100 million request for Ivanka's "global women's fund." He would do that. Daddy Dearest would not hesitate to throw $100 million of our money at his daughter.
It's things like this which nauseate most people. It's why anti-nepotism policies, such as they are, exist.
#FDT
Posted by Buster at 8:50 AM No comments:
The South, Horny Old Rich Men, The Far East, The Fake Emergency Money Grab, Climate Change Denial, The House Oversight Committee
Harris and McCready
Dowless
"Duh, . . . Yep."
The North Carolina Board of Elections has invalidated the 9th District Congressional vote due to election fraud perpetrated on behalf of Mark Harris, the GOP candidate. There will be a new vote. Harris edged Democrat Dan McCready by a mere 900 votes. Most of those were absentee ballots illegally collected and completed by GOP operative McRae Dowless, who's been indicted and arrested. Harris will not participate in the re-vote. Good. Incredibly, Mitch McConnell is blaming Democrats for Mark Harris's fraud, because D's don't support voter ID laws. Mitch calls it a clear case of voter fraud. Clearly, it's not. No voters engaged in in-person voter fraud, e.g. passing themselves off as another person. Instead, the Harris campaign tried for a large-scale absentee ballot scam, submitting fraudulent ballots. That's election fraud, not voter fraud, and Mitch doesn't know the difference.
Some Ole Miss basketball players took a knee last Saturday during the national anthem to protest an on-campus rally by white supremacist shitheads in support of Confederate monuments and rebel flags. Pssst, white supremacists! The Civil War is over. You lost.
Pam Northam, wife of Virginia governor Ralph Northam, handed cotton balls to two 8th-grade black girls on a school tour of the governor's mansion and asked them to imagine being slaves and having to pick cotton every day. What the hell was she thinking? Does she enjoy bad press? She sure got some. Not a good look from the wife of the Virginia governor who's a fan of blackface and KKK costume. Especially during Black History month.
Alva Johnson
Alva Johnson is a former Trump campaign worker. She's also #22 -- the current number of women accusing Dolt 45 of sexual abuse, harassment, assault, unwanted contact, and/or rape. Johnson says at a rally in Tampa in August 2016, behind a campaign RV, Trump approached her, grabbed her firmly and forcibly kissed her without her consent. Johnson quit the campaign in October 2016, just after the release of the Access Hollywood tape. This Monday, she sued Trump in federal court, charging him with sexual assault.
Perp walk
Bob Kraft is the wealthy 77-year-old owner of the New England Patriots, close friend of Donald Trump's, and disciple of Trump's sexual procurement habits. Kraft has been charged in Jupiter, Florida with soliciting prostitution at the Orchids of Asia massage parlor on January 19th. Captured on video, not only did he solicit, he received. He came back the next day and received again, then flew off to Kansas City to watch the Patriots defeat the Chiefs in the AFC championship game. Perhaps the key to the Patriots extraordinary record of success is the boss obtaining a "massage" on game day.
"Gotta go, Kim. I'm double-parked."
Fanboys of dictators watch in
disappointment as Trump waves goodbye.
The Great Negotiator goes halfway around the world and whiffs. Trump travelled to Viet Nam to meet again with his lover and pen pal, Kim Jong Un, to try again to get North Korea to agree to nuclear disarmament. I was hoping Trump could get it done by promising to stay forever with Kim in connubial bliss in Pyongyang. But alas, they must have had a lovers quarrel. Trump arrived in Hanoi on February 26th, and two days and two dinners later was on his way home having accomplished nothing.
Trump must have some serious dirt on Japanese P.M. Shinzo Abe. He asked/begged Abe to nominate him for the Nobel Peace Prize. WTF? Incredibly, Abe did just that, although no one can cite any evidence of Trump promoting peace. Is there a new Nobel Lying Prize?
Lighthizer and Liu
Trade talks continue between the U.S. and China, and formal memos of understanding -- MOU's -- are being drawn up as the basis for a comprehensive agreement. Not unusual, except that Trump doesn't understand MOU's, doesn't like the phrase. During an Oval Office meeting with U.S. Trade Rep Robert Lighthizer, Chinese Vice Premier Liu He, and Trump, Trump declared he had no use for memoranda of understanding "because they don't mean anything." That led to this exchange:
LIGHTHIZER: An MOU is a contract. It's the way trade agreements are generally used. It's not a term sheet. It's an actual contract between the two parties. An MOU is a binding agreement. And that's what we're talking about. It's detailed, it covers everything. It's just called a memorandum of understanding. That's a legal term. It's a contract.
TRUMP: By the way, I disagree. I think that a memorandum of understanding is not a contract . . .
At this point, China's VP actually started laughing, amazed that Trump and his top trade rep couldn't agree on the purpose and significance of an MOU, on the definition of a routine phrase. Lighthizer, embarrassed by having been incorrectly corrected by his boss in front of his Chinese counterpart, came up with a solution: stop using the phrase that Trump doesn't like.
LIGHTHIZER: From now on, we're not using the words "memorandum of understanding" anymore. We're going to use the term "trade agreement." All right?
LIU: Okay.
TRUMP: Right.
LIGHTHIZER: No more. We'll never use the term again.
TRUMP: Good.
LIGHTHIZER: We'll have the same document. It's going to be called a "trade agreement." We'll never use "MOU" again.
TRUMP: Good. Good. I like that much better. I like that term much better.
"Me so smrt!"
That's Trump in a nutshell: knows less than he pretends to; is more interested in what things are called than what they do. You can't have a memo of understanding with a guy who understands nothing. And Trump has never had respect for any contract.
If you can't beat 'em, cheat 'em. Mexico won't pay for it. American citizens are opposed. U.S. Congress refuses to fund Trump's stupid wall. So Dolt 45 declared a #FakeNationalEmergency and gave himself an unconstitutional authority to grab the power and money to build the wall on his own responsibility.
Happer
Donny Dishonesty is continuing his disreputable efforts to decades of climate science. The Koch-sucker is assembling a "Presidential Committee on Climate Security." Its purpose is to conduct "adversarial scientific peer review" on climate science, i.e. to be professional climate change deniers. Trump's pick to head the panel is William Happer, a retired a physics professor with no background in climatology, just crackpot opinions -- climate science is a "cult," carbon dioxide is "not a pollutant," it is demonized just like the Jews were under under Hitler, carbon dioxide is "actually a benefit to the world, increasing it will be good for the human race."
"This woman is my friend. Isn't it obvious she's a black person?
So I can't be a racist, can I?"
The GOP at the house oversight Cohen hearing was childish and embarrassing. Led by T-Baggers Jim Jordan and Mark Meadows, they decorated the hearing room with posters attacking Michael Cohen. Posters! Is this a junior high, or the House of Representatives?
The R's did not care to learn anything from Cohen. They asked him no questions. They were there to denigrate Cohen and call him names ("liar!"), and to defend Trump.
Moai Gaetz accused Cohen of adultery,
then stood wordlessly threatening Cohen.
Fla. Rep Matt Gaetz sent a threatening tweet to Cohen. The Florida Bar is now investigating Gaetz for witness tampering. N.C. Rep Mark Meadows brought along Lynne Patton, HUD official and former Trump party planner. Her purpose was to stand there silently being black, a human prop "disproving" Trump's racism. Sure.
The best parts of the day-long hearing were the emotional closing remarks by the Committee Chairman, Eli Cummings D-MD. If you missed his powerful words, here they are again. Watch him:
Fake President's Day
Elect a clown,
Expect a circus.


How can you fall into good habits vs bad habits?
Fall is now upon us with the feel of the crisp air and the sound of the leaves under your feet. Routines are in full swing with school starting, sporting events, and fall festivals. You realize how time flies and that the holidays will soon be upon you. Habits are created through the choices that you make and how spend your time on priorities. These choices determine the outcome of your life. The habits that you have will make big differences in your life.
How can you fall into good habits vs bad habits? I want you to REALLY think about this concept.
It takes the exact same strategy of thinking to create a good habit as it does a bad one. This is an important and profound thought. It is life-changing. Whether you have habits that affect you positively or negatively, habits can and will affect the direction your life. Whether you know it or not, you have the choice to keep or discard an idea or thought. Your mind is a very powerful and efficient machine. It takes in massive amounts of information and decides whether to keep it or not.
If you choose to exercise this power to choose, you can change the direction of your life. Many people have limiting beliefs, meaning that they think they are limited in some area when, in reality, they are not. Some people think that their state of health just is what it is. But that is just not true. The state of their health is a result of the choices that they have made. These limiting and negative thought processes are often very difficult to change. Many people never change their direction of thinking. Is this you? Do you have limiting beliefs in any area of your life? Do you feel that you can't have the ideal weight, a life without smoking, improved health, or healthy relationships?
Let's think proactive here. It is so much easier to create a good habit than it is to correct a bad one. Deeply think about which direction you are in and where you want to go. Think about what thoughts are habits. Which ones are not taking you in the direction that you want to go? Start now examining your actions to be sure that you are making the choices that may become habitual. You and only you have the power to change your direction. Use this power. Make choices on purpose, not just falling into a habit.


text:
Argentina Online Casinos
Argentina is the second largest country on the South American continent, bordering Brazil, Uruguay, Chile, Paraguay and Bolivia. As it stands, the country is the leader when it comes to gambling in South America, featuring over 70 land-based casinos for people to play their favourite games in. The largest of these is the Trilenium Casino located in Tigre. As it stands, the most luxurious casinos in the country are visited by both locals as well as foreign players, making them also somewhat of a tourist destination. Of course, we're here to find out how the online gambling world looks for the country, so let's learn more about it.
The Best Argentinian Casino Sites
Over 20 years old!
Jackpot City
50 No Deposit Free Spins
Visit Jackpot City Jackpot City Review
Up to €1200 free
Visit Royal Vegas Royal Vegas Review
Full T&Cs apply.
Mexica Fiesta!
€1500 +150 free spins
Join Mucho Vegas Mucho Vegas Review
Can You Gamble Online from Within Argentina?
Online gambling is actually legal in Argentina. These platforms, which are accessible to both citizens of the country and foreign players, are licensed and regulated by the authorities of specific provinces. This is exactly the same as the licensing for land-based casinos in the country. In actuality, the first legal internet casino became an entity there in 2002, giving Argentina somewhat of a grand history with online gambling. Furthermore, there is nothing to stop players from the country accessing offshore platforms either, with many of these being available in both Spanish and English language.
Because of both the online legality of gambling and the offline standing of casinos, Argentina actually holds a very rich and lavish industry in this sector. This doesn't just relate to casino gaming either, as the country also has a strong love for sports betting. Therefore, Argentine bettors are able to pretty much satisfy their gambling needs wherever they choose. The country even has its own casino cruise ships as well, meaning that people can cruise down the river whilst playing on their favourite casino games. Therefore, to put it simply, Argentina has quite the liberal stance towards gambling on the whole.
This gives citizens of the country the ability to gamble in whatever way suits them best. Online or offline. Fortunately, the online sector is constantly growing as well, and residents can also take their business to offshore casinos and sportsbooks, if they so choose.
What games can I play online?
There are 100s of different slots games and table game variants that you can play at online casinos and in-particular from Argentina. These include from some of the biggest iGaming software operators in the world.
Some of the most popular online games include:
Argentine Peso Deposit Options
Online casinos based in Argentina are always available in Spanish and will generally always allow for deposits and gameplay to be done in the Argentine peso. That being said, if a player opts to utilise an offshore online casino, this will not always be the case. While it is possible to find certain sites that will allow deposits in the national Argentinian currency, the vast majority of them don't provide this service. Therefore, it's most likely that the US dollar will be available to use instead. Regardless of which, some of the possible payment methods that you can use as an Argentinian player at online casinos include:
Credit and Debit Cards: Visa, MasterCard, American Express
eWallets: Skrill, Neteller, ecoPayz
Prepaid Cards: PaysafeCard, Entropay
Bank Transfers: Bank Wire Transfer
Overall Gambling Status in Argentina
It's always great to find a country that has such liberal rules regarding gambling. Argentina certainly is one such location that can boast this. Everything began with sports betting in the country back in 1882 and gambling as a whole has grown in a big way ever since. It's also nice to discover that Argentina has never officially banned or made gambling illegal throughout its entire existence in the country. That's something that has remained across the board too, whether it be for casino gaming or sports betting and other offerings. And while today, it is necessary to hold a gambling licence in order to legally operate and provide such services, even throughout the years, Argentina hasn't really had such issues with corruption as far as gambling games go.
The government of the country is quite willing to allow its residents to gamble at its own online and offline platforms, as well as register and play at those located offshore. Therefore, Argentinian players are given quite the freedom to satisfy their gaming enthusiasm as they choose. The country actually has 71 different cities that provide gambling facilities, with over 100 brick-and-mortar establishments offering such options. Buenos Aires is the largest gambling city in Argentina, possessing eight of these gambling facilities. On the continent of South America, online gambling's legislation differs from country to country, but Argentina has managed to stand out as being perhaps the most liberal of all in this respect.
Online casino and gambling laws in Argentina
Gambling in Argentina can be traced back to 1882, when the Jockey Club came about. This was the first place that Argentinian residents could participate in horse race betting. It was with the implementation of this that horse racing events grew, as did the ability to place wagers on them. While horse racing remains at large, betting on football matches takes more of a precedence over it. By the year of 1979, the first betting system had been brought into place, extending the sports betting options across the whole country.
Perhaps its most important year though, was 2002. It was at this time that the very first gambling licence was handed out to a local internet casino. In the proceeding years, four more online platforms received such licences from Argentinian regulatory bodies and there's the potential for even more to be given out too. Sports betting platforms became available online in 2006 as well, ensuring that online bettors can benefit from both casinos and sportsbooks.
Further to this, Argentina has also set up its own laws that are aimed at helping players with gambling addiction. While such only became available in 2016, the laws have brought certain measures into place in order to assist such problem gamblers. These laws include an international helpline and the stricter terms relating to unlicensed casinos.
Today, Argentina has a wide rage of land-based and online casinos that provide real money gambling. These are able to provide slots, table games, video poker and much more to the residents of Argentina, as well as to foreigners who either visit the country or choose to sign up online.


The new 'Haven Playsuit' with vibrant red and tones of forrest green, white and navy, is a vibrant pattern that will be the new stand out in your wardrobe..
The 'Haven' is a fun outfit that offers comfort, easy to wear design and most of all two functioning zippers front and back making it easy to get on and off plus breast feeding friendly....Oooh did I mention pockets!!!!!


Cash remains the most popular retail payment method in the US, but handling cash is costly and time-consuming for retail businesses. Poor cash management exposes retailers and restaurants to hemorrhaging operational costs, theft and security risks.
Retailers, get control of your cash with CorPoint® and other flexible cash management innovations from Fiserv. Visit Fiserv at NRF in booth 833 to refresh your cash management strategy.
Who is Fiserv? Fiserv is driving innovation in Payments, Processing Services, Risk & Compliance, Customer & Channel Management and Insights & Optimization. Our solutions help clients deliver financial services at the speed of life to enhance the way people live and work today.
Learn more information about automating cash handling with Fiserv. Call 800-872-7882, email replycash@fiserv.com or visit www.fiserv.com.


text:
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("RRP.NET20")>
<Assembly: AssemblyDescription("RRP Client for .NET 2.0")>
<Assembly: AssemblyCompany("}}8{{ //8legd")>
<Assembly: AssemblyProduct("RRP.NET20")>
<Assembly: AssemblyCopyright("Copyright © 2015 }}8{{ //8legd")>
<Assembly: AssemblyTrademark("}}8{{ //8legd")>

<Assembly: ComVisible(False)>

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("4fb9b4a9-56f1-4999-b467-ae47689d16c2")>

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.5")>
<Assembly: AssemblyFileVersion("1.0.5")>


text:
Q: Table with composite primary key and version field in JPA I tried using @IdClass for this and regular @Version annotation on the version field but i keep getting the Error:

OptimisticLockException: Attempted to attach deleted instance type "class xxx" with oid "xxx". If the instance is new, the version field should be left to its default value

After the EntityManager.merge(obj) line.
I have two PK's that are integers, so is the version field...
i use a PK- Class that has the Id fields with @IdClass(Pk.class) and the setter and getter for the Id's are calling an instance of the Pk class that is created in the constructor.
I'm not using @GeneratedId.
I'm using Openjpa not Hibernate.

A: Probably your app. is changing version field. It should be never set. It is a technical column. Without pasting code here, is just a guess.


So I have a mind that behaves like a three-year old.
Mind you, it's clearly not actually three, it just behaves like it is. How so? It goes where it's not supposed to go without remorse and then expects everyone to have a laugh about it when it's caught. It drops dung when it needs to and expects someone to clean it up. When it doesn't get its way, it ensures that everyone knows it's not happy by flinging toys around and making an obvious good old-fashioned racket. But unlike an actual three-year-old, it actually knows better not to behave this way. It's experienced the pangs of adulthood and the scarring that come from growing up and having responsibilities. It just sometimes decides it doesn't want to be an adult.
I've tried the hard way to get it to behave, to discipline it into submission by either spanking it with the Bible or shouting logical reasoning at its face. I've also tried the softer approach by appealing to its happy side through a combination of cute 'I-come-in-peace' monkey faces and the gentle cooing of sunny thoughts.
But it's futile. It still continues to behave like a three-year old when it wants to.
Perhaps like all petulant three-year-olds, you just have to give it space and years and pray hard that it develops into a reasonable adult. Perhaps. But at this moment, I am growing weary at slugging and jousting with something that has purposed so intently to not listen to what I have to say. I wish I could literally just drop everything, pick up my car keys and just drive off for a few hours, away from the madness. But alas one can't divorce oneself from a bodily appendage.


Configuring identity.xml - Gadget Server 1.4.0 - WSO2 Documentation for your Wiki!
Users can change the default configurations by editing the <PRODUCT_HOME>/repository/conf/identity.xml file using the information given below.
Click on the table and use the left and right arrow keys to scroll horizontally.
_<JDBCPersistenceManager> Identity related data source configuration.
__<SupportedResponseTypes> Supported OAuth2.0 respose types.
__<EnableAssertions> Assertions can be used to embed parameters into the access token.
__<SAML2Grant> Configuration related to SAML2 Grant type.
___<XMPPSettings> XMPP setting for multifactor authentication.
____<ThirftBasedEntitlementConfig> Thrift transport configurations for entitlement service.
_______<KeyStore> Thrift key store configurations used for SSL.


text:
www.cybertechhelp.com | home
Cyber Tech Help Support Forums > Calendar
Register FAQ Calendar Search Today's Active Topics Mark Forums Read
Viewing on a mobile device? Try our mobile theme.
If CTH has helped you, please consider liking and sharing us on Facebook
wauseoner, tradernik (68), rusteetool (66), FSU Dude (62), TerryD (59), Minette (55), pjthomford01 (54), Chelledou (49), t_inwood (45), Merimommy (39), Teresa1 (38), mony (31), brian_berzins (26), thegame310 (24), mo786 (22) Birthdays
alfredmccabe (71), jimufa (57), scando5 (51), NIGELMCC (49), josh_2002 (42), godbear839 (37), xplicid (34), nmcconom (32), RyanSanderson (30), robbyod (27), rpeeb1 (26), restin256 (23) Birthdays
sandy, Nonanonymous, bobsandshoes (70), Tizzylou (66), TheDoctor (60), marwalk (58), timandel (53), glasgowloulou (47), GUINNESS1231 (47), kitteno1 (43), howard240 (36), kcwaz (33), Attoz (32), Rayne (26), stealthsoft (25), eamoe11 (22) Birthdays
sunglasses, Unicorn609, markm (67), jjacob (64), carguy56 (62), siogui1 (59), clnqueen (51), mish (48), drksky2000 (42), supersteel (42), Hansl (42), |=0$h!ZzL3 (41), ernstlu (41), sillyns (38), emmie (37), M_platsis (36), SnoopCorleone (33), Cary (33), rcmcghee (31), isamukusanagi (31), LadiX (30), tim1234 (28), Coola (28), lauren (27), andrewtechhelp (18) Birthdays
gypsi7039, zdenko, eo66725, allbogie (77), condolady (68), Zugstwit (64), cravencs (61), ltnixon (60), walter1965 (56), Shutterbugg (53), jobel60 (51), jobel602 (51), HalC (47), pctech2upres (44), nicchg (44), aces99 (44), Rick Martel (29), woodkimberly (29), Miccrhaafetl (28), Sexington (27), estarapapax (23) Birthdays
washetuan (58), AARPstud (58), tjbron (56), MISS CHIEVOUS (54), TIGRE (51), Rahbin21 (46), wildtaz (42), cruzn69 (42), Rusty (42), rene.cruz (42), loupe555 (35), stephen symons (32), dazboot (30), ethuta (27), inferno19 (24), BoD][eZ (24), rannel (24), AgaBoogaBoo (23), KillaAssassin (23), vigge (22), twobluestripes (22) Birthdays
jessejane, maber (81), rollercoaster (76), lanekoeslin (72), dmeadows13 (59), srscherr (57), Scrapper214 (57), julio21 (55), mzwizlo (50), jjenkins (47), landorl (43), Paradox (39), rarzon (38), firetoy (31), Valerie (30), ronin (25), Tmoney2256 (24), u_freak66 (24), freespit (23) Birthdays
January February March April May June July August September October November December 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
Copyright © Cyber Tech Help.
web development & css by Vivid
web design by Ceonex


It's starting to feel more and more like spring now, which is great because not only does it give me the excuse to start hunting for a new wardrobe, but it means that it's even closer to the season we all wait for: summer.
It started with this humble pair of sunglasses by Komono from Urban Outiftters (my haven). I had a UO voucher to spend and so, to make it up to the total on the card, I just had to buy some earrings too. I think I've got a bit of a sunglasses obsession, and I don't even have much need to wear them.
Another favourite recent purchase of mine is this kimono from Hollister. Kimonos have sprung up everywhere all of a sudden and this Hollister one is gorgeous, I think. I just love the colour and the pattern and I think it is absolutely perfect for summer! I can't wait to be able to throw this over my bikini and walk along a beach like I'm in some sort of glamorous film. Bring on the beach weather just so I can wear this! I'm a lil bit excited about it really!
For those of you that have read my wishlist post (which you can read here) you will know which beautiful bag I am referring to when I say that I have bought it and it is finally mine! Topshop really is a treasure trove sometimes. I am a bit in love with this bag yes, and I have no shame in it. If you have that item of clothing that makes you feel like a sophisticated socialite in a cosmopolitan city even when you live in chav-ville, you'll know why I love this bag so much!
These shoes are probably my holy grail of recent buys. I can't tell you how long I've been searching for a pair of shoes like these, or how long I spent dreaming about them once I'd finally found them. The benefits of saving my other Urban Outfitters vouchers from my birthday were rewarding! There's nothing better than a nice pair of shoes that give you that added height without making you feel like Bambi on the ice. They are probably one of the most comfortable pairs of shoes I have ever owned so I recommend anyone who needs a new pair of shoes to look no further than Vagabond.
Sorry again for the delay between posts, but I hope my purchases inspire you to go forth and spend all you got this payday!


A high-speed rail network on Australia's eastern seaboard won the backing of both sides of politics as Labor announced a start date for the construction of an inland rail link between Brisbane and Melbourne.
Transport Minister Anthony Albanese rejected suggestions both projects were pie-in-the-sky schemes, even though they have been talked about for more than two decades.
A re-elected Labor government would initiate a $20 million feasibility study for a high-speed rail network linking Brisbane, Sydney, Canberra and Melbourne, with a particular focus on the Sydney-Newcastle leg.
The study will begin later this year, and is expected to take about 18 months.
Mr Albanese also backed a $4.7 billion plan to build the inland rail link.
The 1700km route, which would need 600km of new tracks, would be economically viable by 2030, a study by the Australian Rail Track Corporation study has found.
An inland link would take pressure off existing roads and deliver freight between Melbourne and Brisbane seven hours faster than the current route, Mr Albanese said.
But the government won't take the first steps in building the inland track until 2014, two elections from now.
Building both railways required studies to assess their feasibility, Mr Albanese said.
"It's not a matter of guesswork," he told reporters in Melbourne.
Prime Minister Julia Gillard rejected suggestions the feasibility study aimed to please the Australian Greens, with whom Labor struck a preference deal earlier in the campaign.
Nationals leader Warren Truss said a coalition government would also undertake a study into high-speed rail.
"The coalition has always been committed to a modern, fast and efficient rail system in Australia," he said in a statement.
The coalition had commissioned a study into fast rail and upgraded rail links between Melbourne-Sydney and Sydney-Brisbane when last in power.
"In government the coalition will build upon this study to consider the viability of possible passenger routes along Australia's east coast between Melbourne, Canberra, Sydney and Brisbane," Mr Truss said.
Federal governments have considered high-speed rail in Australia since 1981 but cost pressures have thwarted any move towards construction.
A high-speed rail trip between Sydney and Canberra would take less than two-and-a-half hours, according to Australia's rail Cooperative Research Centre.
That would be faster than travelling by plane, taking into account check-in times and commuting to airports.
The 300km/h rail trip from Sydney to Melbourne would take just under six hours, compared to a 10-hour car trip.
But high-speed rail doesn't come cheap with an estimated cost of $48 million per kilometre for the required infrastructure.
The plan was welcomed by Australian Greens leader Bob Brown, a strong advocate of high-speed rail links.
"It's the 21st century transport option of choice between big cities," he told reporters in Canberra.


text:
Features Careers Training & Education
Discover Hydro-Quebec's 70-year history at the Électrium
September 19, 2014 By Alyssa Dalton
September 18, 2014 – As part of the Journées de la culture September 26-28, the Électrium—Hydro-Quebec's Electricity Interpretation Centre—is offering a temporary display celebrating the 70th anniversary of the utility.
The display includes artifacts and archival photos based on three themes: the historical context on Hydro-Quebec's creation, the first employees and the new public corporation's first construction projects.
"In the company of experienced tour guides, visitors will also be able to visit the electricity interpretation centre and satisfy their curiosity about electricity and its many secrets," said Hydro-Quebec.
Your visit, according to the utility, will help you relive memories and inspire animated discussions:
• Which Quebec premier passed the Hydro-Quebec Act? Why?
• What territory did it serve?
• How many hydroelectric generating stations supplied the city of Montreal at the time?
• What was the first major project completed after the first nationalization?
Visitors will also be able to test their knowledge with a historical quiz for a chance to win one of three prizes.
For more information, visit www.hydroquebec.com/visit or call (800) 267-4558.
The display will continue until January 2015.
PHOTO: Hydro-Quebec's first logo is pictured here.
Hydro-Quebec's 735kV line celebrates 50 years
Free and fun workshops for the family at Hydro-Quebec's Electrium
70 years since the creation of Quebec Hydro-Electric Commission
Hydro-Quebec commissions Romaine-1 generating station
Electrium
Hydro Quebec
BC improving home inspector standards to "better protect consumers"
Greenlee launches French Canadian version of its website


text:
Q: How can I sync my with Zune HD using the Zune software? I have a Zune HD and a subscription to Zune Marketplace. I am able to sync non-DRM music, but it fails for anything from the marketplace. It click "Sync with Zune" or drag the album icon to the Zune icon, but it never works.
It says "Added 1 album" briefly, then when I go to Device >> Summary, all the songs I've tried to add are listed under "Not Added".
I click "start sync", and nothing happens.
What could I be doing wrong?
I'm using Windows 7, and the most recent versions of the Zune and Zune HD software.

A: You should check and make sure you Zune HD is linked to your Marketplace account.  Go to Settings->device->Linking.  You should see a screen similar to the one below.  If your Zune HD is not enabled for the marketplace, that would explain why the marketplace files were not syncing.


This feature supports controlling Outlet relays via RF. So, there is a 315MHz transmitter to the Arduino which controls the unmodified Outlet modules.
This simplest type of outlet relay does not provide mechanism to change the channel it is on — there are 4 channels A-D, and each channel has 3 separate outlets, for a maximum possible of 12 individually controllable outlets. The app by default has all 12 enabled, those can be disabled in the settings screen.