text:
Q: C# Keydown event not working I'm trying to get the application to navigate to a certain URL in the web browser component once the ENTER key has been pressed (a barcode reader inputs the data into the Barcode textbox and is programmed to add "ENTER" at the end of each scan). The barcode number is then sent to the server for validation via the URL and a result is displayed in the web browser.
After reading up on Stack Overflow at first I came the conclusion that this.KeyPreview had not been set - however even after setting this to True it still wouldn't.
All I want it to do is when ENTER has been pressed anywhere on Form2 it should change the WebBrowser component URL to the data contained in the Barcode Textbox.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SUBWAY_deliverX_2017_POSlink
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            this.ActiveControl = Barcode;
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void Barcode_TextChanged(object sender, EventArgs e)
        {

        }

        private void Barcode_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                webBrowser1.Navigate("https://10.0.0.142/deliverXPOSquery.php?barcode=" + Barcode.Text);
            }
        }
    }
}

And the Designer file:
namespace SUBWAY_deliverX_2017_POSlink
{
    partial class Form2
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form2));
            this.button1 = new System.Windows.Forms.Button();
            this.Barcode = new System.Windows.Forms.TextBox();
            this.pictureBox1 = new System.Windows.Forms.PictureBox();
            this.webBrowser1 = new System.Windows.Forms.WebBrowser();
            this.button2 = new System.Windows.Forms.Button();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
            this.SuspendLayout();
            //
            // button1
            //
            this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.button1.Location = new System.Drawing.Point(177, 241);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(249, 79);
            this.button1.TabIndex = 0;
            this.button1.Text = "Return to SubShop";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // Barcode
            //
            this.Barcode.BackColor = System.Drawing.SystemColors.Control;
            this.Barcode.BorderStyle = System.Windows.Forms.BorderStyle.None;
            this.Barcode.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.Barcode.Location = new System.Drawing.Point(178, 323);
            this.Barcode.Name = "Barcode";
            this.Barcode.Size = new System.Drawing.Size(249, 24);
            this.Barcode.TabIndex = 1;
            this.Barcode.TextChanged += new System.EventHandler(this.Barcode_TextChanged);
            //
            // pictureBox1
            //
            this.pictureBox1.Image = global::SUBWAY_deliverX_2017_POSlink.Properties.Resources.delxstoreheader;
            this.pictureBox1.Location = new System.Drawing.Point(0, -2);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(589, 102);
            this.pictureBox1.TabIndex = 3;
            this.pictureBox1.TabStop = false;
            //
            // webBrowser1
            //
            this.webBrowser1.Location = new System.Drawing.Point(12, 106);
            this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
            this.webBrowser1.Name = "webBrowser1";
            this.webBrowser1.Size = new System.Drawing.Size(563, 120);
            this.webBrowser1.TabIndex = 4;
            this.webBrowser1.Url = new System.Uri("https://10.0.0.142/deliverXPOSquery.php", System.UriKind.Absolute);
            //
            // button2
            //
            this.button2.Location = new System.Drawing.Point(471, 256);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(75, 23);
            this.button2.TabIndex = 5;
            this.button2.Text = "button2";
            this.button2.UseVisualStyleBackColor = true;
            this.button2.Click += new System.EventHandler(this.button2_Click);
            //
            // Form2
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(587, 346);
            this.ControlBox = false;
            this.KeyPreview = true;
            this.Controls.Add(this.button2);
            this.Controls.Add(this.webBrowser1);
            this.Controls.Add(this.pictureBox1);
            this.Controls.Add(this.Barcode);
            this.Controls.Add(this.button1);
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.MaximumSize = new System.Drawing.Size(603, 385);
            this.MinimumSize = new System.Drawing.Size(603, 385);
            this.Name = "Form2";
            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "deliverX 2017 - Order Validation";
            this.TopMost = true;
            this.Load += new System.EventHandler(this.Form2_Load);
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.TextBox Barcode;
        private System.Windows.Forms.PictureBox pictureBox1;
        private System.Windows.Forms.WebBrowser webBrowser1;
        private System.Windows.Forms.Button button2;
    }
}

A: In your code :
 this.Barcode.BackColor = System.Drawing.SystemColors.Control;
            this.Barcode.BorderStyle = System.Windows.Forms.BorderStyle.None;
            this.Barcode.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.Barcode.Location = new System.Drawing.Point(178, 323);
            this.Barcode.Name = "Barcode";
            this.Barcode.Size = new System.Drawing.Size(249, 24);
            this.Barcode.TabIndex = 1;
            this.Barcode.TextChanged += new System.EventHandler(this.Barcode_TextChanged);

At no point have you linked the keydown code to the control you think you did.  So no it wont.
Personally in my own barcode reading app, I used the text changed and on finding a barcode that matches spec, then auto submitted it..  but mine was for tape scanning and so they could be scanning in 250+ tapes and wouldnt want to press a button each time


text:
Chronopost é uma filial do grupo francês La Poste, que tem como objectivo o despacho expresso de correspondências, documentos e objectos a nível nacional (em França) e a nível internacional.

História
A empresa foi criada em 1985, com objectivo de fazer face à forte concorrência de empresas americanas em território francês. Inicialmente criada com o nome SFMI (Société Française de Messagerie Internationale). A filial do La Poste e nome em 1992 para Chronopost e em 1997 a Chronopost dá entrada no mercado português.

A GeoPost pertence ao grupo La Poste, reunindo todas as filiais de transportes expresso do Grupo. Presente em todo o mundo e com mais de 300.000 clientes, posiciona-se em 1 º lugar em França e em 2 º lugar na Europa, em actividade, para o mercado CEP (Courier Express Parcels).

A sua estratégia é ser líder nos mercados em que opera, pela optimização das nossas redes locais e pan-europeias, através da recolha e entrega de encomendas até 31,5 kg em janelas horárias definidas com a prestação de informação permanente, desenvolvendo ao mesmo tempo, de forma progressiva, uma capacidade mundial por parcerias e alianças, tanto para clientes B2B como B2C.

Em Portugal
Em Portugal desde 1997, a Chronopost tem cerca de 750 colaboradores e 350 veículos, com agências em Coimbra, Évora, Faro, Guarda, Leiria, Lisboa, Alfena, Torres Novas, Vila Real, Viseu, Funchal e Ponta Delgada. Sendo Lisboa, Alfena e Leiria os hubs internacionais de expedição de encomendas.

Filial a 100% do Grupo GeoPost, a Chronopost International é o parceiro privilegiado do sector empresarial que deseja beneficiar da entrega expresso de mercadorias em todo o território nacional e em mais de 230 países. A sua estratégia é ser reconhecida como a referência do transporte expresso de encomendas até 31,5 kg para Portugal e Europa, nos segmentos B2B e B2C.

Licenciada pela ANACOM – Autorização nº 04/2001 de 13 de Dezembro de 2001 e membro fundador da APOE desde Dezembro de 2003, a Chronopost Portugal dispõe de infraestruturas que lhe permitem a cobertura de todo o País, através das suas 13 estações.

A actuação da Chronopost em Portugal tem ficado marcada pelas falhas de serviço e pela fraca qualidade do seu apoio ao cliente. Sendo particularmente visada no sítio de reclamações "Portal da Queixa".

Em setembro de 2019, a Chronopost e a SEUR fundiram-se esta segunda-feira no mercado nacional e a DPD passa a ser a marca que representa as duas empresas.

Empresas Concorrentes
 DHL
 UPS
 FedEx
 TNT N.V.

Referências
 Sítio da empresa em Portugal. Acesso 4 Maio 2011

Ligações externas
 Sítio da empresa em Portugal

Empresas de logística da França
Correios

redpajama_set_name: RedPajamaWikipedia


Mansfield Town manager David Flitcroft gave his first press conference for several weeks this morning and updated the assembled media on his current summer transfer hopes and plans.
He spoke on the rumours that Stags were going to sign Forest prospect Tyler Walker and also about ex-Stag Giles Coke training with the club.
A round-up of all the main points can be seen here in our special Facebook Live broadcast video from the ground straight after the conference.


