text:
<?php

namespace CodeIgniter;

use CodeIgniter\Config\Services;
use CodeIgniter\Router\RouteCollection;
use CodeIgniter\Test\CIUnitTestCase;
use CodeIgniter\Test\Mock\MockCodeIgniter;
use Config\App;
use Config\Modules;
use Tests\Support\Filters\Customfilter;

/**
 * @backupGlobals enabled
 *
 * @internal
 */
final class CodeIgniterTest extends CIUnitTestCase
{
    /**
     * @var CodeIgniter
     */
    protected $codeigniter;

    protected $routes;

    protected function setUp(): void
    {
        parent::setUp();
        $this->resetServices();

        $_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1';

        $this->codeigniter = new MockCodeIgniter(new App());
    }

    protected function tearDown(): void
    {
        parent::tearDown();

        if (count(ob_list_handlers()) > 1) {
            ob_end_clean();
        }
    }

    public function testRunEmptyDefaultRoute()
    {
        $_SERVER['argv'] = ['index.php'];
        $_SERVER['argc'] = 1;

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('Welcome to CodeIgniter', $output);
    }

    public function testRunClosureRoute()
    {
        $_SERVER['argv'] = ['index.php', 'pages/about'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/pages/about';

        // Inject mock router.
        $routes = Services::routes();
        $routes->add('pages/(:segment)', static function ($segment) {
            echo 'You want to see "' . esc($segment) . '" page.';
        });
        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('You want to see "about" page.', $output);
    }

    public function testRun404Override()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        // Inject mock router.
        $routes = Services::routes();
        $routes->setAutoRoute(false);
        $routes->set404Override('Home::index');
        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('Welcome to CodeIgniter', $output);
    }

    public function testRun404OverrideByClosure()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        // Inject mock router.
        $routes = new RouteCollection(Services::locator(), new Modules());
        $routes->setAutoRoute(false);
        $routes->set404Override(static function () {
            echo '404 Override by Closure.';
        });
        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run($routes);
        $output = ob_get_clean();