text:
This terms of use (together with the documents referred to in it) tells you the terms of use on which you may make use of our website https://bubblestudios.co.uk (our site), whether as a guest or a registered user. Use of our site includes accessing, browsing, or registering to use our site.
Please read these terms of use carefully before you start to use our site, as these will apply to your use of our site. We recommend that you print a copy of this for future reference.
If you do not agree to these terms of use, you must not use our site.
Our Privacy Policy, which sets out the terms on which we process any personal data we collect from you, or that you provide to us. By using our site, you consent to such processing and you warrant that all data provided by you is accurate.
Our Acceptable Use Policy, which sets out the permitted uses and prohibited uses of our site. When using our site, you must comply with this Acceptable Use Policy which is available upon request.
Our Cookie Policy, which sets out information about the cookies on our site.
If you purchase goods from our site, our Terms and conditions of supply will apply to the sales.
https://bubblestudios.co.uk is a site operated by Bubble Studios Limited ("We"). We are registered in England and Wales under company number 11992188 and have our registered office at 35 High Street, Margate, CT9 1DX
We are a limited company.
We may revise these terms of use at any time by amending this page.
Our site is directed to people residing in the United Kingdom. We do not represent that content available on or through our site is appropriate or available in other locations. We may limit the availability of our site or any service or product described on our site to any person or geographic area at any time. If you choose to access our site from outside the United Kingdom, you do so at your own risk.
Your account and password
If you choose, or you are provided with, a user identification code, password or any other piece of information as part of our security procedures, you must treat such information as confidential. You must not disclose it to any third party.
We have the right to disable any user identification code or password, whether chosen by you or allocated by us, at any time, if in our reasonable opinion you have failed to comply with any of the provisions of these terms of use.
If you know or suspect that anyone other than you knows your user identification code or password, you must promptly notify us at info@bubblestudios.co.uk.
Although we make reasonable efforts to update the information on our site, we make no representations, warranties or guarantees, whether express or implied, that the content on our site is accurate, complete or up-to-date.
Nothing in these terms of use excludes or limits our liability for death or personal injury arising from our negligence, or our fraud or fraudulent misrepresentation, or any other liability that cannot be excluded or limited by English law.
If you are a business user, please note that in particular, we will not be liable for:
Different limitations and exclusions of liability will apply to liability arising as a result of the supply of any goods by use to you, which will be set out in our Terms and conditions of supply which is available upon request.
The website in which you are linking must comply in all respects with the content standards set out in our Acceptable Use Policy. (available upon request)
If you wish to make any use of content on our site other than that set out above, please contact info@bubblestudios.co.uk.
If you are a consumer, please note that these terms of use, its subject matter and its formation, are governed by English law. You and we both agree to that the courts of England and Wales will have non-exclusive jurisdiction. However, if you are a resident of Northern Ireland you may also bring proceedings in Northern Ireland, and if you are resident of Scotland, you may also bring proceedings in Scotland.
If you are a business, these terms of use, its subject matter and its formation (and any non-contractual disputes or claims) are governed by English law. We both agree to the exclusive jurisdiction of the courts of England and Wales.
To contact us, please email info@bubblestudios.co.uk
© 2020 Bubble Studios Limited // All rights reserved // Privacy Policy // Terms // Launch Pad
FollowFb.Ins.Lin.Tw.
Go to TopSearch

redpajama_set_name: RedPajamaCommonCrawl


Winter can be an unfortunate period of time for many reasons, ranging from the irritation that comes with scraping ice and defrosting your car each morning to the frustration that accompanies higher heating bills. However, for some, winter can be more than just a bummer — it's a cause of a legitimate form of depression known as Seasonal Affective Disorder, or SAD.
As the name implies, SAD is a form of depression that occurs with the changing of the seasons. When the days grow shorter and the sunlight becomes less plentiful, it's not uncommon for normally happy, healthy individuals to feel a little — or a lot — blue.
Fall onset: Also known as winter depression, fall-onset SAD begins in late fall to early winter, with symptoms easing in the spring.
Spring onset: Sometimes referred to as summer depression, spring-onset SAD begins in the spring and usually self-remedies as the weather cools down in the fall. Spring-onset SAD is significantly less common and is often associated with the frustration and discomfort that comes with consistently hot weather.
While the cause of SAD is largely unknown, fall-onset SAD is frequently attributed to a chemical change in the brain associated with less sunlight. Some scientists also believe that melatonin may play a role. As a sleep-related hormone, melatonin causes feelings of fatigue. The body naturally produces more melatonin when it's dark outside, so shorter and darker days can contribute to increased melatonin production and thus lethargy and exhaustion during the day.
Seasonal affective disorder is most common in older individuals, rarely manifesting in those under 20. In addition, SAD appears more frequently in women than men. Around 5 percent of Americans live with SAD.
If you find yourself experiencing symptoms of SAD, the best course of treatment isn't to just grin and bear it until spring rolls around again. With treatment and lifestyle changes, affected individuals have a strong chance of overcoming SAD, lifting the sadness and withdrawal that may accompany winter's arrival.
As the lack of sunlight is often cited as a cause of SAD in those who feel symptoms of depression in the winter, light therapy has proved to be very effective in affected patients. This doesn't just mean sitting in well-lit areas; special light sources are available that mimic the look and feel of natural light, giving you a similar experience to sitting outside in a sunny area. When these beams of light hit the retina, they transform into nerve impulses that target emotional regulation.
Available to those with a clinical diagnosis of SAD as well as those who simply dislike winter and want a little extra sun, light therapy is highly beneficial for those in need. Treatment generally involves 20 to 60 minutes of use on a daily basis.
Exercise has significant ties to mood. Those who exercise vigorously are 25 percent less likely to develop depression of any kind, indicating clear links between physical activity and mental state. Exercise releases endorphins, or feel-good hormones, that can markedly improve emotional responses. Exercise outdoors, in the light, can be even more beneficial.
If you're not big on exercise or are unable to take up a habit like running, consider simply adding a walking routine to your day. A mile or two a few times a week can do wonders, helping you to build muscle and feel better while fighting back against side effects of SAD. If a gym membership is in your budget, some cardio, like the use of an elliptical machine, or participation in a group fitness class may also inspire positive progress.
Many people are hesitant to explore medication like antidepressants, especially those who think SAD isn't a big deal or will go away in time. However, for some people, medication can be an extremely effective way to address mental health struggles of all kinds, including the side effects related to seasonal changes in mood.
Selective serotonin reuptake inhibitors, or SSRIs, are commonly prescribed for various different kinds of depression and can mitigate the consequences of SAD. Bupropion, sold under the trade names Wellbutrin and Budeprion, is among the most commonly used medications for its ability to boost brain levels of dopamine, serotonin, and norepinephrine, dramatically increasing mood in many users.
For SAD, doctors often recommend beginning a dose of the extended-release formula in the fall, before winter sets in. However, medication is not one-size-fits-all, so speaking with a doctor can help you determine whether this is a good alternative for your health.
Cognitive behavioral therapy, often known as CBT, is an efficacious form of therapy used in a wide variety of circumstances, including addressing drug addiction and depression. The objective of CBT is to modify behaviors, emotions, and thoughts that are determined to be dysfunctional. Instead of simply talking about problems, CBT attempts to rectify a view of the world that may have been distorted through life events.
In CBT, patients with SAD are helped to realize that depression is not a choice or a deficit; it's an innate part of self. Through the behavioral elements of CBT, participants can learn to focus negative energy through enjoyable activities like spending time with friends or reading a favorite book. Therapy can provide relief on a standalone basis or in conjunction with other forms of treatment.
Yes, junk food and alcohol may feel good in the moment, but long-term, they're not wise choices for managing the symptoms of depression. Instead, it's best to make choices are as health-conscious as possible.
If you're struggling with side effects of a condition like SAD, it's important to make good choices for your health to improve how you feel both mentally and physically. This means things like eating a healthy diet low in sugar, cutting out caffeine and alcohol as much as possible and abstaining from drug use. Keep blood pressure and heart rate low, and consider taking up activities like yoga or meditation to promote a reduction in stress.
A good night's sleep can be important as well; go to bed at a reasonable time and attempt to get at least seven to eight hours each night. Increased fatigue can be common in depression of all kinds, but too much sleep is similarly discouraged, so try to keep to a normal routine as much as possible.
Dealing with seasonal affective disorder isn't necessarily easy, but it is a treatable condition. By understanding your symptoms and realizing that depression of any kind is not a weakness or a flaw, it's possible to find enjoyment and happiness in the changing of the seasons, no matter how frightful the weather may be.


The image we most commonly found is that of a 'Russian Bride'. A white simple gown with white faux fur trim, or gold or silver trim, gold or silver beading and a white, hooded cloak with white faux fur trim. If you want to go the extra mile, you could perhaps also carry a white fur muff, rather than a bouquet. But we offer very good discounts on bouquets and do suggest you visit the 'Flowers' section on BrideMalta.com before deciding. If wearing a gold or silver dress, wear a gold or silver tiara instead of a headpiece or veil.
The internet is rather sparse on Winter Weddings but one of the most helpful websites was the following: http://www.wedthemes.com/winter-wedding-theme.shtml which contains a lot of information not only about the Bridal Attire but also about Groom attire etc.
In the old days, a bride simply wouldn't wear a strapless gown in January; today, those notions of seasonally correct attire have been thrown out. However, in general there are fabric and style choices that lend themselves nicely to each season.


text:
Q: Cant remap L_shift to L_control unless I remap L_control to something else in xkb I want to remap my caps lock to shift and my left shift to control, but I want to leave my current left control untouched and also working as a control.
Following the advice in this question
Use setxkbmap to swap the Left Shift and Left Control
I used xkb to make this script
partial modifier_keys
xkb_symbols "my_key_remap" {
    replace key <LFSH> { [ Control_L ] };
    replace key <CAPS>  { [ Shift_L ] };
};

This sort of works, but my new shift control doesn't seem to work. When I test with xev, I see that it left shift is mapped to control. However, when I press normal control, xev responds once and then waits for a keyup. but when I use my new shift control, it shows up as left control (although it is still keycode 50) but the key press event fires many times instead of just once like it did for the regular control key.
However, if I add the line replace key <LCTL> { [ Shift_L ] }; (removing the original control key) that that the new shift-control is the only left control, then it works as expected and xev reports that it fires only a single key press event even if I hold the key.
Any ideas?

redpajama_set_name: RedPajamaStackExchange


Mahurangi West is about a 20-minute drive from Orewa or Warkworth and about 10 minutes from Puhoi. We are at the entrance to the Matakana Coast where you will find some of the region's best wineries and restaurants within easy driving distance.
Please be aware that there is a microwave and fridge in your room at our B&B but there is no kitchen; there are no cooking facilities.
Wharf Street Bistro – Warkworth: Fresh meals, local wine in a friendly comfortable environment.
Coast Bites & Brews – "Tapa" sized meals in a relaxed, comfortable environment.


Concerns about Rehoboth's imperiled character have long been spurred by large houses. Now there's a related point of conflict, and this argument holds water.
Rosemarie and Bill Bahan fell in love with Rehoboth for its quainter aspects. After renting "forever," they bought a cottage on Hickman Street 25 years ago, coming from Washington, D.C., on weekends and summers until they retired and moved there full time a decade ago. Bill notes that he and his wife didn't even discuss retiring there; it just went without saying.
Their small three-bedroom cottage, built in 1932, is flanked by similar homes. But Rosemarie points toward two others that are to be torn down and replaced by a much larger, eight-bedroom house. Yet another large home is going up at the other end of the street. Still reeling from a big rental house constructed last year that has brought noise and parking issues to their neighborhood, the couple fear more changes ahead, and more problems. "We lost the community-type atmosphere," Bill says.
It's not an unfamiliar lament. For years, debate has ebbed and flowed over the changing character of Rehoboth, and whether the very qualities that drew so many people here are being harmed, if not destroyed, by the scale of growth and new development. Through zoning regulations, the building code and other ordinances, officials try to balance the competing interests of older and newer residents, of neighborhoods and businesses, and yet the conflict persists, sometimes morphing to an unlikely new form.
The latest fight in this divide is being waged over pools, primarily those constructed at large rental homes — dubbed derisively by opponents as "mini-hotels" — where the day-long (and sometimes late-night) din of splashing, squeals and shouts disturbs the peace of those who could do without it.
In October, the outcry over this issue reached a crescendo, resulting in a six-month moratorium — unanimously passed by city commissioners — on permitting and constructing new pools while the matter is studied further. A consultant and the city leaders will also consider related calls for a "quiet time" ordinance and limits on parking and building size. The hearing that preceded the vote carried echoes of previously voiced arguments for and against restrictions.
On the one side are people like Sharon Palmer-Stauffer, vice president and manager of rental operations at Coldwell Banker Resort Realty, who has 27 years of experience with rental properties. "I don't think the problem is a pool issue," she says. "The problem is a noise issue. They're penalizing people and taking away property rights because of an issue that has nothing to do with a pool." What's more, she adds, is that complaints are relatively rare: "We write about 3,000 leases a year, and maybe get 20 calls a year. That's, like, nothing. And it's usually [a neighbor] protecting the rental property owner," alerting the agency about renters who, say, have a dog in a no-pet home, or are parking on the lawn or are exceeding the occupancy limit.
Palmer-Stauffer, who worries that too much regulation will turn off would-be renters, was the lone person speaking against a moratorium at a September hearing held by Rehoboth commissioners and the city planning commission. But others share her opposition. Dave McCarthy of Rehoboth Property Development is a builder, and he's hired to create what his clients want. These days, they want a lot more than past generations did. As a result, McCarthy feels defensive. Amid the fear and suspicion that all big houses going up now will be rentals with pools, he cites a nine-bedroom house that he built recently for a client: "They have a huge family, an extended family," with whom they want to share that amenity.


Ecentric Payment Systems – Your one stop, omnichannel payments solution partner.
in control of your payments and recon, today and in the future.
Links all your customer channels to the issuers and acquirers for payment and VAS services including instore and online.
Our market leading, single platform enterprise reconciliation solution provides end-to-end automated reconciliation to businesses, recording and accounting for all omnichannel transactions processed.
A payments service to enable businesses to receive online payments from their customers, through various online channels and payment methods.
A combination mobile point of sale (POS), payment and queue busting device, built for enterprise businesses.
The UPG offers a comprehensive suite of business services to collect and pay across customers, suppliers and staff from a single service provider.
A proven, counter-to-counter money transfer service for retailers that allows consumers to send cash to any beneficiary using their preferred channel.
Ecentric provides access to a range of VAS services through the Postilion and our Universal Payments Framework, where we are either the issuing service or we connect to the preferred host.
Watch this space for new and exciting product solutions.
We offer a comprehensive experience and expertise across the payments landscape in SA.
We handle all the one-to-many payment relationships on your behalf.
We are leaders in payment compliance and security.
Want to know more or ready to sign up?


Take six capsules 1-2 times a day with water. Best used before or after exercise.
As the only branched chain amino acid with the ability to directly stimulate muscle protein synthesis, leucine plays a vital role in the growth and repair of lean muscle tissue. It supplies the body with energy during intense physical activity, preserves the glucose used by the muscles to power contraction and helps maintain positive nitrogen balance to speed up recovery.
For maximum benefit, take L-Leucine post-workout to speed up the recovery process. It can also be used pre-workout to optimise physical and cognitive ability during intense activity. Leucine is safe to use daily year-round.
L-Leucine is needed by everyone to maintain basic health and keep the muscles in good repair. Bodybuilders and weight trainers will benefit the most from supplementing their daily intake with this premium product.
No athlete can deny the importance of this branched chain amino acid for muscle building and repair. It is quite simply crucial that you have enough leucine in proportion to the other amino acids in order that your body can make use of the food you eat.
Because it's an essential amino acid, leucine cannot be produced by the body and must therefore be consumed in foods like brown rice and wholewheat bread products. This can be problematic for those who eat few such foods, particularly those on low-carb diets. PHD L-Leucine provides a quick and easy way to maintain your daily intake in a convenient capsule form.


text:
Q: Dúvida em autenticação/autorização baseada em perfís de acesso com WebAPI Asp.Net Core MVC Tenho aqui uma aplicação Windows Forms + Sybase que possui um esquema de autenticação baseado em perfis de acesso. O diagrama do banco de dados é o seguinte:

Na tabela Permissão temos as descrições de todas as funcionalidades do sistema. Se pode acessar o cadastro de clientes, se pode ajustar o estoque, se pode excluir um produto, se pode realizar uma venda, etc.
Na tabela Perfil temos "Gerente", "Vendedor 1", "Vendedor 2", "Administrador", etc.
E a tabela Perfil_Permissao é a entidade associativa das duas tabelas, onde dizemos quais funções cada perfil tem acesso.
E cada usuário tem seu perfil, com as devidas permissões de acesso do perfil.
Estou criando uma WebAPI para esse sistema, mas não estou conseguindo conciliar essa forma de autenticação do sistema atual com as possibilidades de autenticação do Asp.Net MVC.
Gostaria que os authorizes dos controllers e actions se baseassem nesse esquema de permissão para conceder ou não acesso a eles.
Existe alguma forma de adequar esse esquema de permissão de acesso do sistema atual aos "authorize", "policy", "claims", etc, do Asp.Net Core MVC?

A: Nesse formato de permissão por perfil, utilizei as claims para resolver o problema.
É possivel mandar, por exemplo, multiplas claims do tipo "Role", colocando cada uma das permissões nessas claims.
Pode ser usado algo similar a isso:
foreach(Permissao permissao in permissoes)
{
    Claim item = new Claim(ClaimTypes.Role, permissao.Codigo );
    lstClaims.Add(item);
}

E posteriormente a lista de claims é passada para o token utilizado.
...
Subject = new ClaimsIdentity( lstClaims.ToArray() )
...

Foi assim que resolvi.


Picture book documenting: a good way to ease into BIM!
BIM 2015 Reader Survey - Standard Form Documents, Execution Plans and COBie - What's Your Experience?
I wrote the summary of the AIA Digital Documents below a few years back but it responds well to recent questions I received regarding digital protocols generally. Another indispensable instrument, the ConsensusDocs 2015 BIM Addendum , deserves close consideration by any team seeking to develop a practical BIM Protocol. When the AIA updates its digital suite of documents Collaborative Construction will review those new instruments. AIA Digital Documents Summary James L.
BIM 360 Design is Autodesk's cloud worksharing, design collaboration, and data management product for improved project delivery. Document Management module for data management, access controls, and web and mobile collaboration.
A recent study by NBS provides a snapshot of BIM (Building Information Modelling) implementation within the UK's construction industry. BIM_Report_Infographic_2013.
Tanner Clark, the Director of BIM and VDC at Stuart Olson out of Canada was interviewed recently by Bard Shapiro of the Canadian BIM Council. It's good to see adoption of BIM and VDC up north! Stuart Olson: Embracing BIM Welcome to the Golden Rule Alliance James L.
Collaborative Construction Resources, LLC helps owners craft IPD procurement strategies that enable them to acquire BIM enabled infrastructure from integrated teams and helps those teams craft, negotiate and implement integrated agreements. PSU Updates BIM Guides. These documents, like those published by PSU in the past, will prove invaluable to built industry professionals deploying BIM tools in the real world. Nemetschek Vectorworks - 3D BIM Design Software.
GSA's Office of the Design and Construction is currently encouraging, documenting, and evaluating the use of BIM technologies to support facility management and building operations. BIM - Life Cycle Facility Management. BIM Guide Series 08- Facility Management v1.
Have you encountered or used building information modeling (BIM) on any of your projects? Are you interested in BIM but don''t know where to begin? BIM seems to highly regarded by those who have made the transition. Architects and engineers find BIM allows projects to be completed faster while making it easier to make design changes. But BIM may not be suited for all projects, or all construction professionals.
The basic principles of A3 based 'picture book documenting' are not that different from traditional drafting, the aim being to achieve: 1.
As Chair of the National BIM Standard 3.O – NBIMS.US. V3 – Terminology SubCommittee, please note that the long awaited document is now available… if you can download 100+ MB's!