        $this->assertStringContainsString('404 Override by Closure.', $output);
    }

    public function testControllersCanReturnString()
    {
        $_SERVER['argv'] = ['index.php', 'pages/about'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/pages/about';

        // Inject mock router.
        $routes = Services::routes();
        $routes->add('pages/(:segment)', static fn ($segment) => 'You want to see "' . esc($segment) . '" page.');
        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('You want to see "about" page.', $output);
    }

    public function testControllersCanReturnResponseObject()
    {
        $_SERVER['argv'] = ['index.php', 'pages/about'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/pages/about';

        // Inject mock router.
        $routes = Services::routes();
        $routes->add('pages/(:segment)', static function ($segment) {
            $response = Services::response();
            $string = "You want to see 'about' page.";

            return $response->setBody($string);
        });
        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString("You want to see 'about' page.", $output);
    }

    public function testControllersRunFilterByClassName()
    {
        $_SERVER['argv'] = ['index.php', 'pages/about'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/pages/about';

        // Inject mock router.
        $routes = Services::routes();
        $routes->add('pages/about', static fn () => Services::request()->url, ['filter' => Customfilter::class]);

        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('http://hellowworld.com', $output);
    }

    public function testResponseConfigEmpty()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        $response = Services::response(null, false);

        $this->assertInstanceOf('\CodeIgniter\HTTP\Response', $response);
    }

    public function testRoutesIsEmpty()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        // Inject mock router.
        $router = Services::router(null, Services::request(), false);
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('Welcome to CodeIgniter', $output);
    }

    public function testTransfersCorrectHTTPVersion()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        $_SERVER['SERVER_PROTOCOL'] = 'HTTP/2.0';

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();

        $response = $this->getPrivateProperty($this->codeigniter, 'response');

        $this->assertSame('2.0', $response->getProtocolVersion());
    }

    public function testIgnoringErrorSuppressedByAt()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        ob_start();
        @unlink('inexistent-file');
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('Welcome to CodeIgniter', $output);
    }

    public function testRunForceSecure()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        $config = new App();

        $config->forceGlobalSecureRequests = true;

        $codeigniter = new MockCodeIgniter($config);

        $this->getPrivateMethodInvoker($codeigniter, 'getRequestObject')();
        $this->getPrivateMethodInvoker($codeigniter, 'getResponseObject')();

        $response = $this->getPrivateProperty($codeigniter, 'response');
        $this->assertNull($response->header('Location'));

        ob_start();
        $codeigniter->useSafeOutput(true)->run();
        ob_get_clean();

        $this->assertSame('https://example.com/', $response->header('Location')->getValue());
    }

    public function testRunRedirectionWithNamed()
    {
        $_SERVER['argv'] = ['index.php', 'example'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/example';

        // Inject mock router.
        $routes = Services::routes();
        $routes->add('pages/named', static function () {
        }, ['as' => 'name']);
        $routes->addRedirect('example', 'name');

        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();
        $response = $this->getPrivateProperty($this->codeigniter, 'response');
        $this->assertSame('http://example.com/pages/named', $response->header('Location')->getValue());
    }

    public function testRunRedirectionWithURI()
    {
        $_SERVER['argv'] = ['index.php', 'example'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/example';

        // Inject mock router.
        $routes = Services::routes();
        $routes->add('pages/uri', static function () {
        });
        $routes->addRedirect('example', 'pages/uri');

        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();
        $response = $this->getPrivateProperty($this->codeigniter, 'response');
        $this->assertSame('http://example.com/pages/uri', $response->header('Location')->getValue());
    }

    /**
     * @see https://github.com/codeigniter4/CodeIgniter4/issues/3041
     */
    public function testRunRedirectionWithURINotSet()
    {
        $_SERVER['argv'] = ['index.php', 'example'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI'] = '/example';

        // Inject mock router.
        $routes = Services::routes();
        $routes->addRedirect('example', 'pages/notset');

        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();
        $response = $this->getPrivateProperty($this->codeigniter, 'response');
        $this->assertSame('http://example.com/pages/notset', $response->header('Location')->getValue());
    }

    public function testRunRedirectionWithHTTPCode303()
    {
        $_SERVER['argv'] = ['index.php', 'example'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI']     = '/example';
        $_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1';
        $_SERVER['REQUEST_METHOD']  = 'POST';

        // Inject mock router.
        $routes = Services::routes();
        $routes->addRedirect('example', 'pages/notset', 301);

        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();

        $response = $this->getPrivateProperty($this->codeigniter, 'response');
        $this->assertSame(303, $response->getStatusCode());
    }

    public function testStoresPreviousURL()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        // Inject mock router.
        $router = Services::router(null, Services::request(), false);
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();

        $this->assertArrayHasKey('_ci_previous_url', $_SESSION);
        $this->assertSame('http://example.com/index.php', $_SESSION['_ci_previous_url']);
    }

    public function testNotStoresPreviousURL()
    {
        $_SERVER['argv'] = ['index.php', 'example'];
        $_SERVER['argc'] = 2;

        $_SERVER['REQUEST_URI']     = '/example';
        $_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1';
        $_SERVER['REQUEST_METHOD']  = 'GET';

        // Inject mock router.
        $routes = Services::routes();
        $routes->addRedirect('example', 'pages/notset', 301);

        $router = Services::router($routes, Services::request());
        Services::injectMock('router', $router);

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        ob_get_clean();

        $this->assertArrayNotHasKey('_ci_previous_url', $_SESSION);
    }

    /**
     * The method after all test, reset Servces:: config
     * Can't use static::tearDownAfterClass. This will cause a buffer exception
     * need improve
     */
    public function testRunDefaultRoute()
    {
        $_SERVER['argv'] = ['index.php', '/'];
        $_SERVER['argc'] = 2;

        ob_start();
        $this->codeigniter->useSafeOutput(true)->run();
        $output = ob_get_clean();

        $this->assertStringContainsString('Welcome to CodeIgniter', $output);
    }
}

redpajama_set_name: RedPajamaGithub


text:
Q: What are the historical trends of contemporary mathematics? Question: What would future historians see as the general directions of mathematics in the period of 1970s -- 2020s?
What I look for in an answer: a pointer to a review paper on this topic would be enough, something titled like "Major Directions of Contemporary Mathematical Research, 1970--2000". If such a paper doesn't exist, I hope for an answer that can read like an abstract to such a paper.
Background:
Yesterday at dinner, Cloudy Quartz (my mom) asked me what modern mathematicians are doing, and I was at a loss. I could see the entire building of modern mathematics, but most of it seems to be completed before the 1970s. There are many unsolved questions, but I don't know where something truly new can grow.
And if mathematics does not have some new field to grow, what is left other than polishing the already mature fields, or solving specific applied problems using old tools?
In the end, I gave a small lecture on the history of mathematics. It ends with certain modern achievements in solving particular hard questions (Fermat's Last Theorem, Poincare conjecture), and solving day-to-day questions from science (numerical solvers, analysis of neural networks, quantum path integrals) but no new fields that I could point to.
After some more reflections, I thought of a few trends in contemporary mathematics:

*

*Formalizing mathematics, teaching computers mathematics, designing AI systems that can do mathematics

*Whatever modern algebraic geometers and topologists are up to, in their vast abstractions.

*Theoretical computer science: the P=NP problem, quantum computing algorithms, cryptography, etc.

*Justifying methods that are found useful in theoretical physics, such as path integrals.

*Solving all the messy problems in applied fields, as mathematicians has always done.

So my question is basically, in the eyes of a mathematical historian from the future, what might be the historical trends of mathematics in the 1970-2020 period?
Appendix: a list of the major fields of mathematics and their periods of major activities.

*

*Euclidean Geometry: Ancient Greece, then 19th century.

*Noneuclidean geometry: 19th century.

*Projective geometry: a little bit of it in the 15th century, then greatly popular in the 19th century.

*Topology: 19th century (Analysis situs) to around 1970s (algebraic geometry).

*Calculus: 17th century to 19th century (Cauchy's formalization of calculus).

*Abstract algebra: 19th century (Galois, Abel) to about 1960s (Algebra (MacLane and Birkhoff, 1961) already contains all the main areas of modern abstract algebra).

*Algebraic geometry: 17th century (Newton's classification of cubic curves) to 19th century to about 1970s (Grothendieck).

*Probability: 16th century to 1930s (Kolmogorov) to 1970s (stochastic calculus).

*Logic: ancient Greece, medieval Europe, 1870s to 1970s (Godel, Turing, Paul Cohen).

redpajama_set_name: RedPajamaStackExchange


The MASTER PROFIL brand offers four different door frames as part of our door frames solutions for interior passage doors. The frames are offered in three face types – with natural veneer European oak – polished and unpolished, veneer fineline or with melamine foil. The foil is developed exclusively for the brand MASTER PROFIL. The foil has special nano-lack layer, which makes the product scratch resistant. KLEIBERIT polyolefin glues are used for the wrapping.
Very successful combination between elegant design and steady construction. The large tolerance of compensating sills (30 mm) guarantees problem-free assembling even when walls have big deviation. Door frame "STYLE" is produced in six basic dimensions, which makes it appropriate for wall thickness from 85 mm to 210 mm.
Very successful combination between classic design and steady construction. The design of this model is consistent with model "STYLE", thus allowing their combination in a single item. Door frame "CLASSIC" is suitable for all walls with thickness above 165 mm. The middle panel is offered in three basic widths up to 930 mm.
Classic design and steady construction. Door frame "CLASSIC-M" is suitable for all walls with thickness from 125 to 300 mm, thanks to the middle panel with basic width of 200 mm.
Simplified construction and clean design. Door frame "ECONOMIC" is suitable for walls with thickness from 60 mm to 180 mm. The board ist made from MDF – 30 mm.


text:
Q: missing binded value in angularjs http://plnkr.co/edit/hLsMPWp6O2uL4SheThLR?p=preview
I use push but {{tab.tabName}} return blank (line 46) in index.html

A: in app.js

Replace:
$scope.tabs.push({
    "tabId": tabId = tabId + 1,
    "name" : capitaliseFirstLetter(this.NewTabName),
    "active" : true
});

To
$scope.tabs.push({
    "tabId": tabId += 1,
    "tabName" : capitaliseFirstLetter(this.NewTabName),
    "active" : true
});

A: This is your problem: (in app.js, under addTab function)
"name" : capitaliseFirstLetter(this.NewTabName),
Should be:
"tabName" : capitaliseFirstLetter(this.NewTabName),


How's this for excitement? The neighborhood is buzzing about the plane that landed on Weber Rd. today. Although it careened through the intersection turning cartwheels, no one was seriously hurt according to local news reports. That's a miracle. Weber is a well-traveled road with nearly bumper-to-bumper traffic all day long.
How would it feel to see a plane swooping in right in front of your car, head-on? Read all about it.
We like sitting in the hot tub on days when the airport is busy. There's a red and black 2-seater ultra-light that sounds like a lawn mower and some kind of Cessna that appears to involve lessons since the same plane takes off and lands over and over. Small military planes stop here for refueling. And helicopters ... news choppers and one huge and incredibly loud, orange-colored beast, blast off on a regular basis. Glad today's episode ended up OK for all the people involved.
Photo by Bill Ackerman, published in the Argus Press Spectator.


Unique elegant hand cut and polished crystal cup can be beautifully deep etched with your logo and award name for even the most elegant or exclusive award presentation.
Elegant crystal cup made of fine Polish Krosno crystal can be beautifully deep etched with your logo and award name for even the most elegant and exclusive award presentation. Hand-blown non-lead crystal.
Elegant hand cut and polished crystal cup can be beautifully deep etched with your logo and award name for the perfect award or gift for even the most elegant or exclusive award presentations.
Elegant crystal cup made of fine Polish Krosno crystal, hand cut and polished, can be beautifully deep etched with your logo and award name for even the most elegant or exlusive award presentations. Hand-blown non-lead crystal.


Kate Spade has found a new muse in the ever-fabulous Miss Piggy! See the new photos of the Miss Piggy collection at Kate Spade.
See what happens when Miss Piggy and Zosia Mamet get stuck in an elevator in Kate Spade New York's holiday ad.
Deck the Halls With Miss Piggy and Harry!


text:
Patent Progress
Patent Dictionary
Too Many Patents
Abstract Patents
Systemic Problems with Patents and Software
Overview of a Patent Litigation
Anti-Competitive Effects: Litigation & Extortion
Patents: Property or Monopoly?
ContentGuard: Arguendo
by Josh Landau • June 8, 2017
Today, we watched as a man stood in front of a panel and explained how the other side had behaved improperly and how the decisions they made were incorrect and contrary to applicable legal standards.
I'm speaking, of course, of the ContentGuard oral arguments. What did you think I was talking about?
Oral Argument at the Federal Circuit
Oral argument at the Federal Circuit is a pretty brief affair. You stand in front of your panel of three judges. You have fifteen minutes, split as you choose between your opening and your rebuttal. Opposing counsel gets the same.
Fifteen minutes isn't a lot of time to get through multiple issues, so you're going to have to pick and choose what's most important to you and have the rest come in through your briefs. In the ContentGuard cases, the arguments focused primarily on the claim construction dispute over "usage rights" and a couple procedural disputes.
It did not go well for ContentGuard.
ContentGuard v. Apple was up first. At the outset, Judges Dyk and Reyna expressed some confusion as to what ContentGuard actually wanted the claim construction to be, and whether "attached" and "associated" meant the same thing. ContentGuard's counsel at first asserted they meant something different, but the judges pointed out he'd said they meant the same thing in the district court. Judges Dyk and Wallach expressed some skepticism that ContentGuard's claim construction issue was handled correctly in terms of procedure, going so far as to instruct ContentGuard's counsel that "you have to put it in your brief" and "you have to object at the time."
To put it bluntly: when a judge feels the need to instruct you on basic points of trial or appellate procedure, things are probably not going your way.
Counsel for Apple then stood up to address the claim construction issue. Apple pointed out that, regardless of ContentGuard's procedural failures, the intrinsic and extrinsic evidence strongly supported the district court's construction.
On rebuttal, ContentGuard took another shot at convincing the judges that they had actually appealed the "attached" part of the construction. It didn't work any better the second time.
If I was a betting person, I'd bet that this case is resolved essentially entirely on the claim construction point, with the Federal Circuit upholding the construction and thus upholding the non-infringement verdict.
Practicing the Prior Art
In the ContentGuard v. Google portion of the morning, the focus shifted to a dispute I haven't focused on much this week, a dispute over whether Google had improperly put on a "practicing the prior art" defense. This type of defense is where you say "I don't infringe because I'm doing exactly what some piece of prior art said to do." While it's logical to make this argument (because if you're doing what the prior art does, and you infringe, then the patent must logically be invalid), you're not actually allowed to make it in quite that fashion. Instead, you have to say that "we don't infringe because the product is different from the patent" and then you can argue that "if we do infringe, then the prior art is the same as the patent so it's invalid."
ContentGuard asserted that Google had compared their product to the prior art. This argument didn't go any better than the claim construction argument had. Judges Wallach and Dyk were skeptical the argument had been made at all, and pointed out that Google seemed to have properly argued that the products didn't include all of the patent limitations, the proper approach. Given the opportunity to object at trial and the presence of a jury instruction on the topic, the judges didn't seem to take ContentGuard's complaint too seriously.
In response, Google explained how they had showed a difference between their product and the patent. They also addressed the issue of whether ContentGuard had shown any non-conclusory evidence that their products had "physical integrity." If they haven't, as Google alleged, then ContentGuard would lose on that issue independent of the claim construction dispute.
Whither § 101?
Google talked a bit at the end of their time about whether ContentGuard's patents were invalid under 35 U.S.C. § 101. Google addressed Judge Gilstrap's decision, which focused on the required integrities, and Google's point was that if those integrities are just functions that have to be performed, not specific ways of doing so, then the claim looks even more like an abstract idea.
However, the judges then asked whether they needed to address § 101 if they found non-infringement. Counsel for Google said no. Given that, my guess is that the decision won't address the validity issues at all.
I Read A Bunch About This Case—So What?
I said it at the outset—this is a typical patent case. It's unlikely to result in any huge changes in the law. But when a small business gets sued, this is what they're facing. When a large company talks about being the defendant in 10 or 20 cases a year (or more), imagine this multiplied tenfold or more.
Patent litigation is expensive and complex. It requires innocent defendants to expend significant resources to defend themselves in the hope, not of getting back to where they started, but of not having to spend too much to clear up the matter.
The fact that this is what typical patent litigation looks like is why patent reform is so important.
Tags:Apple contentguard Eastern District of Texas Federal Circuit Google Patent Assertion Entity (PAE) patent troll software patent
Joshua Landau
Joshua Landau is the Patent Counsel at the Computer & Communications Industry Association (CCIA), where he represents and advises the association regarding patent issues. Mr. Landau joined CCIA from WilmerHale in 2017, where he represented clients in patent litigation, counseling, and prosecution, including trials in both district courts and before the PTAB.
Prior to his time at WilmerHale, Mr. Landau was a Legal Fellow on Senator Al Franken's Judiciary staff, focusing on privacy and technology issues. Mr. Landau received his J.D. from Georgetown University Law Center and his B.S.E.E. from the University of Michigan. Before law school, he spent several years as an automotive engineer, during which time he co-invented technology leading to U.S. Patent No. 6,934,140.
Follow @PatentJosh on Twitter.
← ContentGuard: Validity and Privilege
The Special Nature Of Venue In Patent Law →
Search Patent Progress
Subscribe to Patent Progress
Patent Progress on Twitter
Dictionary of Patent Terms
Patent Progress's Guide to State Patent Legislation
Patent Progress's Guide to Federal Patent Legislation
About Patent Progress
Copyright © 2019 Computer & Communications Industry Association. All Rights Reserved. Magazine Premium created by c.bavota.
This website uses cookies to ensure you get the best experience

redpajama_set_name: RedPajamaCommonCrawl


Beautiful Mexican woman Angela is the mistress of a powerful New York mobster, the husband of Zena who is the daughter of the head of the most powerful crime family in town. One night, Zena and her goons catch the two in the act and Zena guns down her cheating husband in cold blood. Angela manages to escape, however, and asks the honest virginal local priest, Father Michael, for protection. When she tells Michael that Zena is after her, he's shocked, since Zena is his sister. The two siblings have been having a strained relationship ever since something happened during their teenage years that eventually drove Michael towards the church and Zena towards her family's illegal business. Although the top mafia brass won't allow for a female don, Zena still wants to prove to her loving father, who's being prosecuted and is about to face some serious prison time, that she can run his crime syndicate with competence. Meanwhile, Michael begins to fall in love with Angela and starts questioning his vows. After things end badly with his best friend, a cop who might be able to offer Angela some real protection, Michael realizes that the only way to save Angela is to help her leave the country and return to Mexico. However, things are not what they seem.
Regions are unavailable for this movie. Click the "Watch on Netflix" button to find out if Last Rites is playing in your country.


text:
#### Q(A::Array{Float64, 2}, L::Array{Int64, 1}) [¶](#method__q.1)
Q -- a measure of modularity

This measures Barber's bipartite modularity based on a matrix and a list of
module labels.

*source:*
[EcologicalNetwork/src/./modularity.jl:28](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./modularity.jl)

---

#### Q(P::Partition) [¶](#method__q.2)
Q -- a measure of modularity

This measures Barber's bipartite modularity based on a `Partition` object, and
update the object in the proccess.

*source:*
[EcologicalNetwork/src/./modularity.jl:46](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./modularity.jl)

---

#### Qr(A::Array{Float64, 2}, L::Array{Int64, 1}) [¶](#method__qr.1)
Qr -- a measure of realized modularity

Measures Poisot's realized modularity, based on a  a matrix and a list of module
labels. Realized modularity takes values in the [0;1] interval, and is the
proportion of interactions established *within* modules.

Note that in some situations, `Qr` can be *lower* than 0. This reflects a
partition in which more links are established between than within modules.

*source:*
[EcologicalNetwork/src/./modularity.jl:64](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./modularity.jl)

---

#### Qr(P::Partition) [¶](#method__qr.2)
Qr -- a measure of realized modularity

Measures Poisot's realized modularity, based on a `Partition` object.

*source:*
[EcologicalNetwork/src/./modularity.jl:79](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./modularity.jl)

---

#### a_var(p::Array{Float64, N}) [¶](#method__a_var.1)
Variance of a series of additive Bernoulli events

f(p): ∑(p(1-p))

*source:*
[EcologicalNetwork/src/./proba_utils.jl:63](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./proba_utils.jl)

---

#### betadiversity(A::Array{Float64, 2}, B::Array{Float64, 2}) [¶](#method__betadiversity.1)
 Measure the expected network similarity

Note that this is only meaningful to apply this function when the two matrices
have the same species at the same position! If this is note the case, a
`BoundsError` will be thrown.

This function will return a `BetaSet`, which is then used by the function to
actually measure the beta-diversity. This package uses the approach of Koleff et a. (2003).

**References**

1. Koleff, P., Gaston, K. J. and Lennon, J. J. (2003), Measuring beta diversity
for presence–absence data. Journal of Animal Ecology, 72: 367–382. doi:
10.1046/j.1365-2656.2003.00710.x

*source:*
[EcologicalNetwork/src/./betadiversity.jl:40](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### centrality_katz(A::Array{Float64, 2}) [¶](#method__centrality_katz.1)
 Measures Katz's centrality for each node in a unipartite network.

**Keyword arguments**

- `a` (def. 0.1), the weight of each subsequent connection
- `k` (def. 5), the maximal path length considered

*source:*
[EcologicalNetwork/src/./centrality.jl:10](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./centrality.jl)

---

#### connectance(A::Array{Float64, 2}) [¶](#method__connectance.1)
 Expected connectance for a probabilistic matrix, measured as the number
of expected links, divided by the size of the matrix.

*source:*
[EcologicalNetwork/src/./connectance.jl:15](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./connectance.jl)

---

#### connectance_var(A::Array{Float64, 2}) [¶](#method__connectance_var.1)
 Expected variance of the connectance for a probabilistic matrix,
measured as the variance of the number of links divided by the squared size of
the matrix.

*source:*
[EcologicalNetwork/src/./connectance.jl:23](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./connectance.jl)

---

#### count_motifs(A::Array{Float64, 2}, m::Array{Float64, 2}) [¶](#method__count_motifs.1)
 Motif counter

This function will go through all k-permutations of `A` to measure the
probability of each induced subgraph being an instance of the motif given by
`m` (the square adjacency matrix of the motif, with 0 and 1).

*source:*
[EcologicalNetwork/src/./motifs.jl:37](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./motifs.jl)

---

#### degree(A::Array{Float64, 2}) [¶](#method__degree.1)
 Expected degree

*source:*
[EcologicalNetwork/src/./degree.jl:14](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./degree.jl)

---

#### degree_in(A::Array{Float64, 2}) [¶](#method__degree_in.1)
 Expected number of ingoing degrees

*source:*
[EcologicalNetwork/src/./degree.jl:8](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./degree.jl)

---

#### degree_out(A::Array{Float64, 2}) [¶](#method__degree_out.1)
 Expected number of outgoing degrees

*source:*
[EcologicalNetwork/src/./degree.jl:2](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./degree.jl)

---

#### free_species(A::Array{Float64, 2}) [¶](#method__free_species.1)
 Expected number of species with no interactions

This function will be applied on the *unipartite* version of the network. Note
that the functions `species_ |predecessors` will work on bipartite networks, but
the unipartite situation is more general.

*source:*
[EcologicalNetwork/src/./free_species.jl:31](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./free_species.jl)

---

#### gaston(S::BetaSet) [¶](#method__gaston.1)
 Gaston measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:71](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### harrison(S::BetaSet) [¶](#method__harrison.1)
 Harrison measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:96](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### hartekinzig(S::BetaSet) [¶](#method__hartekinzig.1)
 Harte-Kinzig measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:91](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### i_esp(p::Float64) [¶](#method__i_esp.1)
Expected value of a single Bernoulli event

Simply f(p): p

*source:*
[EcologicalNetwork/src/./proba_utils.jl:37](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./proba_utils.jl)

---

#### i_var(p::Float64) [¶](#method__i_var.1)
Variance of a single Bernoulli event

f(p): p(1-p)

*source:*
[EcologicalNetwork/src/./proba_utils.jl:50](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./proba_utils.jl)

---

#### jaccard(S::BetaSet) [¶](#method__jaccard.1)
 Jaccard measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:66](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### lande(S::BetaSet) [¶](#method__lande.1)
 Lande measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:81](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### links(A::Array{Float64, 2}) [¶](#method__links.1)
 Expected number of links for a probabilistic matrix

*source:*
[EcologicalNetwork/src/./connectance.jl:2](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./connectance.jl)

---

#### links_var(A::Array{Float64, 2}) [¶](#method__links_var.1)
 Expected variance of the number of links for a probabilistic matrix

*source:*
[EcologicalNetwork/src/./connectance.jl:8](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./connectance.jl)

---

#### m_var(p::Array{Float64, N}) [¶](#method__m_var.1)
Variance of a series of multiplicative Bernoulli events

*source:*
[EcologicalNetwork/src/./proba_utils.jl:72](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./proba_utils.jl)

---

#### make_bernoulli(A::Array{Float64, 2}) [¶](#method__make_bernoulli.1)
Generate a random 0/1 matrix from probabilities

Returns a matrix B of the same size as A, in which each element B(i,j) is 1 with
probability A(i,j).

*source:*
[EcologicalNetwork/src/./matrix_utils.jl:19](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./matrix_utils.jl)

---

#### make_binary(A::Array{Float64, 2}) [¶](#method__make_binary.1)
Returns the adjacency/incidence matrix from a probability matrix

Returns a matrix B of the same size as A, in which each element B(i,j) is 1 if
A(i,j) is greater than 0.

*source:*
[EcologicalNetwork/src/./matrix_utils.jl:70](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./matrix_utils.jl)

---

#### make_threshold(A::Array{Float64, 2}, k::Float64) [¶](#method__make_threshold.1)
Generate a random 0/1 matrix from probabilities

Returns a matrix B of the same size as A, in which each element B(i,j) is 1 if
A(i,j) is > `k`. This is probably unwise to use this function since this
practice is of questionnable relevance, but it is included for the sake of
exhaustivity.

`k` must be in [0;1[.

*source:*
[EcologicalNetwork/src/./matrix_utils.jl:53](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./matrix_utils.jl)

---

#### make_unipartite(A::Array{Float64, 2}) [¶](#method__make_unipartite.1)
Transforms a bipartite network into a unipartite network

Note that this function returns an asymetric unipartite network.

*source:*
[EcologicalNetwork/src/./matrix_utils.jl:4](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./matrix_utils.jl)

---

#### motif(A::Array{Float64, 2}, m::Array{Float64, 2}) [¶](#method__motif.1)
 Expected number of a given motif

*source:*
[EcologicalNetwork/src/./motifs.jl:59](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./motifs.jl)

---

#### motif_p(A::Array{Float64, 2}, m::Array{Float64, 2}) [¶](#method__motif_p.1)
 Probability that a group of species form a given motif

*source:*
[EcologicalNetwork/src/./motifs.jl:21](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./motifs.jl)

---

#### motif_v(A::Array{Float64, 2}, m::Array{Float64, 2}) [¶](#method__motif_v.1)
 Variance that a group of species form a given motif

*source:*
[EcologicalNetwork/src/./motifs.jl:26](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./motifs.jl)

---

#### motif_var(A::Array{Float64, 2}, m::Array{Float64, 2}) [¶](#method__motif_var.1)
 Expected variance of a given motif

*source:*
[EcologicalNetwork/src/./motifs.jl:64](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./motifs.jl)

---

#### nestedness(A::Array{Float64, 2}) [¶](#method__nestedness.1)
Nestedness of a matrix, using the Bastolla et al. (XXXX) measure

Returns three values:

- nestedness of the entire matrix
- nestedness of the columns
- nestedness of the rows

*source:*
[EcologicalNetwork/src/./nestedness.jl:30](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nestedness.jl)

---

#### nestedness_axis(A::Array{Float64, 2}) [¶](#method__nestedness_axis.1)
Nestedness of a single axis (called internally by `nestedness`)

*source:*
[EcologicalNetwork/src/./nestedness.jl:2](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nestedness.jl)

---

#### nodiag(A::Array{Float64, 2}) [¶](#method__nodiag.1)
Sets the diagonal to 0

Returns a copy of the matrix A, with  the diagonal set to 0. Will fail if the
matrix is not square.

*source:*
[EcologicalNetwork/src/./matrix_utils.jl:35](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./matrix_utils.jl)

---

#### null1(A::Array{Float64, 2}) [¶](#method__null1.1)
Given a matrix `A`, `null1(A)` returns a matrix with the same dimensions, where
every interaction happens with a probability equal to the connectance of `A`.

*source:*
[EcologicalNetwork/src/./nullmodels.jl:7](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nullmodels.jl)

---

#### null2(A::Array{Float64, 2}) [¶](#method__null2.1)
Given a matrix `A`, `null2(A)` returns a matrix with the same dimensions, where
every interaction happens with a probability equal to the degree of each
species.

*source:*
[EcologicalNetwork/src/./nullmodels.jl:46](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nullmodels.jl)

---

#### null3in(A::Array{Float64, 2}) [¶](#method__null3in.1)
Given a matrix `A`, `null3in(A)` returns a matrix with the same dimensions,
where every interaction happens with a probability equal to the in-degree
(number of predecessors) of each species, divided by the total number of
possible predecessors.

*source:*
[EcologicalNetwork/src/./nullmodels.jl:34](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nullmodels.jl)

---

#### null3out(A::Array{Float64, 2}) [¶](#method__null3out.1)
Given a matrix `A`, `null3out(A)` returns a matrix with the same dimensions,
where every interaction happens with a probability equal to the out-degree
(number of successors) of each species, divided by the total number of possible
successors.

*source:*
[EcologicalNetwork/src/./nullmodels.jl:20](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nullmodels.jl)

---

#### nullmodel(A::Array{Float64, 2}) [¶](#method__nullmodel.1)
 This function is a wrapper to generate replicated binary matrices from
a template probability matrix `A`.

If you use julia on more than one CPU, *i.e.* if you started it with `julia -p
k` where `k` is more than 1, this function will distribute each trial to one
worker. Which means that it's fast.

Note that you will get a warning if there are less networks created than have
been requested. Not also that this function generates networks, but do not check
that their distribution is matching what you expect. Simulated annealing
routines will be part of a later release.

**Keyword arguments**

- `n` (def. 1000), number of replicates to generate
- `max` (def. 10000), number of trials to make

*source:*
[EcologicalNetwork/src/./nullmodels.jl:78](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./nullmodels.jl)

---

#### number_of_paths(A::Array{Float64, 2}) [¶](#method__number_of_paths.1)
 Measures the expected number of paths in a probabilistic network

**Keyword arguments**

- `n` (def. 2), the path length

*source:*
[EcologicalNetwork/src/./paths.jl:6](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./paths.jl)

---

#### propagate_labels(A::Array{Float64, 2}, kmax::Int64, smax::Int64) [¶](#method__propagate_labels.1)
A **very** experimental label propagation method for probabilistic networks

This function is a take on the usual LP method for community detection. Instead
of updating labels by taking the most frequent in the neighbors, this algorithm
takes each interaction, and transfers the label across it with a probability
equal to the probability of the interaction. It is therefore *not* generalizable
for non-probabilistic networks.

The other pitfall is that there is a need to do a *large* number of iterations
to get to a good partition. This method is also untested.

*source:*
[EcologicalNetwork/src/./modularity.jl:98](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./modularity.jl)

---

#### ruggiero(S::BetaSet) [¶](#method__ruggiero.1)
 Ruggiero measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:86](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### sorensen(S::BetaSet) [¶](#method__sorensen.1)
 Sorensen measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:61](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### species_has_no_predecessors(A::Array{Float64, 2}) [¶](#method__species_has_no_predecessors.1)
 Probability that a species has no predecessors

*source:*
[EcologicalNetwork/src/./free_species.jl:1](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./free_species.jl)

---

#### species_has_no_successors(A::Array{Float64, 2}) [¶](#method__species_has_no_successors.1)
 Probability that a species has no successors

*source:*
[EcologicalNetwork/src/./free_species.jl:7](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./free_species.jl)

---

#### species_is_free(A::Array{Float64, 2}) [¶](#method__species_is_free.1)
 Probability that a species has no links

This will return a vector, where the *i*th element is the probability that
species *i* has no interaction. Note that this is only meaningful for unipartite
networks.

*source:*
[EcologicalNetwork/src/./free_species.jl:19](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./free_species.jl)

---

#### whittaker(S::BetaSet) [¶](#method__whittaker.1)
 Whittaker measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:56](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### williams(S::BetaSet) [¶](#method__williams.1)
 Williams measure of beta-diversity

*source:*
[EcologicalNetwork/src/./betadiversity.jl:76](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### Partition [¶](#type__partition.1)
Type to store a community partition

This type has three elements:

- `A`, the probability matrix
- `L`, the array of (integers) module labels
- `Q`, if needed, the modularity value

*source:*
[EcologicalNetwork/src/./modularity.jl:13](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./modularity.jl)

## Internal

---

#### motif_internal(A::Array{Float64, 2}, m::Array{Float64, 2}) [¶](#method__motif_internal.1)
 Internal motif calculations

The two arguments are `A` the adjacency matrix (probabilistic) and `m` the motif
adjacency matrix (0.0 or 1.0 only). The two matrices must have the same size.
The function returns a *vectorized* probability of each interaction being in the
right state for the motif, *i.e.* P if m is 1, and 1 - P if m is 0.

*source:*
[EcologicalNetwork/src/./motifs.jl:8](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./motifs.jl)

---

#### BetaSet [¶](#type__betaset.1)
 Partition of network similarity

The sets are, respectively

- `a`, expected number of common interactions
- `b`, expected number of interactions unique to B
- `c`, expected number of interactions unique to A

Note that *all* values are `Float64`, since when dealing with probabilistic
events, the expected cardinality of each set is not integers.

*source:*
[EcologicalNetwork/src/./betadiversity.jl:12](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./betadiversity.jl)

---

#### @checkprob(p) [¶](#macro___checkprob.1)
Quite crude way of checking that a number is a probability

The two steps are

1. The number should be of the `Float64` type -- if not, will yield a `TypeError`
2. The number should belong to [0,1] -- if not, will throw a `DomainError`

*source:*
[EcologicalNetwork/src/./proba_utils.jl:15](file:///home/tpoisot/.julia/v0.3/EcologicalNetwork/src/./proba_utils.jl)


For those of you who take an interest in what you eat, and your health in general, new product releases that claim to be the latest and greatest for health and fitness catch our attention In the past few weeks alone we have seen a new high calcium breakfast cereal, no added sugar yoghurt and the product which particularly grabbed my attention, pizza with the Heart Foundation TICK. All of these products claim to be "healthy" choices, based on their individual nutritional characteristics which have a potential selling point with consumers.
Unfortunately from a dietetic perspective, my definition of what is healthy is often very different from a high GI cereal that has calcium added; a yoghurt that contains artificial sweetener or a brand of pizza which may have a TICK but which also contains >90g of total carbohydrate which is the carbohydrate equivalent to 6+ slices of bread.
Another more general example of this can be demonstrated if we consider the nutritional profile of ice cream versus yoghurt. Ice cream is generally thought of as a product that is far less healthy than yoghurt but if you consider that a tub of yoghurt can contain up to 30g of total carbohydrate and >200 calories compared to an ice cream such as Paddle Pop MOO which contains <100 calories and just 20g of total carbohydrate, you can again see that it can be easy to be mislead by products that are routinely put into a "healthy" category.
What is healthy or not for an individual comes down to how many calories the food has; the type of carbohydrate and fat it contains and what else it offers nutritionally, not just one of these characteristics. And like everything in life, if a food seems and tastes too good to still be low in calories and carbohydrates, it usually is.


text:
Q: Pydev / Django not showing in Eclipse After searching and applying the suggested solutions, Pydev is still not showing in Eclipse.
I am using the following version combination and maybe that is where the problem is but I cannot say.
Eclipse 3.8
Java 8
Pydev 5
Kubuntu 16.04
I want to make a start in writing Django for building websites in Python choose for Eclipse as IDE because in the past I also used that IDE for PHP and like to work with it..


RadioBlogClub is an online music service that lets you stream music directly to your PC. As it's flash based it will work even if internet radio is blocked. Whilst the legality of such sites is questionable, this doesn't seem to stop more appearing. BlogMusik is another site that just uses a fancier front end for the service provided by RadioBlogClub. There are other ways to listen to your mp3's at work, however services such as TuneFeed require you to have your own website.
Thanks to Techcrunch in part.


gray blue yellow living room and large size of furniture.
switch on to smart display and storage units gray teal living room blue ideas rooms.
view in gallery beige couch living room sofa what color should i paint my.
gray living room with wall art grey couch decor colors color schemes brown colour scheme.
teal and brown living room best images on color combinations yellow cream curtains ideas che.
coral and turquoise living room decor accents for blue design navy accent wall c.
z sofa living room with neutral ottomans and footstools white on gallerie decor.


text:
Home/around the world/The second doping test of the bronze medalist of the 2018 Olympics from Russia confirmed the presence of meldonia
The second doping test of the bronze medalist of the 2018 Olympics from Russia confirmed the presence of meldonia
Sohail February 21, 2018
In the doping test B Russian curling Alexander Krushelnytsky found banned substances, according to the website of the Russian Olympic Committee.
An autopsy and analysis of Krushelnytsky's doping test took place on February 19, the test gave a positive result.
We express our sincere regret over the fact of this incident. Along with this, the circumstances of the incident do not now give an answer to the questions, how and when the meldonia could get into the athlete's body.
Olympic Committee of Russia
The study showed that Krushelnytsky used meldonium only once. The Committee stressed that the circumstances of the incident are still unknown.
It is well known that the effect of using meldonia is achieved exclusively with its regular course use, and metabolites are fixed in the human body about 9 months after the end of the drug intake.
The concentration of meldonia found in the sample indicates that a single use of the drug, which is not used in medical practice, is absolutely meaningless from the point of view of achieving any therapeutic effect on the human body.
The committee noted that before the Olympics Krushelnytsky always had negative tests, that is, without traces of prohibited drugs. Thus, according to the ROC, "conscious or systematic use is not confirmed." The committee initiated an investigation into the situation under Russian law.
On February 18, the media reported that in a doping test Krushelnitsky found meldonia, banned by the World Anti-Doping Agency. The athlete denies his guilt. Before that he and his wife Anastasia Bryzgalova won a bronze medal, which became the first for Russian curling in history. On February 19, Krushelnytsky left the Olympic village.
The Sports Arbitration Court in Lausanne (CAS) registered the case of the International Olympic Committee (IOC) against the athlete. The Curling Federation of Russia sent a statement to the Investigative Committee asking "to sort out the situation." According to Kommersant, Russia is developing "various options" for protection from Krushelnytsky's accusations of doping, not excluding "provocation" and "doping terrorism."
Probably, the IOC will annul the bronze medals of Krushelnytsky and Bryzgalov. Because of the case of Krushelnytsky, Russia can also be banned from attending the closing ceremony of the Olympics under its flag. In addition, because of doping can tighten the measures against Russian athletes in the upcoming Olympic Games.


Why is it taking so long? Can we speed up change? Will we ever get there?
Caroline Bowditch, Caroline Bowditch has recently returned to Australia to take up the role as Executive Director at Arts Access Victoria after 16 years living and working in the UK. She is best known as a performer, maker, teacher and speaker. Caroline held the role as Scottish Dance Theatre's Dance Agent for Change (2008-2012). She was awarded an Unlimited commission to create Leaving Limbo Landing (2012) for the Cultural Olympiad and in 2014 created Falling in Love with Frida, which was awarded a prestigious Herald Angel award. In 2016, she collaborated with Laura Hook, to create two works for young audiences, The Adventures of Snigel (3-8 years) and Snigel and Friends (under 1's). Caroline has been an Associate Artist with Paragon Music (Glasgow), Dance4 (Nottingham) and Imaginate (Scotland) and was Visiting Professor at Coventry University. She has been a regular consultant on accessibility and inclusivity to Skånes Dansteater, Sweden and British Council. She has led international residencies in Italy, Switzerland and Germany is regularly invited to be mentor local, national and international artists at all levels of their artistic development.
Abid Hussain is Director, Diversity at Arts Council England, the national development agency for arts and culture, leading the organisation's work on Equality, Inclusion and the Creative Case for Diversity. He is an alumnus of both the U.S International Visitor Leadership Programme (IVLP) and the Salzburg Global Seminar. Outside of work he is a father of three, a long suffering but ever optimistic Blackburn Rovers fan, a former food blogger and you can frequently find him on Twitter at @ArtyAbid.
Paula Souza Lopez is a Brazilian performer, audio-describer, producer, cultural manager and translator, graduated in Social Communications (RTV and Drama), specialised in Language and Cultural Accessibility. As a British Council Associate Producer she implemented the platform 'Unlimited: Arte sem Limites' and has been researching and working with disability arts since 2013. She has curated and organised exhibitions, festivals, and mediated round tables, delivered workshops collaborating with venues such as Sesc SP, Itaú Cultural and Sesi, Oi Futuro. Paula conceived the creative accessibility plan for the successful theatre play 'A Princesinha Medrosa' integrating AD and Sign Language into the aesthetics of the piece. She has also created and implemented the access strategies for the exhibition 'Inovanças' at Museu do Amanhã (Museum of Tomorrow) in Rio de Janeiro. Paula is a founding member of the Network Unlimited Accessible Territories, which was established in 2015.
David Hevey is the CEO and Artistic Director of Shape Arts , co-delivery partners of Unlimited. David is a leading arts and culture producer, creative director and media professional with a track record across arts, cultural production, film, TV and photography, including multi-platform projects. His work has been seen by tens of millions. As a cultural creative and producer, David has been featured in and profiled on a string of media including BBC, Channel 4 and the Guardian. As Shape CEO, David also leads on a string of projects including Unlimited, the Adam Reynolds Memorial Bursary, the Shape Open and much more. Delivering for Shape, he is also the NDACA Project Director: David created and leads the innovative digital models of NDACA which has helped reach four million people to date. David continues to lead Shape into exploring new models of arts and cultural delivery, all based on Shape's unique position of removing barriers to creative excellence.


It was a relief when the Westminster Parliament broke up for Christmas. For weeks we had watched our MPs slugging it out over Brexit. Many times we were promised a definitive moment. It never materialised. Every day someone else suggested a new solution to Brexit. None of them ever gained sufficient support.
When MPs went home for Christmas it was as if someone had hit the pause button. For a couple of weeks nothing could happen. All too soon, January came around. The contest resumed. While some people believe a deal will be done, others are much less confident.
One detail of the Christmas story is often overlooked. It is that Jesus was born into a world where power was contested. In our country there is a contest over what power Brussels should have over us. At Jesus birth, the question was, 'how can we limit the power that the Roman Emperor has over us?'. Within our parliament different groups battle to control the Brexit debate. At Jesus birth, Herod, the Priests and the Pharisees each had different visions for what Israel's future should look like. Each believed they were fighting for the soul of their nation.
For many people the Christmas period was a welcome break from the harsh realities of power being contested. It wasn't like that for Mary, Joseph and Jesus. They were pawns in the power plays of powerful people. Mary and Joseph had to travel to Bethlehem because the Emperor had ordered a census. Jesus was born far from home because of a directive from a bureaucracy far away. We discover that the Christmas story takes place in a world just like ours.
In January Christmas decorations come down. We stop singing Christmas carols. For the next ten or eleven months normal life resumes. Come December, we will take Jesus out of the cupboard once again.
Except it doesn't have to be like. That first Christmas God became a human being. He entered a world where different groups competed with each other. Each wanted to run the show. Each wanted their vision for the future to be embraced. That means that Jesus is even more relevant now that Parliament has resumed than it was last month when it was in recess.
Jesus came to the real world – the world you and I live in – the world where people contest power – the world where people are at logger heads – the world where we go round and round in circles unable to reach agreement.
Jesus came to help us with this world. He came to save us. He came to rescue us from the mess we keep making of things. That is why Jesus is good news not just in December, but all year round.
'The word became flesh and blood and moved into the neighbourhood' (John 1:14 , Message).


What's happened to all the chat on here?
I've just got back to the UK after working abroad and I am very disappointed at how this forum has been turned into a list of which girls are available today. It used to be full of interesting posts and chat and apart from the joke of the day that seems to have disappeared. So what's gone wrong?
Re: What's happened to all the chat on here?
I asked the same question a while back and was ignored as well.
Must admit I check in regularly, but do not post often.
Ages since I typed anything on here, so I've been good, posted this reply and answered another recent post. Maybe this will entice old contributors back into the fold.
Doesn't help that it takes an hour and a day to log on or browse the site. Needs a serious revamp.
Well, can I interrupt this conversation?
My name is Stephanie, and I am very new to this forum, in fact 20 minutes new, and its a little confusing. Is there a section whee I can post a bad experience with a website here? The info will be helpful to ladies as well as gents, but I am just not sure where I can find the appropriate topic section?
StephanieH wrote: Well, can I interrupt this conversation?
louise-bellelulu wrote: People maketh the forum.
Let's keep these forums active then! Post new exciting topics! Stimulate the populus! It's up to use to keep it going!
Yeah I totally agree. Whilst it's wonderful that there is a place for agencies to promote their companies I feel that we should come to terms with the fact that WE ARE A COMMUNITY! So we should get to know each other more!
I have recently joined the community and have adored the short time which I have been here, getting involved with other people's topics as well as creating a couple of my own. With this being said as the forum grows it is a lot more likely we will find trolls and spammers. Hopefully as a community we can keep this to an absolute minimum as I dont want such a great community to be taken away, as you will struggle to find an escorts forum as good as Punterlink!


Discuss the ultimate things of Star Wars. The Expanded Universe, The Canon, and games.
naruto, universe, create, your, character, interact, with, canon, characters, well, made, others, learn, jutsu, increase, rank, become, strongest, ninja, world!


I've got 2 750rd cases (1500rd total) of Silver Bear 60gr 5.45x39 bimetal FMJ in zinc plated cases. This has been stored inside my home, inside 50 cal ammo cans. Ammo cans not included in the trade.
Wanting to trade for 1,000rd factory boxed / factor loaded (no reloads), Wolf, Tula, etc 55gr FMJ .223 (no hp, no sp).
I'm about 35-40 miles direct north of Dayton and willing to drive 30 miles in any direction for the trade.
Will you be at the Creek?
Sorry, no I will not be going to the April creek. I am willing to drive as far as Cincinnati though.
Ammo is sold. I'm trying to figure out how to lock this post up.


text:
Karenna Colcroft Author of Romantic Fiction
Male/male contemporary
Love Like Vampires
With Romantic Elements
Dawn Over Dayfield
Wishing on a Blue Star
Irresistible: Erotic Romance for Couples
Coming Together: Through the Storm
Special Guest Kimber Vale
I'm part of the Absolute Write Erotic Author blog hop, and today's Kimber Vale's turn on my blog. After you read here, be sure to check out my interview yesterday on Kate Lowell's blog, and for a master list of all participants, visit Crane Hana's blog.
Have you ever written outside the romance genre? If not, do you ever plan to?
I've written horror shorts under my real name and had them published with small presses. My first serious writing endeavor was a (yet unfinished) 140,000 word paranormal young adult. I like flexing my writing muscles and will probably write a non-romance novel or two in the future. Currently, I'm having a ton of fun writing MM romance, though, and I'm sticking here for now simply because I have way too many books planned to go off on another tangent.
Do you have a favorite character out of all the ones you've written?
It's usually my most recent MC. At the moment, my boy Kyrie from my upcoming August 18th release, "Hard Act to Follow," is my favorite. He's a funny, flamboyant actor who had a bit part in my last Shooting Stars book, "Double Takes." Kyrie insisted he get his time in the spotlight, and he and Greg have definitely stolen my heart. I plan to revisit them both for another book, "The Second Coming of Kyrie." Just kidding. That won't be the title. 😉
What do you hate about being an author?
I'd say the thing I dislike most is budgeting my time. Friends and family don't tend to see writing as a real job, and I have a hard time saying no to people even when I'm busy with writing deadlines. It's real! I'm not screwing around jerking off to porn all day, people! Okay, maybe a small portion of the day, but that's research, damn it!
Music, no doubt. Also showers, apparently, as I tend to get good ideas while getting clean. I should do it more often.
How did you celebrate the sale of your first book?
The same way I celebrate everything—sushi and alcohol.
If you had to include a soundtrack with one of your books, give us the book title and three tracks that would be on that soundtrack.
I'm going to go with my next release again. I have a lengthy Spotify playlist for "Hard Act to Follow," but I'll pick the three I think best fit.
Call and Answer by Bare Naked Ladies https://www.youtube.com/watch?v=xS8XLMxeWLk
Sleeping with a Friend by Neon Trees https://www.youtube.com/watch?v=BB7R0ZY9w94
Where Did the Party Go? by Fall Out Boy https://www.youtube.com/watch?v=E9hESWfeXG0
How hard is the editing process?
I'm rather anal about this, so it burns. It burns!!!! My eyes, that is, not my anus.
Have you ever tested out one of your sex scenes on your significant other?
Yes indeedy. In my first Shooting Stars book, "Forever is Now," Chance has a bit of fun with a bottle of tequila during a sex scene. My husband served as my guinea pig (anything for a BJ!) and was kind enough to give me Alex's line about feeling like his dick just did a shot. In turn, I was kind enough to supply the happy ending. At least I got a swallow of tequila out of the deal.
What's your favorite font?
Oh, wing dings, for sure. They really up the editing ante.
What's your signature cocktail?
Jack Daniel's. I'm freakin' fancy. I even stick my pinkie up sometimes (more frequently my middle finger, especially after a few fancy cocktails, but you know how it is).
K. Vale writes erotic romance of all stripes, from hot hetero to mouthwatering manlove. Find her MF work published under Kimber Vale. Come for the sex. Stay for the story. Stalk Kimber on Facebook @ https://www.facebook.com/pages/Kimber-Vale/311761975532531?ref=hl and Twitter @KimberVale, and check her site for updates, new releases, and freebies at http://www.authorkimbervale.com.
Kimber on Amazon: http://www.amazon.com/Kimber-Vale/e/B006HMAY06/ref=sr_tc_2_0?qid=1403746544&sr=8-2-ent
Blurb for Double Takes: Shooting Stars 2:
Ah, the life of a rock star. Everyone thinks it's nothing but sex, drugs, and rock and roll.
Not for Giovanni Savale.
For the lead singer of Three Deaf Mice, a band that reached its pinnacle in the late nineties, it's nothing but an ugly divorce with a custody battle, money trouble, and now the nightmare exposure of starring in a reality television show. When his producer decides to cash in on an infamous interview Gio did years ago, and give the self-confessed bisexual rocker an onscreen boyfriend, things really hit the fan. Gio is certain his sexual experimentation back in his drug-abusing days meant nothing — after all he's been married for nine years, clean and sober for nearly as long, and he has a son. And Gio is not remotely attracted to Kyrie, the funny, flamboyant actor they choose for his love interest. Of course, Lance Garrett, the mysterious and sexy owner of the local antique shop, Double Takes, is a whole different story. The guy has Gio planning out a future he never imagined. With the threat of losing all custody of his ten-year-old son, ghosts from the past returning for revenge, and the cameras rolling, can Gio keep his head above water and his heart from getting broken?
Blog Right Column Demo
This is default content to showcase the blog's right sidebar column. Once you publish your first widget to this position, this sample content will be replaced by your widget.


This is for the cat that has everything! The perfect combination of style, quality, and fun for your cat and home.
The attractive multi-level design provides a variety of options for play and rest. Features aa dual hide-way and sisal covered bamboo rubbing posts.


As the name implies, the Stop Considering Prospect feature rejects the prospect from a job and/or prospect pool. Users can only stop considering prospects on jobs where they have job admin level permissions or above.
Note: If a prospect is unattached (i.e. the prospect is not associated with any job, office, or department) only users with the Can manage unattached prospects - add prospect to jobs, convert prospects to candidates, see private tab for prospects (Job Admin only) permission can stop considering the prospect.
To stop considering a prospect, navigate to the prospect's profile and click Stop Considering as Prospect from the On Job panel.
From the subsequent dialog box, select a rejection reason and other details of the rejection flow. Click either Stop Considering or Reject and Send Email.
The prospect will no longer be considered.


text:
\section{The classical model of the magnetron}
\label{sec:classical_model}

The cyclotron resonance magnetron consists of two coaxial conducting cylinders; see the top row of Figure~\ref{fig:magnetron_schematic}.  The inner cylinder is kept at a negative potential and constitutes the cathode, the grounded outer cylinder is the anode, and the space between them is evacuated.  An external DC magnetic field points along the axis of the cylinders.
\begin{figure}
\begin{center}
\includegraphics[width=\columnwidth]{magnetron_schematic}
\caption{Principle of operation of the cyclotron resonance magnetron.  The DC fields are set up so that $V \approx V_H$ (first column).  If an electron is emitted when the AC voltage has the same polarity as the DC, the electron collides with the anode before removing much energy from the field (second column).  If it is emitted when the AC voltage has a polarity opposite to the DC, it remains in the device for a longer time and exchanges more energy with the field (third column).  See Appendix~\ref{sec:classical_model_derivation} for the details of the model used to generate these plots.
\label{fig:magnetron_schematic}}
\end{center}
\end{figure}

An electron emitted by the cathode performs cyclotron motion within the device.  The radius of the cyclotron orbit increases with the accelerating voltage, $V$.  Below the so-called Hull cutoff voltage, $V_H$, the diameter of the orbit is smaller than the device radius, and the emitted electrons never reach the anode.  Above $V_H$, the electrons reach the anode and the device is conducting.

Now, consider a device operating just below $V_H$.  Connect a resonant circuit tuned to the cyclotron frequency to the cathode and anode; this generates an AC voltage in addition to the DC one.  Those electrons emitted when the AC voltage has the same polarity as the DC will absorb energy from the electromagnetic field---but since they are accelerated by a voltage $V > V_H$, they will be removed from the device by a collision with the anode during their first orbit (see first column of Figure~\ref{fig:magnetron_schematic}).  Those electrons emitted when the AC voltage has the opposite polarity lose energy to the field and remain in the device.  Crucially, by the time these slowed electrons reach the apex of their orbit and turn around, the polarity of the AC voltage reverses, so that they are once again giving up energy to the field.  Thus, those electrons that are not quickly removed by a collision with the anode continuously transfer their energy to the electromagnetic field (see third column of Figure~\ref{fig:magnetron_schematic}).  The result is net emission.

An important subtlety is that the interaction with the electromagnetic field perturbs the electron's orbit, leading to a gradual change of the relative phase of the electron's and the field's oscillations.  Therefore, even the electrons which initially contribute energy to the field will eventually absorb it instead. From an energy perspective, the problem can be stated as follows: if the only way for the electron to be removed from the device is a collision with the anode, then by the time the electron is removed it must have absorbed energy on net from the AC field.  To eliminate this problem, \emph{all} electrons are removed from the device on some timescale long compared to the cyclotron frequency but short relative to the dephasing time, even if they are in orbits too small to reach the anode.  In vacuum magnetrons, this can be achieved by tilting the magnetic field slightly away from the electrodes' axis.

\section{Proposed device}
\label{sec:proposed_device}

The classical model of the previous section suggests the device design shown in Figure~\ref{fig:proposed_device}.  As reviewed in Appendix~\ref{sec:classical_model_derivation}, in the cylindrical geometry the Hull voltage is,
\begin{equation}
\frac{V_H}{B^2} = \frac{e s_a^2}{8\mu} \left(1 - \frac{s_c^2}{s_a^2}\right)^2,
\end{equation}
where $s_c$ is the cathode (inner) diameter and $s_a$ the anode (outer) diameter, $e$ is the carrier charge, $\mu$ the carrier mass, and $B$ the DC magnetic field, related to the frequency of operation through the cyclotron condition,
\begin{equation}
\omega = \frac{eB}{\mu}.
\end{equation}
Critically, unlike in the vacuum device, the effective charge carrier mass can be controlled by appropriate choice of material.  This allows access to higher emission frequencies.  For example, in a monolayer of GaSe, with an effective mass of $0.053\,m_e$~\cite{Wickramaratne2015}, an emission frequency of 1 THz should be achieved at a field of 1.9 Tesla. (The device geometry and the Hull condition set the voltage drop at 1.6 V.)  Other two-dimensional materials with small effective masses and parabolic band structures could be used as well.  Bilayer graphene would be a natural candidate, but its band structure shows deviations from parabolicity, and consequently its Landau levels are only approximately uniformly spaced~\cite{Pereira2007}.  Another possibility would be to use the two-dimensional electron gas in a AlGaAs/GaAs or AlGaAs/InGaAs/GaAs heterostructure, with effective masses of $0.068\,m_e$~\cite{Zudov2001} and $0.073\,m_e$~\cite{Liu1988}, respectively.  This would require a device geometry slightly different from that shown in Figure~\ref{fig:proposed_device}, with electrodes penetrating capping layers to contact the two-dimensional electron gas.

\begin{figure}
\begin{center}
\includegraphics[width=0.7\columnwidth]{nanomagnetron}
\caption{Solid state magnetron.  \emph{(a)} Top view.  \emph{(b)} Side view.
\label{fig:proposed_device}}
\end{center}
\end{figure}

Unfortunately, the validity of the simple classical model is far from obvious: the distance between the electrodes is less than 50 magnetic lengths ($\sqrt{\hbar/eB}$), a scale at which the wave nature of the electron cannot be ignored. In the remainder of this paper, we propose and develop a fully quantum model of a solid state magnetron.

\section{Quantum model: DC operation}

In the classical picture described in Section~\ref{sec:classical_model}, a DC magnetic field and an absorbing boundary allow for the transfer of energy from a DC voltage source to an AC signal.  We will now describe the same process from a quantum perspective.

\begin{figure}
\begin{center}
\includegraphics[width=0.5\columnwidth]{rectangular_schematic}
\caption{A schematic of the quantum magnetron model.  We will assume $W \gg L$.
\label{fig:rectangular_schematic}}
\end{center}
\end{figure}

To simplify the analysis, we will discuss a rectangular, rather than cylindrical, geometry as shown in Figure~\ref{fig:rectangular_schematic}. (The rectangular geometry is simpler because the DC electric field between the electrodes has a constant magnitude.  The general mechanism of device operation is unchanged.)  Furthermore, we will restrict our considerations to a planar, or 2D, device.  Within the device region ($y \in [0, L]$) there are constant crossed electric and magnetic fields $\vect{E}$ and $\vect{B}$, while outside of it---in the electrodes---the fields are zero.  The motion of an electron subject to these external potentials is described by the Hamiltonian,
\begin{equation}
\label{eq:hamiltonian}
H = \frac{1}{2\mu} (\vect{p} + e\vect{A})^2 - e \Phi,
\end{equation}
where $-e < 0$ is the electron charge and $\mu$ the electron mass.

We choose the Landau gauge, in which
\begin{equation}
\Phi = \begin{cases}
0 & \text{for $y < 0$,}\\
E y & \text{for $y \in [0, L]$,}\\
E L & \text{for $y > L$,}
\end{cases}
\quad
\vect{A} = \begin{cases}
0   & \text{for $y < 0$,}\\
B y & \text{for $y \in [0, L]$,}\\
B L & \text{for $y > L$.}
\end{cases}
\end{equation}
By introducing the cyclotron frequency and magnetic length,
\begin{equation}
\omega_c = \frac{eB}{\mu}, \quad l_B = \sqrt{\frac{\hbar}{eB}},
\end{equation}
we can rewrite the Hamiltonian in terms of dimensionless variables,
\begin{equation}
\xi = x/l_B,\quad \eta = y/l_B,\quad \alpha = \frac{e E l_B}{\hbar\omega_c}, \quad \Lambda = L/l_B,
\end{equation}
as,
\begin{equation}
H = \frac{1}{2}\hbar\omega_c\times \begin{cases}
p_\xi^2 + p_\eta^2 & \text{for $\eta < 0$,}\\
(p_\xi + \eta)^2 + p_\eta^2 - 2\alpha \eta & \text{for $\eta \in [0, \Lambda]$,}\\
(p_\xi + \Lambda)^2 + p_\eta^2 - 2\alpha \Lambda & \text{for $\eta > \Lambda$.}
\end{cases}
\end{equation}
In this gauge, $\xi$ does not appear in the Hamiltonian and $p_\xi$ is a constant of the motion.  The energy eigenstates $\{\psi\}$ can be taken to be simultaneous eigenstates of $p_\xi$:
\begin{equation}
\psi_k(\xi, \eta) = e^{\imath k \xi} \phi_k(\eta),
\end{equation}
where $\phi_k$ is an eigenstate of the one-dimensional Hamiltonian,
\begin{equation}
H_k = \frac{1}{2}\hbar\omega_c \left(p_\eta^2 + V_k(\eta)\right).
\end{equation}
The effective potential $V_k(\eta)$ is,
\begin{equation}
V_k(\eta) = \begin{cases}
k^2 & \text{for $\eta < 0$,}\\
(k + \eta)^2 - 2\alpha \eta & \text{for $\eta \in [0, \Lambda]$,}\\
(k + \Lambda)^2 - 2\alpha \Lambda & \text{for $\eta > \Lambda$.}
\end{cases}
\end{equation}
If we neglected the electrodes (assumed the device region extends from $-\infty$ to $\infty$, rather than from 0 to $\Lambda$), the effective potential would be parabolic, leading to eigenstates and energies of a simple harmonic oscillator,
\begin{gather}
\psi_{m, k} = \sqrt{\frac{l_B}{W}} e^{\imath k \xi} e^{-(\eta + k - \alpha)^2} \mathcal{H}_m(\eta + k - \alpha),\\
\epsilon_m = \hbar \omega_c \left(m + \frac{1}{2}\right) + \hbar \omega_c \left(\alpha k - \frac{\alpha^2}{2}\right),
\end{gather}
where $\mathcal{H}_m$ is the $m$'th Hermite polynomial, $m = 0,\, 1,\, 2,\, \ldots$; $k = \frac{2\pi l_B}{W}p$ for $p \in \mathbb{Z}$; and $W$ is the device width.  If the device region is large but finite, we expect the eigenstates to take a similar form within this region~\cite{Halperin1982}.  This implies we are interested in states the center of which is within the device, or those for which $k \in (\alpha - \Lambda, \alpha)$.

The parameter $\alpha$ is a dimensionless measure  of the electric field strength.  If the device is operated at the Hull cutoff voltage, i.e. if the width of the classical cycloid trajectory is equal to the device length ($\frac{2 E}{B\omega_c} = L$), then
\begin{equation}
\alpha = \frac{\Lambda}{2},
\end{equation}
the allowed $k$ values are $k \in (-\Lambda/2, \Lambda/2)$ and the effective potential takes the simple form,
\begin{equation}
\label{eq:effective_potential}
V_k(\eta) = \begin{cases}
k^2 & \text{for $\eta < 0$,}\\
(k + \eta)^2 - \Lambda \eta & \text{for $\eta \in [0, \Lambda]$,}\\
k^2 + 2 k \Lambda & \text{for $\eta > \Lambda$.}
\end{cases}
\end{equation}
Note that the potential is parabolic within the device region and always contains a bound state as well as higher-energy scattering states.  In what follows we will restrict our attention to the $k = 0$ case, corresponding to an electron injected into the device with no momentum in the $x$ (or $\eta$) direction.

\begin{figure}
\centering
\includegraphics[width=\columnwidth]{potential_mod}
\caption{In the absence of an AC field, the magnetron operates as a diode.  The effective potential $V_0(\eta)$ is plotted above for three values of $\alpha$ (or, equivalently, DC voltage), for $k=0$.  Below and at the Hull voltage $V_H$, no conduction is observed, as an electron localized near the left edge of the device can be decomposed into bound states.   Above $V_H$, the electron can only be decomposed into scattering states, and the current is a constant independent of voltage.
\label{fig:quantum_diode}}
\end{figure}

In the absence of an AC field, the magnetron operates as a diode (see Figure~\ref{fig:quantum_diode}).  For $\alpha \leq \frac{\Lambda}{2}$, an electron initially localized just within the device, by the cathode, can be decomposed into eigenstates that do not enter the anode; consequently, there is no current.  For $\alpha > \frac{\Lambda}{2}$, however, states localized near the cathode can be decomposed into scattering states extending to the anode, and current is observed.  Increasing $\alpha$ even further affects states initially localized closer to the device's center, but since the electrons enter the device near the cathode, this does not increase the current.  Thus, the current-voltage characteristic is approximately a step function, in agreement with the classical model.

\section{Quantum model: AC operation}

\begin{figure}
\begin{center}
\includegraphics[width=0.8\columnwidth]{dimer_schematic}
\caption{A schematic of the two-mode quantum model of magnetron AC operation.
\label{fig:dimer_schematic}}
\end{center}
\end{figure}

To treat the interaction of the electron with the AC field, we will introduce a simplified effective model schematically depicted in Figure~\ref{fig:dimer_schematic}.  We will consider only one mode of the AC field, described by the Hamiltonian,
\begin{equation}
H_\mathrm{field} = \hbar \omega \left(\hat{b}^\dagger \hat{b} + \frac{1}{2}\right),\quad [\hat{b}, \hat{b}^\dagger] = 1.
\end{equation}
Since the effective potential $V_0(\eta)$ within the device region is parabolic, we will approximate the single-particle electron energy with another harmonic mode:
\begin{equation}
\label{eq:eff_hamiltonian_electron}
H_\mathrm{electron} = \hbar \omega \left(\hat{a}^\dagger \hat{a} + \frac{1}{2}\right), \quad [\hat{a}, \hat{a}^\dagger] = 1.
\end{equation}
The interaction energy between the electron and the field is~\cite[p.~57]{Marcuse1980},
\begin{equation}
\begin{split}
H_\mathrm{int} &= \frac{\hbar e}{2 L} \frac{1}{\sqrt{\mu C}}(\hat{a}^\dagger + \hat{a})(\hat{b}^\dagger + \hat{b})\\
 &= \frac{e}{2\Lambda} \sqrt{\frac{\hbar \omega}{C}} (\hat{a}^\dagger + \hat{a})(\hat{b}^\dagger + \hat{b}),
\end{split}
\end{equation}
where $C$ is the magnetron's capacitance.  Defining
\begin{equation}
J = \frac{e}{2\Lambda}\frac{1}{\sqrt{\hbar\omega C}},
\end{equation}
and performing a rotating wave approximation---justified as long as the coupling is small, $J \ll \omega$~\cite{Walls2008}---we can write the total effective Hamiltonian in dimensionless form,
\begin{equation}
\label{eq:eff_hamiltonian_total}
H_\mathrm{eff} = \hbar \omega \left(\hat{a}^\dagger \hat{a} + \hat{b}^\dagger \hat{b} + J(\hat{a}^\dagger \hat{b} + \hat{b}^\dagger \hat{a}) + 1\right).
\end{equation}
This model incorporates the effects of the DC and AC fields but does not describe the electron being absorbed by the anode.  In the absence of this dissipative process, neither the classical nor the quantum model predicts net energy transfer to the AC field.

To model electron loss from the magnetron cavity, we couple the system described by $H_\mathrm{eff}$ to a fermionic reservoir representing the anode:
\begin{equation}
H_\mathrm{E} = \sum_k \varepsilon_k \hat{r}_k^\dagger \hat{r}_k,\quad \{\hat{r}_k, \hat{r}_l^\dagger\} = \delta_{k,l}.
\end{equation}
The annihilation (creation) of an electron in a state $n$ of the approximate harmonic potential within the device is described by the fermionic operator $\hat{c}_n$ ($\hat{c}_n^\dagger$), with $\{\hat{c}_m, \, \hat{c}_n^\dagger\} = \delta_{m,n}$.  The electron part of the Hamiltonian can still be written as Eq.~(\ref{eq:eff_hamiltonian_electron}),\footnote{Except that the zero-point energy is no longer $1$ but rather $\frac{1}{2} + \sum_n \hat{c}_n^\dagger \hat{c}_n$.} but the operator $\hat{a}$ is now \emph{defined} as,
\begin{equation}
\hat{a} = \sum_{n=0}^\infty \sqrt{n+1} \,\hat{c}_n^\dagger \hat{c}_{n+1}.
\end{equation}
On the subspace of one-electron states, the operator $\hat{a}$ satisfies the usual bosonic commutation relation.  The most general form of the coupling between the electron in the device and the fermionic reservoir is,
\begin{equation}
\label{eq:coupling}
\hat{V} = \sum_n \sum_k \gamma_{n, k} (\hat{c}_n + \hat{c}_n^\dagger)(\hat{r}_k + \hat{r}_k^\dagger).
\end{equation}
Since we are not interested in the dynamics of the reservoir, we will treat the electron and AC mode as an open quantum system~\cite{Breuer2002, Wiseman2010}.  This will allow us to derive equations of motion for the system degrees of freedom only.

The details of the derivation, which uses the approach of Tomka~\cite{Tomka2014} originally developed by Beaudoin et al.~\cite{Beaudoin2011}, are in Appendix~\ref{sec:master_eq_derivation}.  Here, we will only recapitulate the assumptions:
\begin{enumerate}
\item Born approximation: the density matrix of the anode is only negligibly affected by the interaction with the electron in the device.
\item Markov approximation: the anode correlation functions decay at a rate much faster than any other timescale of the model.
\item Rotating wave approximation in the system-bath coupling.
\item The anode is in thermal equilibrium, and the Fermi factor of the relevant levels is approximately zero.  This implies the anode never emits electrons into the device, and any electron impinging on the anode from the device will be absorbed.
\item We ignore the frequency shift of the device energy levels that results from the coupling to the reservoir.    The frequency shift is in general not negligible.  However, its main consequence is that the actual emission frequency of the device is different from the DC cyclotron frequency $eB/\mu$.
\item The system-reservoir coupling constants satisfy $\gamma_{n,k} = \gamma_{n, k'} \equiv \gamma_n$ for all $n, k, k'$.  This is a technical assumption which simplifies the form of the final results; it could be substantially relaxed if we wished to make more specific assumptions about the band structure of the anode.
\end{enumerate}
Given these assumptions, the time evolution of the system density matrix is given by an equation of the Lindblad form,
\begin{equation}
\label{eq:lindblad}
\dot{\rho}  =-\imath [H_\mathrm{eff}, \rho] + \hat{A}\rho\hat{A} - \frac{1}{2}\left(\hat{A}^\dagger \hat{A} \rho + \rho \hat{A}^\dagger \hat{A}\right),
\end{equation}
where the operator $\hat{A}$ is,
\begin{equation}
\label{eq:lindblad_operator}
\hat{A} = \sqrt{2\pi \sigma} \sum_{n = 0}^\infty \gamma_n \hat{c}_n,
\end{equation}
with $\sigma$ the anode density of states.\footnote{The density of states is a constant because we have assumed the device, including the electrodes, to be confined to a plane.} Thus, the effect of the anode is to remove electrons from level $n$ at a rate $\gamma_n$.

What are the values of the dissipation rates?  The scattering modes of the effective potential $V(\eta)$ [Eq.~(\ref{eq:effective_potential})] overlap with the electrodes; an electron excited into one of these levels will be removed from the device at a rate of order $L/v \sim L\sqrt{\frac{\mu}{\hbar \omega}} \gg J$.  But as we observed while discussing the classical device, the lower energy electrons must also be removed from the device, albeit at a slower rate $\sim J$, if net emission is to be observed.  Therefore, we will assume $\gamma_n$ is a step function of $n$, taking values of order $J$ for the bound states and much larger values for the scattering states.

The model described above could be further extended in interesting ways, some of which we consider in the final section.  But the structure we have built up so far is sufficient to capture the essence of magnetron dynamics, as we discuss next.

\section{Emission from a Fock state}
\label{sec:numerical_results}

On the face of it, the effective quantum model is very different from the classical one and rather more complicated.\footnote{In a certain sense, the quantum model is actually much simpler.  While the classical model is defined in terms of partial differential equations on a continuous space, the quantum model is described by ordinary differential equations on a discrete space.}  This suggests two questions: does the quantum model agree with the classical one?  And does it go beyond it, predicting any new effects?  To answer them, we simulate the model using the quantum jump (Monte Carlo wave function) method~\cite{Dalibard1992, Plenio1998}.

The central prediction of the classical model is that energy will be transferred on average from the DC electrical field which accelerates the electron to the AC field.  This phenomenon is reproduced in the quantum model.  The top panel of Figure~\ref{fig:gain} shows the expected number of quanta (or energy in units of $\hbar \omega$, or---in the case of the EM mode---number of photons) attributable to the electron and the field over time, for an initial Fock state of the field and the electron in which the two have equal energy.  Since the electron decays from the device, in the long-time limit it contributes nothing to the system's energy.  The field, however, contains more photons at long times than it contained initially.
\begin{figure}
\begin{center}
\includegraphics[width=\columnwidth]{step_profile_2_quanta}\\
\includegraphics[width=\columnwidth]{barchart}
\caption{Transfer of energy from the DC to the AC field in the quantum magnetron.  The top panel shows the time evolution of the expected number of electron quanta, $\langle \hat{a}^\dagger \hat{a}\rangle$ (red), and AC mode photons, $\langle \hat{b}^\dagger \hat{b}\rangle$ (blue), over time.  The electron decays from the device, but deposits in the AC field some of its energy, which was ultimately derived from the accelerating DC voltage.  The bottom panel shows the final distribution over Fock states of the EM field: an electron could absorb or emit photons, but sequences of more than a few absorptions did not occur.  See the text for further discussion. \label{fig:gain}}
\end{center}
\end{figure}

What is the mechanism behind this process?  The interaction between the electron and the AC field enables emission and absorption events.  Because the Hamiltonian of Eq.~(\ref{eq:eff_hamiltonian_total}) is symmetric with respect to a relabeling of the modes ($\hat{a} \to \hat{b}$, $\hat{b} \to \hat{a}$), an isolated system would, over times $> 1/J$, be equally likely to emit $m$ photons (transfer $m$ quanta from the electron to the field) as to absorb $m$ photons, for any $m$.  In the open system, this symmetry is broken by the decay rates $\{\gamma_n\}$ that depend on $n$, the index of the electron level.  A sequence of many emissions is now more likely than a sequence of many absorptions, because just a few net absorptions will place the electron in a scattering state---the electron will be removed from the device before it can absorb further.  This early termination of chains of net absorptions is illustrated in the bottom panel of Figure~\ref{fig:gain}, which shows the probability distribution over final Fock states of the EM field.  The distribution is dramatically skewed to the right: sequences of many emissions (field quanta $\gg 50$) are common, but those of many absorptions (field quanta $\ll 50$) are never observed.

Amplification of an existing AC field, then, is predicted by both the classical and the quantum models.  In the former model, the device can \emph{only} operate as an amplifier: if the initial amplitude of the AC field is zero, the classical prediction is that it will stay zero.  In contrast, the quantum model of the previous section predicts spontaneous emission even if the field is initially in a vacuum state.  This is illustrated in Figure~\ref{fig:spontaneous_emission}. (In practice, there is always nonzero field present in the device due to thermal fluctuations, and the magnetron will start up without an external input even in the classical model.  At low temperatures, however, the contribution of spontaneous emission should become significant.)
\begin{figure}
\begin{center}
\includegraphics[width=\columnwidth]{spontaneous_emission_2_quanta}
\caption{The quantum model of the magnetron predicts spontaneous emission.  The expected energy of the electron (red) and field (blue) are plotted over time, for an initial Fock state of the electron and vacuum state of the field.  Initially, the field carries no energy, but by the time the electron has decayed, about half of the electron's initial energy has been transferred to the field.  (The rest of the electron's energy has been lost to the reservoir.)
\label{fig:spontaneous_emission}}
\end{center}
\end{figure}

\section{Conclusions and Outlook}

Inspired by the classical model of the cylindrical diode magnetron, we have proposed an effective quantum model consisting of two bosonic modes coupled to a fermionic reservoir.  The quantum model captures the essential behavior of the established classical approach by predicting a net energy transfer from the DC to the AC field.  But the quantum framework can explain a greater range of phenomena, such as spontaneous emission when the field starts out in the vacuum state.

Our results suggest that a solid-state analog of the magnetron would continue to act as a radiation source, with the critical difference that the emission frequency could be elevated to the terahertz range by using a material with small effective mass.

The work discussed here can be extended in interesting ways.  Accurate numerical simulations accounting for the device geometry, perhaps using non-equilibrium Green's function methods~\cite{Datta2000}, are the next natural step. Investigating the wide variety of vacuum tube designs beyond the cylindrical anode magnetron (and the interplay between ballistic electron dynamics and electrodynamics they exploit) is another possibility.  Finally, one could develop entirely novel designs based on materials with nonparabolic band structures such as graphene.  The use of unevenly spaced Landau levels as gain media for lasers had been patented in the 1960s~\cite{Wolff1966}, but at the time thought impossible to realize.  Today we possess both the experimental and theoretical tools to finally implement such concepts.

\begin{acknowledgments}
We wish to thank David Bishop, Joseph Checkelsky, Michael Kolodrubetz, Roberto Paiella, and Stephen W.~Teitsworth for helpful discussions.  TP is grateful for the hospitality of Joshua E.~S.~Socolar, the Duke University Physics Department, and the Graphene Research Centre at the National University of Singapore.

This work was supported in part by Boston University and by Banco Santander.
\end{acknowledgments}

redpajama_set_name: RedPajamaArXiv