text:
Q: Summing up values for rows per columns starting with 'Col' I have a DataFrame like this:
df =
  Col1  Col2  T3  T5
  ------------------
  28    34    11  22
  45    589   33  66

For each row I want to sum up the total values of columns whose names start with Col.
Is there some more elegant and quick way than the one shown below?
df['total'] = 0
for index, row in df.iterrows():
    total_for_row = 0
    for column_name, column in df.transpose().iterrows():
        if 'Col' in column_name:
            total_for_row = total_for_row + row[column_name]
    row['total'] = total_for_row

A: Try this
idx = df.columns.str.startswith('Col')
df['total'] = df.iloc[:,idx].sum(axis=1)


text:
Noel Gallagher's High Flying Birds At Beacon Theatre, Tuesday, July 5th, 2016, reviewed
Iman Lababedi|July 6, 2016
Noel Gallagher, Oasis
"Didn't you have that thingymabop? How was it? Your firework display? You're not allowed fireworks in New York, is that right? You can buy a fucking rocket launcher and an automatic machine gun, but you can't buy a Roman Candle… that's why we love America". That's Noel Gallagher discussing Independence Day last night at the Beacon Theatre. He is a funny guy, very funny, very smart. This part of Noel was a little hidden with Oasis, Liam was surly and aggressive, all snarl and spit, and Noel backed off into the shadows. But ever since Oasis swam with the fishes, Noel's natural skills as a brutal put down artist, a comedic bullshit detector and a natural front man became apparent. His voice is very strong, not Liam but who is?, Noel can really deliver his songs powerfully, with authority and control. Knocking on 50, he is trim, healthy, better looking than in 1994.
As for his High Flying Birds? Obviously an anonymous force for good, who manage well the patented wall of guitar sound with even the keyboards only visible for a brief solo during "Digsy's Diner" before merging back into the overall melodic roar that is Noel's reason to exist.
So what's not to like? I'll tell ya, I haven't found his songwriting all that since the turn of the century. Listening to him perform the heart of the matter, "Wonderwall" with a "this song paid for all of this", the limits of his post Be Here Now career is absolutely apparent. When Oasis first arrived, with a barrage of superb singles and non-lp-b-sides and one, then, two, masterpieces of filtchered but in the best way possible, 60s and 70s melodies, everyone from the Beatles to the Carpenters and beyond, Oasis thrived because they filtered it through a working class yobbo heads down no nonsense Status Quo Man City Boys Own world of advanced pop rock. By which I mean, they made it their own.
Fast forward 20 years and Noel is doing the same thing with borderline lousy songs. Yeah, "The Mexican" is alright, and yeah "Riverman" is OK, "If I Had A Gun…" was a hit, and the world at large admired his deepening of the guitar hues of Oasis with strings and things. But really, the songs as a whole are about as good as late Oasis, none of which he has touched since he recorded em.
With terrific LCD screens but with around five feet between the band and the edge of the stage, as though they had no idea what to do with it and so ignored the extra room, Noel hit the stage for two hours of melody and guitars –no opening act. Starting with a crap song from the High Flying Birds album, and following it with three more of the same, before a fifth was added in, they sounded great. Like, they weren't great songs but they sounded really nice, very loud but very penetrable. And once Noel had taught us who was boss, he became chatty but in a really good way. Noel spoke enough to keep us laughing, to keep us on our toes. And number six he gives the paying punters "Fade Away" –a somewhat depressing modulated classic. Two songs later and Noel begins to dig the songs out. Liam's Beady Eye band did no Oasis covers, a misguided attempt at a fair hand, my assumption is Liam would've been better with old Oasis. After all, his voice as form is far more important than, say Noel's guitar work. Noel took exactly one solo last night, and it was pretty good, succinct to the point of terseness, but no worse for that.
And, we're off. The first seven songs had one Oasis song, the following nine songs had seven Oasis songs. So, here they come, the legend that is Noel come to life: "Champagne Supernova", "Talk Tonight", "Dyer wannabe A Spaceman" (really, if he wanted to go there, why not "Round Are Way"?), a terrific "Digsy's Diner", "Wonderwall" , the encore was two Oasis songs with a High Flyer in the middle.
For a sound so thick, the atmosphere was very light hearted. Whether telling an eleven year old, that no, the kid wasn't the youngest fan, his four year old son was, "Sorry to piss on your chips" or warning "For those of you were at the Webster Hall gig before who are thinking 'fuck, he's playing the same exact set list', I am," Noel's playful antagonism was fun and very much so. He warns a guy reaching the stage for a drumstick that's fallen. "I will fucking die before you get that. It's mine, I paid for it." All in good humor, all somewhere between rock star over there, me overhere, and me and him in the same place.
Sure, the set was mired with songs that'd aren't all there, and Noel will never be Liam, still, I don't mean to piss on your chips, but I for one thoroughly enjoyed it.
← rock nyc's Top Songs 7-1-16 – 7-7-16
Fergie's M.I.L.F New Video, Hot Moms In Milk Wonderland →


Everything at MatrixOneSource is geared toward delivering a great customer experience, but relying on various PBX hardware systems with frequent breakdowns and constant maintenance costs was making that tough to do. After moving to an integrated VoIP and Contact Center cloud technology with 8x8, the company's service desk achieved a first-call resolution rate of 86% and higher overall customer satisfaction.
When you have the right contact center technology, you can deliver the kind of outstanding support that delights your customers – because problems like limited call volume visibility, long wait times or misrouted calls disappear. Instead, companies get intelligent call routing and real-time metrics that enable them to be more agile and responsive, to better solve customer issues the first time.
What's the right framework to be sure that your contact center training program is an effective coaching tool for support reps? The key is a systematic evaluation process that defines measurable objectives and assesses whether those objectives have actually been met. The benefits are higher agent productivity, quality management, and better overall contact center effectiveness.
Today's contact center technology needs to keep up with demanding customers who expect support reps to understand exactly what they're calling about and how to fix the problem. A seamless customer experience starts with streamlined operations where calls go to the right people who are armed with the collaboration tools to get quick answers, and when managers get analytics insights that pinpoint the 'why' behind a customer's pain or satisfaction.
Companies need a reliable and secure way to integrate their contact center and CRM systems. This enables teams with up-to-date customer information and turns every agent into an expert with the answers to provide highly personalized service via phone, email or chat. Plus, supervisors get real insights into contact center performance and analytics to see how customers are being served across every channel. And that kind of efficiency means high-value customer and employee satisfaction.
Contact a Solutions Expert to learn how 8x8 keeps retailers connected and collaborating.


text:
Remembering our past
Posted bythewheatonrecord February 28, 2019 Posted inFeaturesTags:Santoro Giuggio
Wheaton's mixed legacy on issues of race
By Santoro Guiggio
Wheaton's first president, Jonathan Blanchard was a dedicated abolitionist, a radical who called for racial justice. In a copy of "The Western Citizen and the Free Press" from July 8, 1851, he was listed as the chairman of a Christian anti-slavery conference that sought to "[consider] the duty of the churches in respect to slavery and other palpable sins." For Blanchard, his advocacy for abolition expanded into the use of Blanchard Hall as a stop on the Underground Railroad. In another copy of the same paper from Oct. 7, 1851, Blanchard is reported giving a speech denouncing slavery before the American Missionary Association.
Associate Professor of History Karen Johnson, who specializes in the history of race and religion in 20th century America, complicates this narrative in her article, "Remembering Our Racial Past: Using Institutional Lament to Shape Affections." Johnson writes about how Blanchard harbored some harmful opinions about what to do with the Native Americans who occupied land that the United States wanted to control. He felt that the Native American people needed to be removed from the land, even as he expressed regret about the way American military forces treated them. Blanchard also felt that the Native Americans needed to be "civilized" which "many Native Americans today view … as promoting cultural genocide," according to Johnson.
Discrimination against Native Americans is a part of the story Wheaton College's narrative cannot be told without. As Johnson writes in her article, "the college still sits on Native American land, literally grounded in native soil that American Indians continue to see as their homeland."
As time went on, Wheaton's record on race only grew more complicated. David Malone, the Dean of College and Seminary Library at Calvin College, addresses such issues in his article, "The Wheaton Context." "The emergence of fundamentalism," he writes, "influenced transitions in race relations and skewed the college's founding vision … leaving social efforts to more liberal Christians." During Charles Blanchard's time as Wheaton College's second president, there was growing discrimination against people of color on campus, including the story of Nellie Bryant, a student in the 1910s who was expelled for being African American.
Still, students of color continued to enroll at Wheaton. During an independent study in 2011, former Wheaton student Leah Fulton wrote "Historical Glimpses of Color." Fulton's text records several students of East Asian descent attending the college in the 1920s and 1930s. Another notable student of color at the college in the 1920s was Charles Satchell Morris. However, as Assistant Archivist Keith Call mentions in his Buswell Library Special Collections blog post "Quite an Aristocratic Negro," Morris was no fan of Wheaton College. When asked to donate to the college to help complete Blanchard Hall, he recounted how Charles Blanchard had allowed him to be unfairly expelled from the college dining hall and for that reason he would not contribute even "10 cents to complete Blanchard Hall."
For African Americans in particular, Wheaton was not the most welcoming community in the 1930s and 1940s. According to Fulton's text, in the 1940s Herbert Oliver was the first African American student to graduate from Wheaton since the 1920s. On top of this, several letters between President James Oliver Buswell and Rev. Wyeth Willard in 1939 describe conflict at the college over whether or not to admit an African American woman named Rachel Boone. As Malone notes in his text, there were concerns on the part of college authorities that the school could not serve people of her race. He cites the school's Executive Council as saying that "social problems" would arise from her being accepted by the college.
During the Raymond Edman and Hudson Armerding administrations, changes occurred that began moving the college towards a path of rectifying racial disparities. Malone mentions that President Edman made an unsuccessful attempt to support the National Scholarship Service and Fund for Negros. He also established a committee on race relations that revealed the various forms of discrimination against minority students that were a part of life at Wheaton College.
As Fulton notes in her booklet, during the tenure of Armerding, several initiatives were launched in an effort to encourage minority students to attend Wheaton College. In 1968, a Compensatory Education Program was created to increase educational opportunities for minorities. A copy of the Wheaton Record from May 24, 1968 states that the program involved admitting 12 students (most of whom were black) from low-income areas. The article noted that "the program would waive certain admissions requirements and provide remedial and financial aid where needed."
Unfortunately, the program did not work out as well as its creators had hoped. Fulton mentioned an article that described the program by saying "the idea was good but the methodology was wrong" and that some students even suffered "emotional and psychological wounds" from it. In 1970, the Educational Opportunity Program was established to improve minority enrollment at Wheaton. A decade later, towards the end of Armerding's tenure, the Director of Minority Student Development position was established to help improve the experiences of minorities on campus.
After the end of Armerding's time serving as president in the early 1980s, the college administration and the student body made new efforts to diversify Wheaton College, to celebrate minority cultures and pursue racial reconciliation. To emphasize the importance of diversity, President Richard Chase wrote an article titled "Diversity and Unity," published in the college bulletin's newsletter "InForm" during his second year at the college. This article does not specifically mention race, but it does call for members of the college to remember the unity of all believers in the body of Christ, even in the face of the diversity of the individual members of that body. It also warns of the dangers of simplistic generalizations about and judgments of others. Malone notes in his article that during President Duane Litfin's tenure the college started the African-American Church Lecture Series and even more recently created the Church and Nieves scholarship for Latinx and African American students. Student groups like Gospel Choir (1986), the William Osborne Society (1987) and the Solidarity Cabinet (2006) were also formed during this pivotal time.
Despite these moves toward increasing the diversity of the student body and toward offering greater acknowledgment of and respect for minority students and their cultures, contradictions still characterize Wheaton's relationship with race. Research from 1997, cited in Malone's article, found that the white majority on campus reacted with indifference toward minority groups even if they were not aggressively prejudiced against them. The study claimed that majority students believed "that [racism] is not a problem on a 'friendly campus' like Wheaton's. Such a belief … may be rooted in students' limited definition of racism as the most overt types of prejudice." As members of the college's administration and student body tried to combat racism at Wheaton, this indifference by the white majority represents one of the latest of the contradictions in Wheaton's history of race relations, one that endures to this day.
Since 1997, however, student diversity has increased 11.4 percent. As of 2016, 21.6 percent of Wheaton students were people of color. This was helped by efforts such as the From the Heart for the Kingdom campaign, which ran from 2013 to 2018.
Recent changes have included revisions to the covenant to include relevant language about diversity and community, expansion of the Office of Multicultural Development, engaging in external reviews of campus diversity, creating student leadership training for students of color and intentionally focusing on hiring a more diverse and ethnically varied staff. The Chaplain's Office also made intentional choices to invite more speakers of color to campus for chapel and to hold events to further the discussion of racial and ethnic relations on campus.
Another large step for Wheaton was the creation of the Chief Intercultural Engagement Officer in the Senior Administrative Cabinet (SAC), which was filled by Sheila Caldwell. Caldwell, who received a doctorate in education from the University of Georgia in addition to completing the Harvard Kennedy School Strategies for Building and Leading Diverse Organizations Executive Education program, is the first woman of color to serve on the SAC. She has a vision "to deepen ethnic diversity, promote racial reconciliation, and advance cultural understanding," according to the Wheaton Magazine.
Though Blanchard Hall's official designation as a stop on the Underground railroad in 2012 by President Obama was significant, it was only one event in a long and complicated history of race relations at Wheaton that is still being written today.
Refuge ended in favor of new programs
Envisioning the future


G7th has a 100% commitment to customer satisfaction. If you have a defective capo we will replace it free of charge, anywhere in the world*, all we ask is that you return it to us at the address below. Before you ship your defective capo, please can you contact us to let us know it is coming. Please clearly mark the package as "faulty product - zero value" to avoid unnecessary customs charges.
To register your warranty online please fill out the form below. You can also register by post if you prefer.
*The warranty covers any manufacturing fault or failure of the mechanism during normal use. It is not an insurance policy and does not cover any misuse or accidental damage.
If you wear out the rubber on your Performance or Performance 2 capo then you can purchase a replacement through our online store. For most users, the original rubber will last a lifetime. If you have lost the lower arm rubber from your Newport capo they can also be purchased from our online store.
Anti-Spam - you will not receive more than one issue of the G7th Newsletter in any one month.
The following questions are optional, but we like to know a little more about who uses our capos!


Festive Mexican music floats down the main street of Santa Barbara, California. Conversations drift between English and Spanish, and children hurry past with newly crafted pieces of artwork clutched proudly in their hands. The center of enthusiasm and energy is the front steps and inside galleries of the Santa Barbara Museum of Art (SBMA), where tables overflow with vibrant skull portraits and miniature skeleton figurines.
The reason for such a lively celebration? Dia de los Muertos, the Mexican Day of the Dead.
For the annual event, students from surrounding schools and partnering community organizations create altars filled with "ofrendas," or offerings, that incorporate traditional symbols and elements of different artists represented within the museum. Far from a morbid affair, Dia de los Muertos is about thanking the dead for their contributions and celebrating the cycle of life. This concept should be the very mission of a museum, reminds the SBMA's director of education Patsy Hicks.
Each year, the SBMA provides around 40 art education programs to more than 40,000 people ranging from pre-Kindergarten to senior citizen. Opened in 1941 in a building that was a former post office, the museum now spans 60,000 square feet of galleries, interactive programming areas, and a shop and cafe.
No space goes unused, even the building's front steps. Studio Sundays on the Front Steps are especially popular for families with youngsters. Just as the name implies, SBMA's Teaching Artists conduct a hands-on workshop on the second Sunday of every month. Visitors of all ages can work with mediums like clay, ink, or metal and then receive free entrance to the museum.
The SBMA offers free admission on Thursday nights as well. During the first Thursday of every month, the Family Resource Center hosts an art project based on one of the special exhibits.
The real not-so-hidden gem of the SBMA's programming is its school outreach. In the Young at Art program, elementary school students learn the basic elements of art such as line, color, and shape, and get an introduction to the galleries. Art Express for older students involves hands-on experimentation that links art with Common Core subjects like science and history. Fourth and fifth graders play with art, chemistry, and food in the museum's Art Kitchen. Sixth graders practice the scientific method while exploring Greco-Roman bronze pieces, which is important since the ancient Greeks and Romans are discussed throughout various grade levels, says Hicks.
Many educational programs like Art Express are held at the Ridley-Tree Education Center at McCormick House, just down the road from the museum itself. The 11,500-square-foot facility also houses the SBMA's summer camps and after-school classes. Free busing is provided for school programs, with stipends available for those outside of the Santa Barbara school district. Teenagers can go on to become Teaching Assistants who assist Teaching Artists at educational activities, helping children turn their imaginations into creative masterpieces.
Hicks remembers watching one young boy take his family into the SBMA's elevator. He excitedly pointed out the artwork inside, and the doors closed. By the time the elevator returned to that floor, the family was still inside. They weren't lost. They were viewing the museum's Going Up gallery, which features artwork from school and community programs.
The SBMA doesn't leave out educating the educators either. Workshops and Educator Open Houses introduce teachers to the power of creative learning. Attendees discuss visual thinking strategies, and learn how art can serve as a basis for topics across the curriculum such as writing, history, and science.
The SBMA also embodies the classic adage that you're never too old to learn something new. Adult events range from ceramics classes to performances and lectures. Since the museum shares its rear plaza with the Santa Barbara Public Library, literacy serves as the basis for programs like Parallel Stories, which pairs writers with artists for public discussions about the artmaking process.
The SBMA's tireless efforts were recognized in 2015 when the nonprofit evaluator Charity Navigator recognized it as a "Four Star Charity." It received the second highest rating among the country's art museums–behind the Metropolitan Museum of Art–and ranked fourth nationwide among museums of all arts, cultural, and humanities organizations.
None of these current programs and future improvements would be possible with support from the museum's partners, including the Audrey Hillman Fisher Foundation. The SBMA receives less than one percent of its budget from government grants, and uses about 20 percent of every dollar for educational programs.


text:
Please purchase a subscription to read our premium content. If you have a subscription, please log in or sign up for an account on our website to continue.
Viewed of
Welcome! We hope that you enjoy our free content.
Thank you for reading! On your next view you will be asked to log in to your subscriber account or create an account and subscribepurchase a subscription to continue reading.
Thank you for signing in! We hope that you continue to enjoy our free content.
Checking back? Since you viewed this item previously you can read it again.
Your current subscription does not provide access to this content.
Monthly Digital Access
99 Cents/Month for 2 Months
Sign up for a trial offer of 99 cents per month for the first two billing cycles. After that, the rate will be $5.00 per month.
$0.99 for 30 days
.99 Cents/Month for 2 Months. $0.99 for 30 days
Monthly Access - Following Promo Rate $5.00 for 30 days
Yearly Digital Access
Get three months of digital access free by purchasing a yearly subscription.
Sorry, no promotional deals were found matching that code.
Promotional Rates were found for your code.
do not remove
Lake Oconee Living
The Common Threads Tying Together the NFC's Unfamiliar Finalists
A look back at 2022: A year in review
Top events and celebrations of 2022
Top Sports Stories of 2022
2022 Wrapped: A look back at our most popular stories
The Eagles and 49ers don't have much recent history together, but they're linked by how they were built. Plus, the injuries that could affect the AFC championship and why Travis Kelce is so hard to cover.
Four teams and three games left. Let's go …
• The 49ers and Eagles have faced off just twice over the last five seasons—the Niners beat the Eagles in Philly in Sept. 2021, and the Eagles beat the Niners in Santa Clara in Oct. 2020. So for both teams, there's going to be a bit of a learning curve this week.
That was reflected when I asked Fred Warner on Sunday what he knows about the Eagles.
"Not much," Warner responded. "Obviously from afar, they look like a heck of a team. I gotta watch the tape but I got a lot of respect for their team as a whole, and especially their offense, great O-line, great receivers, great running back, running quarterback. You can't draw it up any better than that."
One commonality here: Both teams have quarterback on rookie contracts, and loaded rosters around them. Another commonality? Both have cap numbers pushed to the future. The Eagles have just two eight-figure cap numbers this year. That number will grow to five next year. Similarly, the Niners have four this year, and will have seven next year. So both are built for the here and now. (We'll have more on the roster construction of the four conference finalists a little later in the week).
The 49ers and Eagles have both been led to the NFC championship by quarterbacks on rookie contracts.
Cary Edmondson/USA TODAY Sports (Purdy); Bill Streicher/USA TODAY Sports (Hurts)
• On the other side of the ledger, there's a ton of familiarity—Sunday's AFC title game will be the fourth game between the Chiefs and Bengals over the last 13 months, with Joe Burrow and Cincinnati having won the previous three. And on both sides, there are significant injuries to keep an eye on.
Obviously, for the Chiefs, the question will be what version of Patrick Mahomes will take the Arrowhead field, just eight days after he suffered a high ankle sprain.
For the Bengals, the questions hover, really, over their entire offensive line. La'el Collins is out with a torn ACL. The status of left tackle Jonah Williams and right guard Alex Cappa remains up in the air. So the Bengals might have to win a second straight playoff game down three starting offensive linemen.
The good news is that the Bengals got better-than-expected play from young tackles Hakeem Adeniji and Jackson Carman in Buffalo on Sunday. And there's promise, since the former is a third-year player and the latter is a second-year guy, that the performance against the Bills is a sign of real progress, which would speak well of the work of Zac Taylor's staff, and in particular line coach Frank Pollack, in developing the young guys.
Remember, Carman and Adeniji were seen as part of the problem last year, ahead of the Bengals completely blowing up and starting over on the offensive line. So credit the Bengals with sticking with those guys, and those guys for keeping their heads up through that.
"Guys get better every year that passes," Taylor told me. "It's hard for young guys to come in here and play ball, and what Cordell Volson is doing right now is not the norm, to come in here and just play high-level from the get-go. It takes time, it takes patience, and that's what these guys have done. They've just stayed the course. And now, when the moment calls for them, they've stepped up and delivered for us."
So maybe the Bengals will be O.K. either way?
• I thought Warner would have good insight into Brock Purdy, given that he faced Purdy plenty in practice over the last few months when Purdy was running the scout team, and perhaps what's been at work in having him start his career with seven straight wins. On Sunday, Purdy will become the first rookie QB to start a conference title game in 13 years, and the fourth to do so since 2000 (joining Ben Roethlisberger, Joe Flacco and Mark Sanchez).
"He's handled it great," Warner said. "Great poise and he's done what is needed to win football games, obviously. And he doesn't have to do too much, just gotta continue to protect the ball and make the plays when they're there."
Purdy, in many ways, is doing just what Roethlisberger, Flacco and Sanchez did, playing an efficient game that allows an otherwise loaded roster to lean into its strengths. Purdy's numbers were pedestrian against the Cowboys. He completed 19-of-29 throws for 214 yards and an 87.4 rating.
But look closer at the numbers and you'll see the other thing Warner's getting at, Purdy's making plays when they're needed—he was 8-of-11 for 64 yards on third down Sunday, and the Niners easily outperformed the Cowboys as a team on third down (50%–33%).
• I saw enough "Might wanna cover 87" tweets on Saturday to be motivated to ask someone with the Chiefs why it's so hard for defenses to get a handle on Travis Kelce. And it was interesting to hear Chad Henne, when I went to the backup quarterback on it, point back to Kelce's experience as a high school quarterback.
"I mean, obviously he's elusive and he's shifty, but at the same time, he sees the field like a quarterback," said Henne. "So he sees the defense, he knows exactly who he's working off of, at all times, and that's what makes him so open. He just attacks the leverage, he kind of studies what he's done in previous games, and he plays it off that, and gives himself different looks and sets up his routes that way.
"But like I said, he sees it like a quarterback, especially in zone coverages, he knows the holes that he's supposed to get into. And we give him that freedom. Coach Reid always says Hey, even in motions, you need to get off if they're going to jam you. Just get where you need to be. We know you're going to be in the right spot."
Kelce, of course, almost always is.
• One last thing on the college declarations, and the decisions these kids have to make—I actually think that both C.J. Stroud and Blake Corum made the right calls on their futures, and I say that even though it hurt my alma mater and helped our rivals.
To me, the contrast between the two perfectly illustrates how layered these decisions are.
Stroud plays the most valued position on the field, and is coming off arguably his best game as a collegian. Seven of the top nine teams in the draft order have some level of need for a young quarterback. And this year, he'll be competing with Bryce Young, Will Levis and Anthony Richardson for draft position, where next year he'd be up against Caleb Williams and Drake Maye, and Quinn Ewers and a few others could leap to that elite level in the fall.
Bottom line, he's got less competition, a bevy of quarterback-needy teams picking high, and the potential for somewhere between $22 million (the 10th pick) and $41 million (the first pick) fully guaranteed, numbers that dwarf whatever he could reap in NIL money, even at a college football blue blood like Ohio State.
Conversely, Blake Corum plays a devalued position, and is coming back from a full meniscus repair that'll sideline him at least into May. What's more, while he was hyper-productive in 2022, the biggest question he faced going into the draft cycle was just how fast he actually is at 210 pounds. So not being able to run at combine or pro day would've been a real problem for him. And so it'd have been hard for him to distinguish himself among a glut of potential Day 2 backs in position to go behind Bijan Robinson and Jahmyr Gibbs.
Adding all that up, it's fair to see a scenario where Corum would've slid well into Day 3, and might have lost a guarantee of making someone's roster, with the knee surgery complicating his ability to fight for a role in the spring and summer. Also, at that point, there would certainly be a chance that he'd make more in NIL money as a returning hero in Ann Arbor than he would as an end-of-the-roster rookie in the NFL.
So, in the end, I think both Stroud and Corum made the right decisions. And their circumstance should show everyone how much goes into making them.
• I'm not so sure Houston and Carolina aren't better situations for Sean Payton than Denver and Arizona. In the latter two, you have an expensive quarterback with injury concerns coming off a bad year, a tight salary cap situation and, in Denver's case, a dearth of 2023 picks.
Meanwhile, Carolina has a really solid base of young talent, a top-10 pick and seven picks in the first five rounds (albeit with a tight cap situation). And in Houston, you'd have two first-round picks in each of the next two years, including two inside the top 15 this year, plus over $40 million in cap space and some nice young pieces that made the team competitive enough down the stretch to play its way out of the first overall pick.
Now, I'd say geographically, both Arizona and Denver have an edge, because I do think Payton likes being out west. But there's a lot to think about here from a football perspective, enough so to where Payton taking another year off is a possibility.
• The Jeff Bezos story in the New York Post is an interesting one. It is true that perception among NFL owners has been that Dan Snyder hates the Washington Post enough to the point where he'd refuse to sell the team to Bezos. And if the New York Post is correct, that Bezos would sell the Washington Post to fix that problem, then things would get pretty interesting for Snyder.
Plenty of owners would like to have Bezos among their ranks, but some assumed that he'd wait for the Seahawks to come available before buying a team. If Bezos wants the Commanders, I'd guess some owners (maybe one in north Texas) would try and persuade Snyder to sell to him.
• That the Ravens would claim Lamar Jackson's cousin, Trayvon Mullen, off waivers is at least interesting, if nothing else. Trust is, and has been, an important part of keeping this years-long negotiation from getting ugly. And so my guess is if this is an olive branch from team to player ahead of the sides heading back to the table, it'd be appreciated.
• The Colts' process has been informative in what owner Jim Irsay's intentions with the team are going forward—GM Chris Ballard has been running the interviews, which would seem to indicate he's safe regardless of who the team hires. Also involved in the interviews have been director of team development Brian Decker, vice chair Carlie Irsay-Gordon (Jim's daughter) and PR and HR staffers.
• Finally, it does feel like ex-Lions and Colts coach Jim Caldwell has gotten some traction through the last few weeks. I wouldn't be surprised if Carolina and/or Denver bring him back for second interviews. And I'd also keep an eye on Frank Reich with the Panthers if Carolina can't land Sean Payton.
Morgan County man charged with animal cruelty after dead, emaciated dogs found in yard
Masonic Lodge to hold fundraiser for family who lost father in fire
Shoplifting arrest leads to discovery of 37 pounds of marijuana
Madison Police Department reports
Crucial permits approved to expand work at Rivian site
Morgan County Citizen
morgancountycitizen.com
259 N 2nd St.
Madison, GA 30650
Email: info@morgancountycitizen.com
© Copyright 2023 Times-Journal Inc., 259 N 2nd St. Madison, GA | Terms of Use | Privacy Policy


text:
REVIEW: "Warcraft"
June 15, 2016 by Keith
Certain films enter theaters already burdened under the weight of negativity. "Warcraft" was immediately met with a barrage of snarky ridicule and dismissive criticism. To be fair the horrible track record of video game-based movies is enough to warrant a good measure of hesitation. At the same time the snooty, cavalier approach to the film by many critics was predictable. The presumed shallowness of video games and the condescending attitudes towards anything related to them showed in many of the more ferocious reviews some of which compared this film to the likes of "Battlefield Earth".
Despite what many may say, storytelling and world building in video games and in movies isn't that different. The evolution of the platform has allowed writers and developers to craft engaging narratives and immersive experiences within their games. And just like movies some hit their target while others wildly miss their mark.
Director Duncan Jones brings a special level of intrigue to "Warcraft". He is a filmmaker who received high marks for his films "Source Code" and "Moon". But he also comes from a video game background. In an interview Jones revealed a deep passion for the video game space and a knowledge that attracted him to the "Warcraft" property. This affection works heavily to the advantage of Warcraft fans who will easily identify Jones' respect for the source material. Those unfamiliar with this universe will find it more challenging depending on your expectations. I am versed in the Warcraft universe, just not heavily versed, and I had no problem navigating the world Jones and co-writer Charles Leavitt put together.
"Warcraft's" ambition reaches beyond a single film. It clearly sets itself up as a series which handcuffs this film to the normal first installment issues. We get a lot of table-setting and we get information dumps aplenty. Many characters are introduced and sometimes the sheer number of them can be overwhelming. At first it can be a struggle to see where everyone fits in, but over time each finds their place within the story. All of this contributes to what is unquestionably a setup movie, yet I quickly found myself engaged in its hyper-fantasy landscape.
A big reason for that engagement is due to Jones' heavy focus on character development. It doesn't do every character justice but for the most part it adds more depth than expected. It offers the mandatory introductions but also tries to define the characters' personalities and their motivations. Unfortunately it tries to juggle too many which leaves some characters and relationships underserved. Side stories also fall victim to the film's attempt at tackling too much. It felt like certain plot lines needed more attention, but at the same time their inclusion showed a clear desire to offer more than the usual shallow story and even shallower characters.
It could also be said that some of characters aren't helped by the casting and performances. Ben Schnetzer instantly comes to mind. His portrayal of a young ostracized mage gets better as the film progresses, but is really rough early on. There is also the odd casting of Ben Foster as mystical Guardian named Medivh. He never seems completely comfortable with his character. While others also show some inconsistencies, Tobey Kebbell certainly does not. Here he once again amazes in a motion capture role. He plays a respected Orc chieftain and a new father named Durotan. He is the most compelling character even though Travis Fimmel is the closest thing to a lead role.
As a whole the story has an entertaining messiness to it that mixes well with my appreciation for the source material. But it should be said that the messiness never leads to incoherence (as some have suggested). The plot is very straightforward and the side ventures into the world's composition never derail the simplicity of the main story. As I mentioned, some side stories and relationships deserve more attention, but Jones does a good job of spelling out their relevance to the world and his main story.
I also think the film looks really good. Sure, a CGI-heavy movie like this has moments where the effects are not top form, but much of it serves the fantasy world well. The orcs look spectacular in both appearance and motion capture quality. The world's locales were also presented vividly and with unique character. Perhaps the worst visuals were in the real life costumes. The human armor is noticeably flimsy and fake. But as a whole the movie presents some wonderful visuals.
Strangely "Warcraft" is a film with noticeable flaws that should significantly hurt it yet doesn't. It is another popular punching bag for critics yet I still found it to be fun and entertaining. Perhaps it is my affection for the video game franchise. Maybe it is my love for the corny 80's fantasy pictures like "The Ice Pirates" and "Krull". The question becomes how does this film work for those without that lighthearted connection? So far it doesn't seem very well. That's unfortunate because "Warcraft" actually deserves better.
VERDICT – 4 STARS
This entry was posted in Movie News and Articles. Bookmark the permalink.
← REVIEW: "Poltergeist" (2015)
REVIEW: "The Mortal Storm" →
40 thoughts on "REVIEW: "Warcraft""
le0pard13 says:	 June 15, 2016 at 12:29 pm
Good to hear. I think Duncan Jones is a wonderful up-and-comer.
Keith says:	 June 15, 2016 at 3:07 pm
I liked it. I'll give critics this, there are some flaws. But I really had fun with this.
meezookeewee says:	 June 15, 2016 at 2:11 pm
You went easier on this one than I did. I don't disagree with many of your points, but the fact is, is that the movie threw a ton of stuff at you, and if you weren't familiar with the game/s, there was a very strong possibility of you getting lost in regards to what's going on. For me, the movie hits every mark with flying colors except where it matters most: The story and character development. The Orcs were awesome, but the human characters were…meh. The movie feels incomplete to me. For a movie with a run time of 2 hours, it feels like they cut out a lot of important character moments that would have made the movie a lot better. Don't get me wrong, Warcraft is quite possibly the best video game-based movie since Mortal Kombat, but the whole thing reeks of studio interference. I'm expecting an extended cut of the film to hit home video in September/October. I really do hope a sequel gets made, because there's a LOT of potential here, especially if Duncan Jones comes back. He's the reason the movie didn't flat out suck, I think.
You hint at something that has me thinking. If they had allowed another 20 minutes I really think some of the characters could have been fleshed out a bit more. More time could have been given and I think the movie would have been stronger.
For a fantasy movie, a three hour run time really shouldn't bother a lot of people. Look at Lord of the Rings. I know comparing Warcraft to LOTR is kind of silly, but the more run time the movie has, the more room it has to breathe and get everything out. Now, a three-hour video game movie would definitely put people on edge, I understand, but this is the kind of video-game movie that would work with a longer run time.
You're so right. Especially one building itself as a series.
mikeyb @ screenkicker says:	 June 15, 2016 at 5:42 pm
I like you even more after you referenced Krull! I liked the sincerity of this film. It took its storyline seriously and made a real attempt at building the world. And I agree Toby Kebbel is the best thing about it. He never disappoints.
I'm just glad someone else remembers Krull! 🙂 Kebbel is superb. That guy amazes me.
ninvoid99 says:	 June 15, 2016 at 8:26 pm
I'm going to wait for it when it comes on TV. Besides, I like Duncan Jones' work as a filmmaker and await for his next one which I heard is a smaller yet more interesting film. Plus, I don't want to rush to the theaters and end up not liking it as I wanna give the guy a break. He just his dad. We love his dad.
Lost his dad. You know who his father is?
Isn't he David Bowie's son?
Yes, Duncan Zowie Heywood Jones.
Oh wow!!! I didn't know the actual name!!!
Well, when you love someone as much as Bowie. You have to know these things.
May be a wise move. I do think it actually looks great on the big screen, but others have even slammed its visuals.
cineflek says:	 June 15, 2016 at 9:48 pm
That's a surprisingly good review! I thought it was decent considering what he was working with, but Duncan Jones should be doing much more interesting movies. After Moon and Source Code I think he should stick to the middle-budget cerebral sleeper hits. But I guess it's hard to stay as consistently awesome as his father!
Ethan Colburn, Cineflek
http://www.cineflek.com
I also think his inner-geek contributed to him taking the project. Turns out he is a big video game player.
Stu says:	 June 16, 2016 at 1:34 am
Interesting read. It got some OK/good notices over here before all those negative reviews in the US, as it was released a week earlier. I was surprised by the level of vitriol sent its way, but I haven't seen it yet, so can't really comment any further. I hope to catch it in the next week or so while it's still around.
Again, it has noticeable flaws but I genuinely enjoyed what it was doing. But over here it became the fashionable movie punching bag.
Nostra says:	 June 16, 2016 at 2:59 am
That's a very positive review Keith. Personally I wasn't engaged at all by it and never felt an emotional connection to it. In my review I did state that I thought if this movie had been half an hour longer it might have been better as it would have allowed to give the characters more background/depth.
You're the second reader to mention that and I 100% agree. Great observation. I look forward to checking out your full thoughts on it.
Brittani says:	 June 16, 2016 at 7:09 am
Even though I had no intentions of seeing it, I'm kind of bummed critics are ripping it apart just because I love Duncan Jones and wanted him to succeed. I also know a lot of people who loved WoW, so I figured it would've had a massive audience going in.
I definitely deserves better. Some of the heat is over the top. Comparing it to Battlefield Earth? Insanity.
Khalid Rafi says:	 June 16, 2016 at 3:17 pm
We have different opinions on this one and while I think you make valid points in favor of the movie, I really could not get into it. The messiness of it all just didnt sit well with me and most of the time I was just really bored. Glad you had a better time with i.
And I understand. I do think it comes down to whether or not the movie is able to connect with you enough so that you can overlook it's faults.
Zoë says:	 June 17, 2016 at 1:42 am
Fantastic review, Keith! So glad to see you enjoyed it so much. I was going to see this with my hubby, but he ended up going with a friend. He played WoW for years, so he was obviously interested, and he enjoyed it. I am looking forward to a DVD/Blu-Ray release so that I, too, can catch up. I am interested to see how they Warcraft lore is brought to the screen, because in the games it is fascinating.
So he liked it too? That's really cool. Was he impressed with how they brought the world to life?
Yeah, he quite liked it, thought it looked cool and all that, though he said there were some issues. He's interested to see where they take it, so they got that right at least xD Glad he liked it, looking forward to catching it eventually, too.
Jenna and Allie (@FlickChicksBlog) says:	 June 17, 2016 at 8:16 am
I still haven't had the chance to see this yet but I will do very soon! I'm a long term World of Warcraft player but never played Warcraft itself, so this is semi-new territory for me. It's a shame the critics are bashing it so hard, but I can't say I'm surprised!
– Allie
You're right. Not surprising. It is a shame though. It has flaws but it is a lot of fun and it lays the groundwork for a solid franchise. Hopefully the good reception overseas will help us to get another film.
Caz says:	 July 4, 2016 at 2:32 am
I felt pretty much the same Keith. I didn't have much knowledge of the video game, so came from that point of view and found myself engaged in the characters. Totally agree about Ben Foster though he was such a strange choice! Glad to read a positive review!
Keith says:	 July 4, 2016 at 2:38 am
And I'm just as glad to hear a positive response! 😉 I really think don't think this film deserves the drumming it has received. Sure it has some flaws, but I found it to be a really fun time. Do you think we will ever get that sequel?
I very much doubt it which is such a shame as it left me wondering what was going to happen next.
Keith says:	 July 4, 2016 at 11:57 am
I think the only hope lies in the overseas numbers. The US audience didn't come out but the numbers in other territories have been good. It was a sensation in China. Hopefully those numbers are enough to get us a sequel. But I don't know.
Caz says:	 July 4, 2016 at 12:40 pm
I guess the amount made will determine it in the end!
Keith says:	 July 4, 2016 at 5:21 pm
Probably so. I don't know though. Fingers crossed.
bdk says:	 September 12, 2016 at 8:52 am
Interesting and good review
Keith says:	 September 12, 2016 at 3:26 pm
Thank you. This definitely didn't get a lot of praise but I enjoyed it for what it was.
MovieManJackson says:	 May 20, 2017 at 7:28 pm
Dude, I thought of this post as I composed my King Arthur: Legend of the Sword thoughts. That is another movie that is getting more hate than it deserves. I actually think it is a fun epic summer fantasy, not without its problems, but still predominately fun.
Keith says:	 May 24, 2017 at 3:50 am
Really? I'm glad to hear that. I may just give it a chance then. I recently bought Warcraft on blu-ray. I'm actually anxious to see it again.


text:
Q: App unfortunately stops I am receiving "App has unfortunately stopped" error. I am using parse so I am assuming the issue lies somewhere within that.
This is the java file that I causes the error when i try loading it
public class NewTipActivity extends Activity {

private Tip tip;

@Override
protected void onCreate(Bundle savedInstanceState) {
   tip = new Tip();
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.onCreate(savedInstanceState);

    //New Tip Fragment
    setContentView(R.layout.activity_new_tip);
    FragmentManager manager = getFragmentManager();
    Fragment fragment = manager.findFragmentById(R.id.fragmentContainer);

    if (fragment == null) {
        fragment = new NewTipFragment();
        manager.beginTransaction().add(R.id.fragmentContainer, fragment)
                .commit();
    }

}

public Tip getCurrentTip() {
    return tip;
}
}

This is the logCat
Caused by:

java.lang.IllegalArgumentException: cannot setReadAccess for a user
  with null id at com.parse.ParseACL.setReadAccess(ParseACL.java:308) at
  com.parse.ParseACL.getDefaultACL(ParseACL.java:61) at
  com.parse.ParseObject.setDefaultValues(ParseObject.java:3385) at

Tip class (This is where the getAuthor() needs to be declared) but I am having a serious block and can't figure this out.
package com.holyapp.danshinn.wingman_etiquette;
import com.parse.ParseClassName;
import com.parse.ParseObject;
import com.parse.ParseUser;
import com.parse.ParseFile;

    @ParseClassName ("Tip")
    public class Tip extends ParseObject {

        public Tip(){
           // a default constructor is required
        }

        public String getTitle() { return getString("title"); }

        public void setTitle(String title) { put("title", title); }

        public ParseUser getAuthor() { return getParseUser("Author");}

        public void setAuthor(ParseUser user) { put("Author", user);}

        public String getRating(){return getString("rating");}

        public void setRating(String rating) { put("rating" , rating);}

}

A:
Caused by: java.lang.IllegalArgumentException: cannot setReadAccess for a user with null id at com.parse.ParseACL.setReadAccess(ParseACL.java:308)

User has a null id.

com.holyapp.danshinn.wingman_etiquette.Tip.(Tip.java:17) at com.holyapp.danshinn.wingman_etiquette.NewTipActivity.onCreate(NewTipActivity.java:20)

Those are the lines where you're having your issue. Please avoid posting broad questions like this. For details on what makes a good and bad question on SO, check out the official SO guidelines. Specifically,

Pretend you're talking to a busy colleague and have to sum up your entire question in one sentence: what details can you include that will help someone identify and solve your problem? Include any error messages, key APIs, or unusual circumstances that make your question different from similar questions already on the site.

and, relating to titles:

If you're having trouble summarizing the problem, write the title last
  - sometimes writing the rest of the question first can make it easier to describe the problem.
Examples:
Bad: C# Math Confusion
Good: Why does using float instead of int give
  me different results when all of my inputs are integers?
Bad: [php]
  session doubt
Good: How can I redirect users to different pages based
  on session data in PHP?
Bad: android if else problems
Good: Why does
  str == "value" evaluate to false when str is set to "value"?


text:
namespace chromeos {

TEST(FileAccessPermissionsTest, FileAccessChecks) {
  base::FilePath good_dir(FILE_PATH_LITERAL("/root/dir"));
  base::FilePath bad_dir(FILE_PATH_LITERAL("/root"));
  base::FilePath good_file(FILE_PATH_LITERAL("/root/dir/good_file.txt"));
  base::FilePath bad_file(FILE_PATH_LITERAL("/root/dir/bad_file.txt"));

  url::Origin extension1_origin =
      url::Origin::Create(extensions::Extension::GetBaseURLFromExtensionId(
          "ddammdhioacbehjngdmkjcjbnfginlla"));
  url::Origin extension2_origin =
      url::Origin::Create(extensions::Extension::GetBaseURLFromExtensionId(
          "jkhdjkhkhsdkfhsdkhrterwmtermeter"));
  url::Origin app_origin = url::Origin::Create(GURL("chrome://file-manager"));

  FileAccessPermissions permissions;
  // By default extension have no access to any local file.
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, bad_file));

  // After granting file access to the handler extension for a given file, it
  // can only access that file an nothing else.
  permissions.GrantAccessPermission(extension1_origin, good_file);
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_dir));
  EXPECT_TRUE(permissions.HasAccessPermission(extension1_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, bad_file));

  // After granting file access to the handler extension for a given directory,
  // it can access that directory and all files within it.
  permissions.GrantAccessPermission(extension2_origin, good_dir);
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_dir));
  EXPECT_TRUE(permissions.HasAccessPermission(extension1_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, bad_file));
  EXPECT_TRUE(permissions.HasAccessPermission(extension2_origin, good_dir));
  EXPECT_TRUE(permissions.HasAccessPermission(extension2_origin, good_file));
  EXPECT_TRUE(permissions.HasAccessPermission(extension2_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, bad_file));

  // Finally, after granting permission to the app for the given directory
  // it can access that director all all files within it.
  permissions.GrantAccessPermission(app_origin, good_dir);
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_dir));
  EXPECT_TRUE(permissions.HasAccessPermission(extension1_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, bad_file));
  EXPECT_TRUE(permissions.HasAccessPermission(extension2_origin, good_dir));
  EXPECT_TRUE(permissions.HasAccessPermission(extension2_origin, good_file));
  EXPECT_TRUE(permissions.HasAccessPermission(extension2_origin, bad_file));
  EXPECT_TRUE(permissions.HasAccessPermission(app_origin, good_dir));
  EXPECT_TRUE(permissions.HasAccessPermission(app_origin, good_file));
  EXPECT_TRUE(permissions.HasAccessPermission(app_origin, bad_file));

  // After revoking rights for extensions, they should not be able to access
  // any file system element anymore.
  permissions.RevokePermissions(extension1_origin);
  permissions.RevokePermissions(extension2_origin);
  permissions.RevokePermissions(app_origin);
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension1_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(extension2_origin, bad_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_dir));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, good_file));
  EXPECT_FALSE(permissions.HasAccessPermission(app_origin, bad_file));
}

}  // namespace chromeos

redpajama_set_name: RedPajamaGithub