text:
Last modified 1399 days ago (Sept. 17, 2015)
According to fire and ambulance transmissions, monitored by the newspaper:
10:07 a.m. — Marion ambulance transferred a patient from St. Luke Hospital emergency room to Newton Medical Center.
11:40 a.m. — Hillsboro ambulance transported a man who fell approximately 30 ft. out of a tree from the 300 block of W. Grand St. to Hillsboro Community Hospital. He was later air lifted to Wesley Medical Center, Wichita. Hillsboro fire responded for lifting assistance.
3:47 p.m. — Hillsboro ambulance responded to the 200 block of Ash St. for a woman who had fallen. Transport was not specified.
2:09 a.m. — Marion ambulance transferred a patient from St. Luke to Newton Medical Center.
3:58 a.m. — Peabody first responders and Marion and Florence ambulances responded to Nighthawk Rd. north of US-50 for an automobile accident. Marion responded because it was "five minutes away." One person was transported to Newton Medical, another refused transport, and two others were released from the scene.
8:57 a.m. — Lincolnville first responders, Lincolnville fire, and Marion ambulance responded to a house north of the Holy Trinity Church in Pilsen for a man in his 20s who was found on the floor, breathing but not conscious. He was transported to St. Luke.
1:13 p.m. — Hillsboro first responders and Hillsboro ambulance responded to Rod's Tires and Service in Hillsboro for a woman whose wheelchair had tipped over outside. She was transported to HCH.
4:38 p.m. — Hillsboro ambulance transported a Tabor student in her 20s that was believed to be suffering from heat stroke from the Tabor College Campus Recreation Center to HCH.
8:56 p.m. — Marion ambulance, rescue, and Lincolnville first responders responded to 290th Rd. south of the cemetery for a vehicle that had turned onto its side. The two passengers were not transported.
7:38 a.m. — Hillsboro ambulance, first responders, and fire responded to Oakwood Apartments for a male subject laying on the sidewalk complaining of dizziness. Dispatchers then called for more responders after they found the subject had no pulse or respiration. He was transported to HCH.
1:55 p.m. — Lost Springs fire responded to Centre High School for two different fire alarms going off, but were then dismissed after Centre High School informed dispatchers that there was a faulty fire alarm on a door.
7:02 p.m. — Hillsboro and Marion ambulances responded to the 200 block of S. Ash St. in Hillsboro for a woman vomiting and having difficulty breathing. Dispatchers cited a possible allergic reaction as the cause. She was transported to HCH.
12:09 a.m. — Marion ambulance transported a man with low blood sugar from the 200 block of Walnut St. to St. Luke. Marion fire assisted with lifting.
2:25 a.m. — Marion ambulance was called to transfer an advanced-life-support patient from St. Luke to St. Francis Via Christi, Wichita, however, Marion was not equipped for an ALS transfer, so Peabody responded.
7:31 p.m. — Marion ambulance responded to the 400 block of S. Roosevelt St. for a 6-year-old who was in the back seat of a vehicle and bumped her head. She was transported to St. Luke.
11:20 a.m. — Marion ambulance and Hillsboro ambulance as first responders were called to Parkside Homes for an elderly woman who had fallen and hit her head. She was transported to HCH.
3:07 p.m. — Marion ambulance transferred a patient from St. Luke to St. Francis.
3:55 p.m. — Hillsboro fire received reports of a couple spots in the ditch on fire three to four miles east of Hillsboro on 190th Rd. in the area of Trinity Gardens. Dispatchers did not have any controlled burns in that area.
12:57 a.m. — Hillsboro ambulance responded to Parkside Homes for a man complaining of severe pain. He was transported to HCH.
1:04 a.m. — Marion ambulance responded, by officer request, to the 600 block of S. Freeborn St. for a woman with reported head trauma. The woman was not transported.
11:19 a.m. — Hillsboro first responders and Marion ambulance were called to Parkside Homes for a transfer to HCH. Hillsboro ambulance told dispatchers to cancel Marion ambulance because Hillsboro had a full crew.
8:20 p.m. — Marion ambulance and Marion fire responded to the 700 block of N. Cedar St. for a woman who was unconscious and turning blue. She was transported to St. Luke, where she later died.
6:19 p.m. — Florence ambulance and Peabody ambulance were called to Peabody Health and Rehabilitation Center for a transfer to Newton Medical Center. Peabody was initially first-responder status, but ended up having a full crew, so Florence was dismissed.
7:35 p.m. — Marion ambulance and Lincolnville first responders responded to 310th Rd. between Sunflower and Timber Rds. in Lost Springs for a young man threatening to hurt himself. He was transferred to St. Luke.
11:53 p.m. — Marion ambulance responded to the sheriff's office at the jail per officer request for an unstated issue. The call was a non-transport.
1:42 a.m. — Florence ambulance responded to the 800 block of Main St. for a woman in her 70s who needed lifting assistance.
7:36 a.m. — Hillsboro ambulance, Goessel first responders, and Goessel fire responded to Alamo Rd. between 100th and 110th Rds. for a woman who was complaining of pains in her wrist, arm, and leg after she lost control of her car and hit a tree. She was air lifted to Wesley Medical Center.
12:24 p.m. — Peabody ambulance responded to the Peabody Health and Rehabilitation Center for a woman in her 60s who was choking. She was transported to Newton Medical Center.
12:27 p.m. — Marion ambulance responded to the jail for a possible heart attack. The person was not transported.
2:14 p.m. — Marion fire responded to a hayfield on fire east of Bluestem Rd. on 240th Rd. Chase County, Florence, and Lincolnville fire were called for mutual aid.
2:41 p.m. — Goessel fire responded to Chisholm Trail Rd. between 130th and 140th Rds. for a controlled burn that got out of control. The fire was put out.
6:07 p.m. — Marion ambulance responded to Quail Creek Rd. between 140th and 150th Rds. for a man who had reportedly fallen from a roof and hit his head. The man was not transported.
Last modified Sept. 17, 2015


Cyber Monday is one of the biggest online shopping days of the year. In 2017, Cyber Monday online sales grew to a record $6.59B, compared with $2.98B in 2015, and $2.65B in 2014.
It's also becoming one of the biggest online crime days of the year. Sixty-four percent of companies report an increase in cyber crimes on Cyber Monday. Hackers are fully aware of how much money they can steal from e-commerce sites and customers during this very busy day, that it's the day to hit big sites that do not have proper protection.
Bragging rights: Little is as attractive to a hacker than taking down an e-commerce site during the biggest shopping day of the year and bragging about it on social media.
"Free" stuff: Hackers will use automated tools to exploit known vulnerabilities on e-commerce and payment platforms to trick goods out of online sites.
Stealing customers: Unscrupulous businesses can use hacking tools and bots to send huge amounts of traffic to your site. This creates stress on your servers and causes a poor experience, or completely blocks legitimate customers, prompting them to leave your site to search for alternatives.
Automated Scanners: scanning thousands of sites searching for vulnerabilities.
Phishing attacks: using emails, popups, and messages to trick users into sharing account credentials and credit card information.
Malware: injecting malware into e-commerce sites and using it to steal money and credentials from users, such as MagentoCore Malware.
DoS and DDoS attacks: using open source tools and/or paid services to easily and inexpensively produce a DoS/DDoS attack; on Cyber Monday e-commerce sites expect a burst in traffic, making it harder to detect traffic anomalies.
Gift Card Cracking: Running millions of number variations through gift card forms to identify gift card numbers that have positive balances and then sell them before the legitimate card holder has a chance to use it.
Account Takeover: Using automated bots to hijack customer account credentials.
Manipulating Payment Systems: Hacking payment systems to change pricing and then purchasing expensive products at low or no price.
Use HTTPS encryption from a known Certificate Authority (CA): Implement strong authentication for web and data protection.
Patch your system: Make sure that your e-commerce system and plugins are always up to date and don't use untrusted open source software.
Don't store sensitive customer data: Only store what is mandatory for maintaining your e-commerce site; storing credit card numbers, expiration dates, and CVV codes is forbidden by PCI Standards.
Scan for vulnerabilities: Scan your site's code and application layer regularly; there are multiple tools online that can provide information and suggestions for securing your e-commerce site.
Use a Web Application Firewall: Protect your application against malicious traffic and monitor the traffic to your site.
Implement L3, L4, and L7 Denial of Service Attack Protection: Protect against these common attacks before they happen, instead of having to mitigate the aftermath.
StackPath Web Application Firewall security features provide exceptional protection for your e-commerce site.
Block vulnerability scanners and brute force attempts: Hackers use bots to scan your web application's surface, and search for vulnerabilities that can be exploited during future attack and penetration activities. Our automated traffic detection and prevention tools block unauthorized vulnerability scans, creating a headache for potential hackers, who are denied the ability to map your site and plan malicious activities, making an attack much more difficult and expensive.
Full DDoS Protection: The StackPath network provides massive L3 and L4 DDoS protection while the WAF provides full L7 DDoS protection with an extremely high degree of accuracy.
FREE private SSL certificates: Enable a free private SSL certificate , issued by Comodo, for your domain. Your certificate will be auto-renewed every 3 months to keep your security consistently up to date.
StackPath rate limitation: Create rate limitation rules in StackPath WAF for specific URLs to prevent resources abuse.
StackPath WAF includes web application firewall protection, DDoS protection, and a private SSL certificate issued by Sectigo (formerly Comodo CA) for as little as $10/month. Learn more here.


Students are the most important part of any high school student club, obviously. To the rest of the world, we may seem like a bunch of engineering nerds who spend weeks grouped together designing a robot. Seem's pretty bland, eh? While we may be guilty of all those things, being on the Cy-Borgs is about so much more than that. Every week, we get a chance to hang out with our friends as we work on developing new ideas and concepts that will radically change the way our world works.
Ready to get in contact with us?
Contact us with our email address, crrt3335@gmail.com, and we will gladly offer you chances to see our workshop, meet the team, and become a member yourself!


CRA handles BrickStreet's internal and external communications including: advertising, public relations, paid media, brand strategy, creative services, event management, employee recognition, research, sponsorships and much more.
CRA manages DC Lottery's online platforms and provides strategic, creative and digital support for game launches, promotions, events, sponsorships and much more.
CRA represents the Insurance Fraud Program (IFP) and Help Eliminate Auto Theft (HEAT) Program for the Virginia State Police. Services provided by CRA include advertising, public relations, paid media, brand strategy, event management, sponsorships and much more.
More than 40 years of experience in helping create and communicate brands.
A strategic firm that combines experience with innovation to garner results for clients.
CEO Susan Lavenski is majority owner of CRA. She and partners Alisha Maddox, Matt Isner and Matt Fidler have 85 years of combined experience in the communications industry.
CRA Communications d.b.a. Charles Ryan Associates (CRA) is a brand communications firm offering advertising, creative, public relations, digital and social media strategies, as well as in-house video production. Combining more than 40 years of experience and innovation, we deliver customized, results-driven solutions for our clients' communications needs.


Like a swirling cosmos or scoop of delicious rainbow sherbet, the Rainbow Marble Swirl Phone is a delightfully colorful treat. It's also a great way to add a bit of extra security to your phone case!
The 360-degree ring gives you a more secure grip of your phone from every angle. And once you've attached it to the back of your iPhone, its strong adhesive sticks securely to your case so you don't have to worry about it falling off. If you switch cases, your phone ring can be removed and reused. This Rainbow Marble Swirl Phone Ring gives you the bubblegum fun you want with the security you need to prevent cracks and scratches!


51 loveliest USA nation ladies were together in Las Vegas on 16 June for the 2013 Miss USA Competition, igniting a contest of beauty, brains & of course bikinis.
But did the right lady get home the crown? Read here on www.celeberg.com complete review of the judges, the acts & the newly crowned Miss USA.
While we are used to a top 5 this year was a small piece different.
After Miss Utah, Alabama, Illinois, South Carolina & Connecticut were selected as the final 5, Giuliana Rancic shocked and amazed the remaining competitors by letting them know that spectators at home voted for a 6th on Twitter.
The further finalist was Ali Negent from Texas. After the much time a new winner was crowned. It came down to Miss Alabama & Miss Connecticut.
Giuliana & Nick Jonas were on hand to host the huge occasion & sincerely, we can't imagine of two people more capable for the work.
Giuliana always leaves us in stitches when she takes genuine on E!'s Fashion Police, & she absolutely kept the mood light as she judged the Miss USA competitors. It was very entertaining and full of fun event.


text:
\section{Introduction}

The size and intricacies of quantum systems have long motivated quantum computing (QC) research~(\cite{montanaro:16}). Recently, quantum algorithms have incorporated variational techniques~(\cite{peruzzo:14,farhi:14}), creating the subfield of quantum machine learning (QML)~\cite{mehta:19}, which includes applications like optimization and quantum chemistry. Much like its classical counterpart, QML leverages gradient-based methods to seek optimal solutions, but with the added benefit of an exponentially large solution kernel~(\cite{schuld:21}). For instance, the most common form of QML uses quantum expectation values to define objective functions and classical gradient descent to optimize quantum networks. Both QC and QML ultimately seek to demonstrate a tangible improvement over classical computing for useful tasks, a concept known as quantum advantage.

As QC and QML are still nascent fields, simulation remains essential to both the characterization of quantum systems at scale~(\cite{carleo:19}), as well as the design heuristic algorithms~(\cite{cerezo:21}). However, simulating quantum algorithms on informative scales is a challenging task, as quantum state space overwhelms classical resources with even relatively few quantum bits (qubits). This limitation is partially overcome with networks of factorized tensors~(\cite{bridgeman:17}), which are typically more efficient than the traditional vector representation of quantum states, providing up to an exponential reduction in overhead with respect to the number of qubits $n$. In tensor network-based simulation, both quantum states, gates, and operators are expressed in a factorized form, which compress the quantum circuit by including only relevant ranks. Operations can be efficiently done directly in the factorized form without having to reconstruct any dense tensor. The individual factors are contracted, or summed over at corresponding indices, along an optimized contraction path. These paths are typically chosen to minimize either memory or runtime~(\cite{smith:18}). Quantum tensor contractions consist of highly parallelizable and arithmetically intensive operations, making them prime candidates for GPU acceleration~(\cite{cuTensor}). A similar approach has proven useful in deep learning, for instance by expressing the weights of linear~(\cite{novikov:15}) and convolutional~(\cite{kossaifi2020factorized}) layers of deep nets in factorized form. However, this approach remains under-explored in quantum simulation.

\begin{figure}[!b]
\centering
\includegraphics[width=0.93\textwidth]{tlquantum}
\caption{TensorLy-Quantum sits atop the hierarchy of TensorLy libraries, inheriting its extensive tensor methods and providing full Autograd support for the features (circuits, operations, density operators, and algorithms) required by quantum simulation.}
\label{fig:diagram}
\end{figure}

While a variety of quantum simulators exist~(\cite{oakridge,qiskit,rigetti}), relatively few utilize tensor methods. Among those that do, integration with essential machine learning tools, such as automatic differentiation (i.e., PyTorch Autograd), is rare~(\cite{gray:18}). Moreover, advanced functionalities, like tensor regression, while used in machine learning~(\cite{panagakis2021tensor}), are so far unused in quantum simulation.

To address such deficits, we have created TensorLy-Quantum, a PyTorch API for efficient tensor-based simulation of QC and QML protocols. It is a member of the TensorLy family of libraries and makes use of its extensive features and optimized implementations~(\cite{kossaifi:19}). As a result, it is the first quantum library with direct support for tensor decomposition, regression, and algebra, which have proven fruitful in a myriad of fields and stand to enrich QC and QML research. Uniquely, TensorLy-Quantum provides built-in support for Multi-Basis Encoding for MaxCut problems~(\cite{patti:21}) and was used to develop Markov Chain Monte Carlo-based QML~(\cite{pattiMCMC:21}). Through these features, TensorLy-Quantum aims to provide extensive tensor-based quantum simulation capabilities, providing a simple and flexible API for quantum algorithms research. Moreover, its optimized functionality and lightweight API would make it an efficient QML backend to supplement other quantum simulators.

\section{TensorLy-Quantum}

TensorLy-Quantum offers functionalities essential to quantum computation (Fig.~\ref{fig:diagram}). The library provides a high-level interface for quantum circuit simulation, with an API that follows the PyTorch Module structure and offers end-to-end support for automatic differentiation via PyTorch Autograd.
Users can seamlessly design quantum circuits by combining either pre-defined or customizable quantum gates, operators, and states.
The library also provides extensive circuit operations, ranging from pre-contraction techniques that simplify contraction path search, to dynamic partial traces that compactly evaluate quantum circuit outputs. In addition to specializing in factorized representations, such as Matrix-Product State (known as tensor-train in the Machine-Learning literature~\cite{oseledets2011tensor}), TensorLy-Quantum also supports efficient analysis on quantum density operators, both pure and reduced, including partial traces and information metrics. TensorLy-Quantum is designed to bridge the gap between practitioners of quantum and classical machine learning, providing an intuitive and Pythonic interface that is supplemented with extensive documentation and 97\% unit-test coverage.

TensorLy-Quantum leverages the deep tensorized network capabilities of TensorLy and TensorLy-Torch, using these to mitigate the significant computational overhead posed by quantum state space. It is suitable for both CPUs and GPUs, and that it acquires the GPU acceleration of these parent libraries. Likewise, while TensorLy-Quantum is PyTorch-based, TensorLy's flexible backend structure enables dynamic transitions between many of the most utilized Python libraries for machine learning and numerical analysis. Due to its strategic location atop the TensorLy ecosystem (Fig.~\ref{fig:diagram}), TensorLy-Quantum is exceptionally positioned to accelerate and innovate quantum simulation. In what follows, we illustrate the scalability and speed of our library, particularly on GPU.

\section{Performance}

Due to its efficiency and scalability, TensorLy-Quantum holds world records for the number of qubits simulated in a successful quantum optimization algorithm. These records include both the largest single-qubit implementation of MaxCut~(\cite{patti:21}) and a multi-GPU scaleup that used cuQuantum as a backend for tensor network contraction~(\cite{NVIDIA:21, cuQuantum}).

\begin{figure}
\centering
\captionsetup[subfigure]{labelformat=empty}
\quad
\subfloat[\centering]{{\includegraphics[height=0.4\textwidth]{benchmark1.png} }}
\hfill
\subfloat[\centering]{{\includegraphics[height=0.4\textwidth]{benchmark2.png} }}
\quad
\vspace{-20pt}
\caption{Logarithmic-scale runtime comparison for (left) full-rank partial trace from $n$ to $m$ qubits and (right) contraction operations on large-scale networks of factorized tensors.}
\label{fig:1}
\end{figure}

We highlight this performance with numerical experiments, showcasing both operations on the full-rank density operator (a reshaped, matrix-like quantum state representation) and tensor contraction functionalities of TensorLy-Quantum. In the density operator experiments, TensorLy-Quantum outperforms the leading software, QuTip~(\cite{johansson:12}), by two orders of magnitude on CPU for partial traces of $n=20$ to $m=14,10$ qubit systems and four orders of magnitude on GPU. TensorLy-Quantum can also complete full-rank calculations on larger quantum systems than its predecessors through the use of compact tensor algebra.

Experiments on networks of factorized tensors include a forward pass of the expectation value $\langle H \rangle$, and the full gradient calculation $\nabla \langle H \rangle$, where $H$ is a transverse-field Ising model Hamiltonian of $n=500$ qubits. The circuit ansatze contain $5000$ gates and the gradient calculation constitutes a full backpropagation with PyTorch Autograd. GPU acceleration provides a $20$x speedup over the CPU implementation. Moreover, we emphasize that without factorized tensor methods, simulations of this size are impossible, as matrix-encoded Hamiltonians require $\sim 10^6$ GB of memory for systems of merely $n \sim 25$ qubits. Contraction was accomplished with the Opt-Einsum library~(\cite{smith:18}) and all GPU experiments were done on an NVIDIA A100 GPU.

\section{Conclusions}
TensorLy-Quantum is an open-source library designed to streamline the workflow of QC and QML researchers. It provides highly optimized operations for large-scale and compute heavy quantum circuit simulations, buttressed by extensive documentation and high-coverage unit-testing. Its API seamlessly integrates with PyTorch and provides an interface that is amenable to diverse scientific backgrounds, accessibly packaging state-of-the-art tensor network operations alongside quantum protocols. Moreover, its lightweight API and optimized functions would make it an excellent backend for existing quantum simulators. As TensorLy-Quantum uses the TensorLy libraries as a backend, it offers direct access to tools unavailable in other quantum APIs, like tensor regression and decomposition, as well as convenient conversion to the native data structures of numerous backends. In future releases, we will expand both the efficiency and scope of TensorLy-Quantum, adding features such as causality-simplified contraction, quantum state compression, and novel quantum protocols, as well as support for more factorized representations, using TensorLy's existing tensor decomposition.

\vskip 0.2in

redpajama_set_name: RedPajamaArXiv


It's entirely likely that the more experienced Washington Capitals will outlast the young, upstart Maple Leafs in the first round of the ongoing NHL playoffs. But while the Leafs were the 8th seed going into the spring showdown, my guess is they weren't really a team the Caps wanted to play.
For that matter, I'm not sure any of the upper tier, high-seed clubs would really want the Leafs as an opponent right now. Why? It's not that they are not beatable. I'm sure they can be beaten. It's just that they seem to have an attitude about them, some kind of self-belief that, despite the fact they haven't won anything yet as a team and they are young and inexperienced (especially when it comes to NHL playoff hockey), they just know they're good. They believe they can play with anyone.
While every team in the playoffs is dangerous, the Leafs have the kind of speed and skill level (and yes, youthful enthusiasm) that is hard for even the most determined teams to defend against.
That confidence maybe comes from Babcock, but it also has to do with the fact that there are a lot of young guys on this team that can flat out play. They're fast. They're well coached. They have an excellent netminder in Andersen who is stopping a lot of pucks. And, they seem to enjoy playing with one another, which has to count for something.
As with most teams at this time of year, the energy levels on the club are high. While each game is a grind and there isn't supposed to be much space, they're creating chances and have buried just enough to be even in their series against the President's Trophy winners.
They lost a heartbreaker on the road in Game 1. Their response? Play another strong road game, and keep playing to win. This time, they did.
They'll have to overcome another loss on the blueline, with Polak now done for the season. I like Polak a lot. He brings the kind of grit that every team needs, especially at this time of year. But teams like the Bruins are having their own challenges in terms of injuries and blueline depth, and managing to play pretty good playoff hockey, too. So Babcock will just have to tap the next guy on the shoulder and make sure they're ready—especially if Zaitsev is not available for Game 3 on Monday night at the ACC.
That said, I don't think anyone's worried. They just seem ready to do what they have to do.
Heck, Gardiner has already played more than 65 minutes in the first two games of the playoffs. (I remember posting here years ago that he was one of those guys who could seemingly skate all day, play long shifts and rarely looked tired.) He can handle it. For his part, Rielly has played almost 65 minutes as well and been a difference-maker, too. It brings back memories of the salad days of McCabe and Kaberle on the Pat Quinn Toronto blueline of the early 2000s, when the duo would routinely play 30 minutes a night come playoff time, and more as needed in some of those classic overtimes contests.
Hunwick has logged over 60 minutes so far, and Marincin was a plus 2 in over 30 minutes of ice time in a high-stress Game 2.
Again, it just feels as though the Leafs can handle what the Caps have been throwing and will be able to throw at them.
Washington may have another gear we haven't seen yet. We'll see. Maybe they underestimated the Leafs. Who knows? But the important thing is the Leafs have clearly not underestimated themselves.
That doesn't guarantee they will win the series, but I'd be stunned if they didn't make it very, very difficult for the favoured Capitals to do so.
When Zaitsev and Polak 'went down' at the end of the season, it seemed our thin hopes were 'lost' and now we all realize just how valuable Roman Polak has been (in his absence making the heart grow fonder), nevertheless I am still strangely hopeful at the prospect of better days ahead.
If we are truly beginning to believe that our beloved Leafs are showing signs of new life, what better day to find ourselves enjoying the prospect of a resurrected franchise than Easter Sunday?! Not to compare such events (as though each are as significant as the Reason for the day),but it also just happens to be the celebration day upon which I was born in '62 (Easter moves around the calendar, so mine was almost a week later than this year's celebration).
I arrived 10 minutes before the game started, according to my father's humourous and self-deprecating "prophecy" to the nurses and doctor, that I needed to arrive in time for the game so he could watch it (BTW, he would never have actually left for that reason, so it was great that he got to experience a 'both/and' opportunity).
Since he couldn't stay with Mom at the hospital in those days, he actually did pick up my sister and go home, so he was able to see most of the game from the 2nd Period on!
Too bad I didn't start to show an interest until 1968... yet here I am, hopeful for better things as the present iteration of the Leafs grants renewed hope in my favourite pastime!
Happy Easter, Michael. Hope you have opportunity for some enjoyable family time today... and thanks for taking some time to share your thoughts with us today. I think you're entirely correct in your assessment of teams that aren't really excited about facing our Leafs!
Happy Easter to you as well, InTimeFor62. Your wonderful story of the day you were born, as the Leafs were preparing to win the Cup against the Hawks in the spring of 1962, is a hopeful one at a time when the blue and white are turning a corner, for sure.
Yes, they'll have to deal with injuries, but that's what good teams do at this time of year. And I dare say the Leafs are now just that- a good team.
Well, now we know what happened Monday night! The breaks (and goal posts) went our way, and the young Leafs are up 2-1. While it's hardly a commanding lead, and each game has been an OT toss-up, the encouraging thing for me is that we haven't been blown out. This isn't a mismatch, as many feared and most prognosticated.
Whether it's the lack of fear of an underdog, the confidence imbued by the coach, or just the undeterred desire of some highly focussed (and talented) athletes, this run we're on is truly the icing on the cake. This team has progressed so far beyond what I expected, and was prepared to happily accept, that I hardly know what to say. We're seeing skill levels that we haven't seen for a very long time. And I don't know if we've ever seen it spread among so many players. The Leafs of the early 60's come to mind. What do you think, Michael?
I can say this: no matter what happens in the playoffs, what a year! And, as the song goes, the future's so bright I gotta wear shades!
I think Leaf fans can justifiably feel good now and going forward because we know the team should only get better in the years ahead. There is finally stability in the organization, from ownership (who we rarely hear from, thankfully) through to management, the coaching staff and players. No mention of trades all the time, dissatisfied players, etc. Just a bunch of players who aren't afraid of losing, it seems. And so many of them are "kids", still.
With regard to your early '60s reference, Gerund, heck, while we both recognize we are talking about very different eras, those Leaf teams did build not only with old-timers and veterans like Bower, Armstrong, Stanley, etc. but also with great kids like Mahovlich, Duff, Nevin, Brewer and Keon (and later Pappin, Ellis and Stemkowski). Those Leaf teams would never have won without the "kids", and this Leaf team wouldn't be where they are without Marner, Matthews, et al.
If this team continues to grow in confidence, I don't doubt they can play with anyone. Thanks Gerund.


A comprehensive, first ever collection of short stories by the noted British crime author, including the brand-new Angel short story 'Ealing Comedy'.
286 pp. B-format paperback anthology.
Angels and Others is the comprehensive, first ever collection of short stories by acclaimed British crime writer Mike Ripley, and comes complete with a specially-written author's introduction. Thirteen stories are featured, six of which involve Ripley's most famous creation, streetwise chancer Fitzroy Maclean Angel. And one of these Angel stories, 'Ealing Comedy', is exclusive to this collection – Ripley's first new short story of any kind to appear in print for over 15 years!
As an added bonus, the book features the previously unpublished full script for an unmade TV movie adaptation of the novel Angels in Arms – a hilarious comic crime caper in which Angel attempts to free an old friend from the clutches of a gang of would-be drug dealers.
'Ripley produces funny lines as often as most people breathe.' – The Times.


text:
/**
 * Created by Luigi Ilie Aron on 27.01.15.
 * email: luigi@kreditech.com
 */
'use strict';
var Errors = require('waterline-errors').adapter,
    Connection = require('./connection'),
    Collection = require('./collection'),
    fs = require('fs'),
    util = require('util'),
    async = require('async'),
    _ = require('lodash');

module.exports = (function () {
    // Keep track of all the connections used by the app
    var connections = {},
        db = null;

    var adapter = {
        // Which type of primary key is used by default
        pkFormat: 'string',
        // to track schema internally
        syncable: true,
        identity: "waterline-cbes",
        schema: false,
        // Default configuration for connections
        defaults: {
            // couch base
            cb: {
                //Server
                version: '3.0.3',
                host: 'localhost',
                port: 8091,
                user: 'root',
                pass: 'root123',
                operationTimeout: 1000 * 10, // 10 seconds

                //bucket
                bucket: {
                    name: 'testCbes',
                    pass: ''
                }
            },
            // elastic search
            es: {
                host: ['192.168.33.10:9200'],
                log: 'error',
                index: 'test_cbes',
                numberOfShards: 5,
                numberOfReplicas: 1,
                requestTimeout: 30000,
                ttlInterval: 5000 //milliseconds
            }
        },

        /**
         * @param connection
         * @param collections
         * @param cb
         * @returns {*}
         */
        registerConnection: function (connection, collections, cb) {
            if (!connection.identity) return cb(Errors.IdentityMissing);
            if (connections[connection.identity]) return cb(Errors.IdentityDuplicate);

            // Store the connection
            connections[connection.identity] = {
                config: connection,
                collections: {}
            };

            // Create new connection
            new Connection(connection, collections,function(_err, connectionObject) {
                if (_err) {
                    return cb((function _createError() {
                        var msg = util.format('Failed to connect to the Couchbase/ElasticSearch clients', util.inspect(_err, false, null));
                        var err = new Error(msg);
                        err.originalError = _err;
                        return err;
                    })());
                }

                connections[connection.identity].connection = connectionObject;
                Object.keys(collections).forEach(function(key) {
                    connections[connection.identity].collections[key] = new Collection(collections[key], key, connectionObject);
                });

                cb();
            });
        },

        /**
         * Fired when a model is unregistered, typically when the server
         * is killed. Useful for tearing-down remaining open connections,
         * etc.
         *
         * @param  {Function} cb [description]
         * @return {[type]}      [description]
         */
        teardown: function (conn, cb) {
            if (typeof conn == 'function') {
                cb = conn;
                conn = null;
            }

            if (!conn) {
                connections = {};
                return cb();
            }

            if (!connections[conn]) return cb();
            delete connections[conn];

            cb();
        },

        describe: function (connection, collection, cb) {
            // Add in logic here to describe a collection (e.g. DESCRIBE TABLE logic)
            return cb();
        },

        /**
         *
         * REQUIRED method if integrating with a schemaful
         * (SQL-ish) database.
         *
         */
        define: function (connection, collection, definition, cb) {
            // Add in logic here to create a collection (e.g. CREATE TABLE logic)
            return cb();
        },

        /**
         *
         * REQUIRED method if integrating with a schemaful
         * (SQL-ish) database.
         *
         */
        drop: function (connection, collection, relations, cb) {
            // Add in logic here to delete a collection (e.g. DROP TABLE logic)
            return cb();
        },

        /**
         * @param connection
         * @param collection
         * @param options
         * @param callback
         */
        find: function (connection, collection, options, callback) {
            var db = require('./db')(connections[connection].connection);

            db.find(collection, options, function(err, res){
                if (err) {
                    return callback(err, false);
                }

                callback(null, res);
            });
        },

        /**
         * @param connection
         * @param collection
         * @param values
         * @param callback
         */
        create: function (connection, collection, values, callback) {
            var db = require('./db')(connections[connection].connection),
                originalVals = _.cloneDeep(values),
                _values = [],
                schema = connections[connection].collections[collection].schema;

            if (!Array.isArray(values)) {
                values = [values];
            }

            var uniqueFields = (function() {
                var unique = [];

                for (var key in schema) {
                    val = schema[key];

                    if (val.hasOwnProperty("unique") && val["unique"] === true) {
                        if (key != "id") {
                            unique.push(key);
                        }
                    }
                }

                return unique
            })();

            function create() {
                if (schema.hasOwnProperty('_ttl') &&
                    schema._ttl.hasOwnProperty('defaultsTo') &&
                    typeof schema._ttl.defaultsTo == 'number')
                {
                    if (val.hasOwnProperty('_ttl') && typeof val._ttl == 'number') {
                        _ttl = val._ttl;
                    } else {
                        _ttl = schema._ttl.defaultsTo;
                    }
                }

                db.create(collection, val, _ttl, function(err, _vals){
                    if (err){
                        return callback(err, false);
                    }

                    _values.push(_vals);

                    if ((i + 1) == values.length) {
                        callback(null, Array.isArray(originalVals) ? _values : _values[i]);
                    }
                });
            }

            for (var i in values) {
                var _ttl = 0,
                    val = values[i];

                if (uniqueFields.length > 0) {
                    var _termData = [],
                        q = {where: {or: []}};

                    for (var j in uniqueFields) {
                        var _field = uniqueFields[j],
                            _term  = {term: {}};

                        if (val[_field] && val[_field] != "undefined" && val[_field] != "") {
                            _term.term[_field] = val[_field];
                            _termData.push(_term)
                        }
                    }

                    q.where.or = _termData;

                    db.find(collection, q, function(err, res){
                        if (err) {
                            return callback(err, null);
                        }

                        if (res.length > 0) {
                            return callback(new Error("Unique field already exist!"), null);
                        }

                        create();
                    });
                } else {
                    create();
                }
            }
        },

        /**
         * @param connection
         * @param collection
         * @param options
         * @param values
         * @param callback
         */
        update: function (connection, collection, options, values, callback) {
            var db = require('./db')(connections[connection].connection);

            db.update(collection, options, values, function(err, res){
                if (err) {
                    return callback(err, false);
                }

                callback(null, res);
            });
        },

        /**
         * @param connection
         * @param collection
         * @param options
         * @param callback
         */
        destroy: function (connection, collection, options, callback) {
            if (
                options &&
                typeof options == 'object' &&
                Object.keys(options).length == 1 &&
                options.hasOwnProperty('where') &&
                options.where instanceof Object &&
                options.where !== null &&
                Object.keys(options.where).length == 1 &&
                options.where.hasOwnProperty('id')
            ) {
                options.where = {
                    bool: {
                        must: [
                            {
                                term: {
                                    _id: options.where.id
                                }
                            }
                        ]
                    }
                };
            }

            var db = require('./db')(connections[connection].connection);
            db.destroy(collection, options, function(err, res){
                if (err) {
                    return callback(err, false);
                }

                callback(null, res);
            });
        },

        /**
         * @param connection
         * @param collection
         * @param options
         * @param callback
         */
        count: function (connection, collection, options, callback) {
            var db = require('./db')(connections[connection].connection);
            db.count(collection, options, function(err, res){
                if (err) {
                    return callback(err, false);
                }

                callback(null, res);
            });
        },

        /**
         * get raw data from couchbase view
         * @param connection
         * @param collection
         * @param callback
         */
        getRawCollection: function (connection, collection, callback) {
            var db = require('./db')(connections[connection].connection);

            db.getCollection(collection, function(err, res){
                if (err) {
                    return callback(err, false);
                }

                callback(null, res);
            });
        },

        /**
         *
         * @param connection
         * @param collection
         * @param callback
         */
        reindex : function(connection, collection, callback) {
            var db = require('./db')(connections[connection].connection),
                schema = connections[connection].collections[collection].schema,
                _ttl = null;

            if (schema.hasOwnProperty('_ttl') &&
                schema._ttl.hasOwnProperty('defaultsTo') &&
                typeof schema._ttl.defaultsTo == 'number')
            {
                _ttl = {
                    "enabled": true,
                    "default": schema._ttl.defaultsTo
                };
            }

            db.reindex(collection, this.mapping, _ttl, callback);
        },

        reindexAll: function(connectionName, collection, callback) {
            var collections = connections[connectionName].collections,
                db = require('./db')(connections[connectionName].connection);

            function iterator(colName, next) {
                var schema = collections[colName].schema,
                    mapping = collections[colName].mapping,
                    _ttl = null;

                if (schema.hasOwnProperty('_ttl') &&
                    schema._ttl.hasOwnProperty('defaultsTo') &&
                    typeof schema._ttl.defaultsTo == 'number')
                {
                    _ttl = {
                        "enabled": true,
                        "default": schema._ttl.defaultsTo
                    };
                }

                db.reindex(colName, mapping, _ttl, function(err) {
                    if (err) {
                        return next(err, false);
                    }

                    next(false, false);
                });
            }

            async.each(Object.keys(collections), iterator, callback);
        },

        aggregate : function(connection, collection, options, callback) {
            var db = require('./db')(connections[connection].connection);

            db.aggregate(collection, options, function(err, res){
                if (err) {
                    return callback(err, false);
                }

                callback(null, res);
            });

        },

        /**
         * @param connectionName
         * @param collectionName
         * @param options
         * @param callback
         */
        backup: function(connectionName, collectionName, options, callback) {
            var db = require('./db')(connections[connectionName].connection);

            db.backup(options, callback);
        },

        /**
         * @param connectionName
         * @param collectionName
         * @param options
         * @param reindexDelay
         * @param callback
         */
        restore: function(connectionName, collectionName, options, reindexDelay, callback) {
            var db = require('./db')(connections[connectionName].connection),
                self = this;

            db.restore(options, function(err, res) {
                if (err) {
                    return callback(err, res);
                }

                setTimeout(function() {
                    var collections = connections[connectionName].collections;

                    function iterator(colName, next) {
                        var schema = collections[colName].schema,
                            mapping = collections[colName].mapping,
                            _ttl = null;

                        if (schema.hasOwnProperty('_ttl') &&
                            schema._ttl.hasOwnProperty('defaultsTo') &&
                            typeof schema._ttl.defaultsTo == 'number')
                        {
                            _ttl = {
                                "enabled": true,
                                "default": schema._ttl.defaultsTo
                            };
                        }

                        db.reindex(colName, mapping, _ttl, function(err) {
                            if (err) {
                                return next(err, false);
                            }

                            next(false, false);
                        });
                    }

                    async.each(Object.keys(collections), iterator, callback);

                }, reindexDelay);
            });
        }
    };

    return adapter;
})();

redpajama_set_name: RedPajamaGithub


text:
Simon Veal
Updatable Diagrams with Inkscape and Python
TL;DR: To create diagrams that can be updated from data in a file, I used Inkscape to create the layout, labelled all the diagram elements I want to update, put the data into a CSV file and used some Python code (with the ElementTree XML API) to update the SVG file.
I've been experimenting with a new project, WorldCupWallCharts.com (update: now defunct!). It's a site where I create PDF wall charts that people can download and print out, to help them follow major sporting tournaments. It's not really a development project, but I still found a way to write some code while working on it recently 🙂
All the text elements on this diagram were typed in by hand…
Wall charts are a combination of diagram (the boxes and lines etc) and document (the text for the team names, dates etc). So it's not totally obvious what the best way to create them is. Do you use a word processor (good for text, bad for diagrams) or a drawing tool (good for diagrams, bad for text)? Or maybe a desktop publishing tool would work best.
I felt that the drawing tool was a better bet to start with, so I created the first wall chart, for the Cricket World Cup, in Xara Photo and Graphic Designer. I've had this tool for a while, and I like it a lot. It's easy to use and it's cheaper than Adobe Illustrator, which I guess is its main competitor in the vector graphics space. I definitely wanted to use a vector graphics tool because it gives me much more flexibility to resize things without the blockiness that happens when you resize bitmaps, and I didn't know what size the final page would be.
Xara worked pretty well, but one of the downsides for this project is that it's tedious to edit the text. I ended up with a lot of nested boxes, each with bits of text in, like the date of a match and the team names. If I wanted to change the format of dates that I'd used, I would have to individually edit each of the text elements in the diagram. I also knew that if I wanted to re-use the diagram to make a wall chart for another tournament, I would have to go in and edit all the text.
So for a one-off wall chart, this was fine. But I have plans to create wall charts for a lot of events, and I don't want to spend all my time double-clicking on text boxes to change the text. I knew I needed to find a way to create diagrams I could update automatically. I envisioned the layout of the wall chart (done in a drawing tool) as a separate thing from the details of the matches, which I could store in a CSV file or some other data format.
What About HTML and CSS?
At this point I considered another option. I could represent the matches in HTML, then use CSS to style and position those elements on the page. I could then use something like wkhtmltopdf to create the pdf file. I think this could work pretty well, but getting things to look right while fiddling with positioning and style in CSS is not my idea of fun, especially with so many elements on the page. I really wanted to be able to drag things around visually, as in a drawing tool, in order to get them looking right. So I abandoned this idea pretty quickly.
Enter Inkscape
Inkscape is a free, open source vector graphics tool. For this project, it has the major advantage that it uses the SVG format for its files. SVG is a variant of XML, and looking at the file in a text editor reveals something that is reasonably easy to understand. XML is also pretty easy to traverse and manipulate with a scripting language such as Python. (While Xara can export as SVG, I had no luck in getting it to import from SVG, which was also a necessary part of the process. Otherwise I might have been able to continue using it.)
With a bit of experimentation I realised I could add labels to elements in Inkscape, and I could see those labels as attributes on the XML elements in the file. This gave me a way to tag the elements that I would need to update.
Setting the label of an object in Inkscape allows you to easily identify that object within the SVG file.
I decided to try this new approach while creating the wall chart for the Men's Handball World Championship.
Section of the diagram before being updated. Note the placeholder text.
A Bit of Python
I created a CSV file containing data for the matches in the tournament. The first few rows look like this:
stage,match,date,location,team1,team2,match-name
A,1,15/01/15,Lusail Sports Arena,Qatar,Brazil,
A,2,16/01/15,Qatar Handball Association Complex,Spain,Belarus,
A,3,16/01/15,Al-Sadd Sports Hall,Slovenia,Chile,
A,4,17/01/15,Lusail Sports Arena,Belarus,Slovenia,
(The match-name field is only used for later stages, where the match needs to be given a name like QF3, for example.)
Then I wrote a bit of Python code to process the CSV data, and find and update the appropriate elements in the SVG file. I won't post all my code because it's kind of clunky at the moment and very specific to this project. But the pertinent bits are the use of the ElementTree XML API for parsing and updating the XML, and the XPath stuff for finding elements with labels. So to find and update a paragraph element with a label of '#team-1', you would do something like:
import xml.etree.ElementTree as ET
tree = ET.parse('wall-chart.svg')
root = tree.getroot()
# turns out the text to update is usually in a flowPara which is inside of the element you labelled
team_element=root.findall(".//*[@{http://www.inkscape.org/namespaces/inkscape}label='#team-1']/{http://www.w3.org/2000/svg}flowPara")[0]
element.text = 'New Team Name'
element.set('updated', 'yes')
tree.write('modified.svg')
My actual code is a bit more complicated than this, because I figured out that I could save a lot of hassle by making sure that diagram elements were nested, with labels applied to the containing groups. So for example, all the matches in Group A were labelled as #match-01, #match-02 etc, and were then grouped together and given a label of #stage-A. Then I could copy that whole group, change the label to #stage-B and I wouldn't have to change any of the match labels inside the group. That's why the CSV above includes columns for stage and match.
Section of the diagram after being updated by my script. Yep, I even updated the colours!
I actually think this way of doing things saved me some time even for creating a single wall chart, mainly because I could fill the diagram with placeholder text initially and let my script do all the updating automatically. And it will definitely save me a lot of time when I need to make additional wall charts with the same (or similar) tournament structures to the ones I've already made.
This entry was posted in Projects, Python, Software on November 6, 2014 by simonveal.
← Rock the Taskbar
Rock the Taskbar
BusyFlag Goes Live
Trying to compare non-ordered queryset against more than one ordered values
Idea: Pedestrian Crossing for Marathons and Other Street Running Events
Ingrid on My Handwriting Has Got Worse As I've Got Older
Alan Skerrett on Country Walk User Interface Design
BusyFlag
Mildly Amusing

redpajama_set_name: RedPajamaCommonCrawl


Lexicon Valley is a podcast for word nerds. Truly. It's all about language– etymology, syntax, usage, how a language develops or dies. There is occasional explicit material (of the linguistic variety), but I recommend this for word nerds or grammar geeks. It is one of my most favorite things to listen to!
The Tobolowsky Files is a podcast that features Stephen Tobolowsky telling his life stories. I've never heard such detail in memories! He's a gifted storyteller and weaves stories from different parts of his life together to reveal a truth or a lesson or simply to show connections. I'm sad when there aren't new episodes of this one.
White Horse Inn is a podcast centered around knowing what you believe and why you believe it. It includes in-depth conversations, interviews, and discussions on everything from Islam to worship to our scatterbrains. It's a little theology-geeky, but really solid in its content.
This American Life is the greatest storytelling available in audio format. Truly incredible. Each hour long episode follows a theme or idea and has stories in various formats– personal accounts, reports, fiction. We often don't agree with the content, but we look past it because of the amazing storytelling.
"The Briefing enables Christians to think biblically by providing daily worldview analysis about the leading news headlines and cultural conversations." Basically, it's a 15 minute news analysis from a solid theological perspective. Albert Mohler is president of the Southern Baptist Theological Seminary, and one of the leading minds of our time. It's pretty amazing and I think I may have a tiny crush on Mr. Mohler. Must be the bow ties.
This entry was posted in Marriage, Our First Year and tagged internet, podcasts by Lindsey. Bookmark the permalink.


This course is aimed to give you the tools and knowledge you need to start creating simple art for video games made in the Unity game engine. Through the aesthetic of pixel art we will explore artistic principals like shape language, color theory, and composition as well as show you a step by step workflow for creating assets that you can use to make your own games. The course is broken into 4 main modules, props, environments, characters, and animation. Each of these courses will have a series of video lessons alternating between artistic and technical skills culminating in a peer-reviewed project based assignment. The last module will challenge you to take the knowledge learned in the previous 4 and use it to create your own pixel art asset pack.
This course is aimed at art novices who are interested in creating art for their own games or contributing to game projects. If you are a game designer or programmer, you will find this course helps give you a glimpse into the world of game art. You will be able to better work with artists, or create your own prototype or final artwork. If you are an artist or visual designer who is interested in bringing your style to the world of video game development, this course will give you the workflow to properly interface with a game engine and help contextualize how your artistic sensibilities can enable gameplay.
If you have ever wanted to start making art for video games but have no idea how to start, this course is the perfect for giving you a solid foundation while teaching you usable practical skills. Our goal is to give you a sense of the whole pipeline from creation to setting up in a game engine.
Hi. I am Lena from Ukraine. I am interested in studying pixel art. I like video games and I want to work in this area.


text:
Fish slice
Darty, Linda, born 1952
enamelling
Darty, Linda
Metalwork Collection
North Carolina (made)
Darty, Linda, born 1952 (designer and maker)
Materials and Techniques:
Sterling silver, fine silver and enamel
Given by the American Friends of the V&A through the generosity of Professor B. Seymour Rabinovitch
M.96-2008
The artist, Linda Darty, describes her work in the following words: "My metalwork is an exploration of form and surface, incorporating my love of colour and graphic imagery. I am inspired by places and people, gardens, wooded paths, the dense foliage of the Florida and North Carolina landscapes. I like to work in silver for its elegance and the sense of preciousness it imparts and to make pieces which function and add celebration to everyday rituals. Graphic details are often etched, creating recesses for rich, soft surfaces of colour. Enamelling allows me to create these surfaces using familiar drawing and painting techniques. The velvety glass surface seems limitless in its possibilities for re-creating nature's palette. I am always astonished at the diverse effects that can be achieved. It is important to me that the pieces I make function in a useful way, adding beauty to everyday rituals, or ceremony to special occasions. My work celebrates my memories."
The server is an abstracted, brilliantly coloured fish. It is formed in 3D from carefully designed components of 2D sheet. The balance of the server has been artfully adjusted so that it presents itself to the viewer when laid on a flat surface. Its fabrication is best described by the artist's own explanation: "I knew that I wanted to enamel the server because the word, fish, fills my head with blues, greens, lavenders and silver grays. But it was also important that the server functions well and fitted comfortably in the hand. I wanted it to sit nicely on the table when not in use and the shape and the weight of the handle were critical to this design. A drawing was first made and then transferred to the sterling silver with a resist, before etching in acid. The recessed surfaces were then carved so that after enamelling reflections from the carving would be seen through the surface (basse taille). After the fish piece was formed with hammers, the handle was designed, etched and fabricated from fine silver sheet. The sterling was then depletion gilded in acid, leaving the fine silver to be seen through the enamel. The fish body was inlaid with successive thin layers of transparent enamel with firing between layers at 1500 degrees. The piece was ground smooth and even with diamond sticks and sandpaper. It was hand polished under water using finer grit papers until the satin finish was achieved. The handle was enamelled in the same way. The cap and connection pieces were fabricated. The 'fin' piece was made from sterling that was formed and chased to create the fit and texture. All three pieces were finally joined together with threaded rods and rivets."
Length: 32 cm, Weight: 380 g
Fairfax House Fish & Cake Slice exhibition RF.2004/419
Historical context note
Part of a collection of fish slices commissioned by Professor Rabinovitch from contemporary North American and British makers.
Silver and enamel, USA, Greenville, North Carolina, 2004, designed and made by Linda Darty
Bibliographic References (Citation, Note/Abstract, NAL no)
Benton Seymour Rabinovitch, Contemporary Silver, Part II Recent Commissions, Seattle, RAB Associates, 2005, pp.50-51. ill.
Labels and date
This collection of silver slices, all commissioned over a period of twenty years by Professor Benton Seymour Rabinovitch FRS, is proof of the skill and diversity of contemporary silversmiths. Each artist craftsman has responded to the familiar functional form of the slice in an individual way, producing an astonishingly diverse range of interpretations. Each piece becomes an enchanting, decorative work of art. Professor Rabinovitch established a close rapport with each artist, always encouraging a freedom of creative expression. The response of these silversmiths has been not only to be strikingly imaginative but also to honour him by giving him their best work.
This collection is testimony to the significant contribution that one individual can make to supporting the craft of silversmithing. After commissioning work from some of the most illustrious names in British and North American silversmithing, Professor Rabinovitch has very generously donated his entire collection to the Victoria and Albert Museum, through the American Friends of the V&A. [2005]
Sterling silver; Fine silver; Enamel
Etching; Enamelling
Subjects depicted
Eating; Metalwork


text:
Q: Localization of a Dedekind domain. I have a question on localizations of Dedekind rings which I am learning about in an undergraduate class. Let $R$ be a Dedekind ring with quotient field $K$, $\mathfrak p$ a nonzero prime ideal in $R$. Let $R_\mathfrak p$ be the localization of $R$ at $\mathfrak p$.
One assignment question is to show that if $x\in K-R_\mathfrak p$ then $x^{-1}\in R_\mathfrak p$.
If $x=r/s\in K-R_\mathfrak p$ then $r\in R$ and $s\in \mathfrak p$. I don't see how we can deduce $r\notin \mathfrak p$ since we want $s/r\in R_\mathfrak p$.
A hint will be very useful. Thanking you in advance.

A: Let $R = \mathbb{Z}$ and $\mathfrak{p} = (p)$, with $p$ a rational prime. See what happens in this case, and that should indicate how to proceed in the general case.

A: This exercise is asking you to prove that $R_\mathfrak{p}$ is a valuation ring (see the first definition in the Wikipedia entry: http://en.wikipedia.org/wiki/Valuation_ring#Definitions).
My answer to the following question explains this:
Discrete valuation ring associated with a prime ideal of a Dedekind domain

redpajama_set_name: RedPajamaStackExchange


text:
Apple will reportedly release movies in theaters before streaming them
It might release these films for longer theatrical runs than Netflix has done.
SIPA USA/PA Images
Steve Dent|@stevetdent|September 27, 2019 11:13 AM
Apple intends to play nice with Hollywood and cinema chains by releasing films in theaters before streaming them on its Apple TV+ service, according to the WSJ. By doing so, it would be taking a different tack from Netflix, which normally requires theater chains to release movies at the same time it's streaming them. That attitude has put off some producers and directors, including Steven Spielberg, who said that Netflix shouldn't get a crack at Oscars since its films get minimal theater runs.
Apple might follow roughly the same strategy as Amazon, which often releases prestige films like Manchester by the Sea for three month theater runs before streaming them. That allows those films to compete for prizes at festivals that require meaningful releases. Meanwhile, it may limit more mainstream films to two week theater runs before streaming.
One of Apple's first major theatrical releases will reportedly be Sofia Coppola's On the Rocks starring Rashida Jones and Bill Murray. That film might see a mid-2020 theatrical release and premiere at Cannes or another festival early in the year. Apple reportedly doesn't see such releases as moneymakers, but more as a way to build the Apple TV+ brand and build demand for the eventual streaming release.
Apple recently learned the importance of theatrical distribution when JJ Abrams spurned Apple in favor of WarnerMedia. Reportedly, a key incentive for Abrams was Warner's existing theatrical distribution power, something that Apple is lacking.
Netflix famously refused to attend Cannes for the last two years in a dispute over theatrical distribution. The streaming company will be giving the much-hyped Scorsese/De Nero film The Irishman a theatrical run starting with a big red carpet premiere at the New York Film Festival today. As usual, though, it will only stay at theaters for a few weeks before it debuts on Netflix.


Computer programmers sometimes refer to each other as "Code Monkeys" (pica código). Here is a joke that takes aim at consultants: A tourist walked into a pet shop and was looking at the animals on display.
While he was there, another customer walked in and went over to a cage at the side of the shop and took out a monkey. The shopkeeper fitted a collar and leash on the monkey and handed it over to the customer, saying, "That'll be €5,000." The customer paid happily and walked out with his monkey.
The tourist was amazed, turned to the shopkeeper and said, "That was a very expensive monkey. Most of them are only a few hundred euros. Why did it cost so much?" The shopkeeper answered, "Ah, that monkey can program very quickly with good code and no bugs. He's well worth the money."
The tourist looked at the monkey in another cage. "That one's even more expensive - €10,000! What does it do?"
"Oh, that one can take strategic decisions, manage object-oriented programming, even some Java. He also knows about things like Supply Chain, Purchase-to-Pay and SAP. All really useful stuff," said the shopkeeper.
The tourist looked around for a little longer and saw a third monkey in a cage of its own. The price tag around its neck read €50,000.
He gasped to the shopkeeper, "That one costs more than all the others put together! What on earth does it do?"
The shopkeeper replied, "Well, I haven't actually seen it do anything, but it says it's a consultant."


Verifico — How do I pay Verifico Fees?
Support Home Knowledge Base Knowledge Base for Experts How do I pay Verifico Fees?
We will deduct our fees as transactions are completed. The money in your account is yours!


text:
Susa fou un regne de situació desconeguda, probablement a la zona del Tigris, a la regió d'Ashnakkum. Els habitants són anomenats suseus.

El seu rei Shubram, titulat rei de Susa i de la terra d'Apum, és conegut per una carta que dirigeix al rei Zimrilim de Mari, del que probablement era un dels gendres, en relació a una disputa sobre la ciutat de Shunkhum entre ell mateix, Ili Addu de Kidukh, Khaya-Sumu o Haya-Sumu de Ilansura (també gendre de Zimrilim) i Ili-Ishtar de Shuna i la terra de Shabasim (un altre gendre).

Referències

Mari

redpajama_set_name: RedPajamaWikipedia


Be one of 4 owners of the exclusive penthouses at the top of the city! In this two-story stunner you won't need artwork - the views are the masterpiece. His n Hers Closets * His n Hers Water Closets * PRIVATE, 6-CAR GARAGE * 24-hr concierge, unmatched amenities, walkable to sports venues, top restaurants & cultural attractions.
I am interested in 515 Church Street, #4504, Nashville, TN 37219 (Listing ID # 1989307).


text:
O Massacre de Viena de 1927 ou Revolta de julho de 1927 (também conhecida como o incêndio do Palácio da Justiça de Viena, alemão: Wiener Justizpalastbrand) foi um grande motim que começou em 15 de julho de 1927 na capital austríaca, Viena. Isso culminou com as forças policiais disparando contra a multidão indignada, matando 89 manifestantes, enquanto cinco policiais morreram. Mais de 600 manifestantes e cerca de 600 policiais ficaram feridos.

Eventos
O confronto foi o resultado de um conflito entre o Partido Social Democrata da Áustria e uma aliança de direita que incluía ricos industriais e a Igreja Católica. Muitas forças paramilitares foram formadas na Áustria durante o início dos anos 1920, entre elas os Nacionalistas Frontkämpfervereinigung Deutsch-Österreichs sob o comando do coronel Hermann Hiltl e o Social-democrata Republikanischer Schutzbund. Um confronto entre esses grupos durante uma reunião em Schattendorf, Burgenland, em 30 de janeiro de 1927, resultou na morte de um veterano da Primeira Guerra Mundial e de um menino de oito anos. Três Frontkämpfer foram indiciados em um tribunal de Viena em julho por atirarem neles em uma emboscada. Defendidos pelo advogado Walter Riehl, e alegando legítima defesa, eles foram absolvidos em um julgamento por júri.

Este "Veredito de Schattendorf" levou a uma greve geral que tinha como objetivo derrubar o governo chefiado pelo chanceler do Partido Social Cristão Ignaz Seipel. Protestos massivos começaram na manhã de 15 de julho, quando uma multidão furiosa tentou invadir o prédio principal da Universidade de Viena na Ringstrasse. Os manifestantes atacaram e danificaram uma delegacia de polícia próxima e um prédio de jornal, antes de seguirem para o prédio do Parlamento austríaco. Forçados a recuar pela polícia, eles chegaram na praça em frente ao Palácio da Justiça. Por volta do meio-dia, os manifestantes entraram no prédio quebrando as janelas; eles então demoliram os móveis e começaram a atear fogo a arquivos. Logo o prédio estava em chamas; o incêndio alastrou-se rapidamente, pois os bombeiros de Viena foram atacados por vários manifestantes que cortaram as mangueiras e impediram que fossem controlados até de madrugada.

O ex-(e mais tarde) chanceler austríaco Johann Schober, então chefe da polícia de Viena, reprimiu os protestos com força. Ele instou o prefeito social-democrata Karl Seitz a convocar as Forças Armadas austríacas, o que Seitz rejeitou, assim como o ministro da defesa do Partido Social Cristão Carl Vaugoin. Por sua vez, Schober abasteceu as tropas policiais com rifles do exército e anunciou publicamente que as instalações seriam limpas à força se os bombeiros não pudessem trabalhar desimpedidos, depois que Seitz e o conselheiro de Schutzbund Theodor Körner tentaram persuadir a multidão a se render em vão. A polícia abriu fogo, o que deixou 5 policiais e 89 manifestantes mortos.

Significado e lembrança

O filósofo, estudioso e comentarista social do século XX, Karl Popper, tinha 24 anos e vivia em Viena durante os distúrbios. Em sua autobiografia de 1976, ele lembrou o evento como um prenúncio do extremismo: "Comecei a esperar o pior: que os bastiões democráticos da Europa Central cairiam e que uma Alemanha totalitária iniciaria outra guerra". Um memorial às vítimas foi erguido no Zentralfriedhof de Viena; uma placa no Palácio da Justiça foi descoberta pelo presidente Heinz Fischer em 2007. Vários artefatos, como papéis do tribunal danificados pelo fogo e uniformes Schutzbund e Frontkämpfer estão em exibição no Museu Heeresgeschichtliches.

Ver também
 Guerra Civil Austríaca
 Golpe de Julho

História da Áustria


Our residential and house painting service is a great option for your home in Ventura. In most homes, several kinds of paint are used to cover every surface that isn't stone or stained wood. The idea of simply changing the color of the paint in your residence may seem like a straightforward process, but there are important things to consider. Each surface receives a different type of paint to optimize the appearance, and for functional issues as well. We provide a color consultation on every painting project which allows to you select the exact colors for your home and set a theme.
Most homes follow a similar practice of applying several styles of paints to separate surfaces to optimize the appearance and functionality of the home. Walls or other areas which have large surfaces tend to have matte finished paints. There are some exceptions, and we can create any kind of appearance for your home, but most homeowners tend to not want walls to appear too brilliant and sheen because it can create a distracting effect. Conversely, trim areas, baseboards, and other features in the home can look great with a shinier styled paint. A more brilliant or illuminated trim can contrast nicely with matted walls, but this can also have a functional purpose. Window sills, baseboards, chair runs, and other features tend to simply be touched more than walls or ceilings. Through the natural course of living in your home, you may bump these areas with your feet, slide chairs into them when sitting down, lean on them to open a window, and do hundreds of other things which can slowly wear down the paint. Using a harder enameled paint on areas likely to be handled or touched protects the paint from deteriorating, and this also helps prevent the trim wood from being damaged. There are many ways to approach the painting strategy in your home, and during your color consultation we'll plan out a system which creates a look that you love, and will also be durable.
We know your home is important to you. We're an established and trusted painting company who works with various reputable organizations including the County of Ventura, State of California, and various Homeowners Associations. We're licensed to provide insurance related work, government sanctioned projects, and the removal of some harmful materials. All of this is to demonstrate our ability to complete your project at the highest level and produce a custom paint job for your home that will last for years. Contact Us to discuss your project or request a quote.


text:
using System.Numerics;
using OpenSage.Data.Ini;

namespace OpenSage.Logic.Object
{
    /// <summary>
    /// Allows the use of StartDive within UnitSpecificSounds section of the object.
    /// </summary>
    public sealed class DeliverPayloadAIUpdateModuleData : AIUpdateModuleData
    {
        internal new static DeliverPayloadAIUpdateModuleData Parse(IniParser parser) => parser.ParseBlock(FieldParseTable);

        private new static readonly IniParseTable<DeliverPayloadAIUpdateModuleData> FieldParseTable = AIUpdateModuleData.FieldParseTable
            .Concat(new IniParseTable<DeliverPayloadAIUpdateModuleData>
            {
                { "DoorDelay", (parser, x) => x.DoorDelay = parser.ParseInteger() },
                { "MaxAttempts", (parser, x) => x.MaxAttempts = parser.ParseInteger() },
                { "DropOffset", (parser, x) => x.DropOffset = parser.ParseVector3() },
                { "DropDelay", (parser, x) => x.DropDelay = parser.ParseInteger() },
                { "PutInContainer", (parser, x) => x.PutInContainer = parser.ParseAssetReference() },
                { "DeliveryDistance", (parser, x) => x.DeliveryDistance = parser.ParseInteger() }
            });

        public int DoorDelay { get; private set; }
        public int MaxAttempts { get; private set; }
        public Vector3 DropOffset { get; private set; }
        public int DropDelay { get; private set; }
        public string PutInContainer { get; private set; }
        public int DeliveryDistance { get; private set; }
    }
}


Well, it's not quite a video of the dunk, but it's a nice animated gif that shows just how great Rudy Fernandez's dunk really was during the second half of the Olympic gold medal game.
On the play, Rudy Fernandez and Pau Gasol ran a very loose pick and roll on Kobe Bryant and Dwight Howard. Kobe, the supposed great defender, gambled trying to steal the ball from behind Fernandez.
With Kobe Bryant behind Rudy, Dwight was forced to switch out on Rudy, whom already had nice momentum going. Rudy paused, took another dribble and two steps, rocked the ball in his right hand and slammed the ball through with Howard too far behind to block or stop the dunk. Rudy swings on the rim with one hand before dropping down.
You can't see Kobe Bryant's reaction as you did during the game's broadcast. After the dunk, Kobe raised his arms in frustration and it seems as if Kobe was pointing that frustration at Dwight. i hope that's not the case because it was Kobe's poor defense that allowed that play to happen.
I'll also be adding a photo gallery of different angles of Fernandez's dunk later on. Until then, enjoy the little animation of Rudy Fernandez's slam dunk on the United States' center Dwight Howard.
Well, Kobe might be annoyed that he got taken, but if you look the pick moves further down onto Kobe's path and to my eye Howard does a great job even getting close enough to get his arm straight up and in line with the basket as he is allowed to do. The foul is on the contact and a reward for the good play. The defender gets no love! The video far from showing up Howard or Bryant highlights what great talents they are. Nice one.


text:
DiscoverMDM
Ourbeneficiaries
Healthcare outcasts
Victims of crises
Migrants and displaced persons
At risk populations
Operation Sourire
Ourcountries
Getinvolved
Why supporting MDM ?
Private individual
Ournews
Work in France
Donator account
I make a donation
The amount must be at least 5€
Let's say a donation of xx€
After tax reduction.
Donate
Discover MDM
Our beneficiaries
Home>News & Publications>Articles>Nos combats>Ensuring Access to Safe Abortion across Europe
Ensuring Access to Safe Abortion across Europe
The European Safe Abortion Networking Group is a group of national, regional and international SRHR organisations based in Europe, working for universal access to safe, legal abortion.
Statement by the European Safe Abortion Networking Group for International Safe Abortion Day, 28 September 2020.
Covid-19 epidemic that has degraded access to abortion and care
The Covid-19 pandemic has highlighted the differential access to safe and legal abortion across Europe since March 2020. Lockdowns have confined women to their homes and borders have been closed, making it difficult for women living in countries with restrictive laws to cross a national border to find a legal abortion, while access to in-person, hospital-based abortion care has become considerably more difficult to find and arrange in many countries.
There have been statements by politicians discouraging women from seeking abortions.
This has been and remains a rapidly changing scenario, and European countries have responded in very different ways. In Poland, Lithuania and Malta, for example, the pandemic has exposed the perversity of restrictive abortion laws. There have been statements by politicians discouraging women from seeking abortions. The risk of infection with Covid-19 in clinical/hospital settings, e.g. during mandatory counselling or ultrasound scans, having to collect abortion pills in person, and hospitalisation for abortion care, has not been addressed. In some cases, the pandemic has become an excuse for unwilling doctors not to provide abortions at all, e.g. by describing abortion as "non-essential", "non-emergency" or "routine" care.
Our action
Some countries have made a positive change in abortion measures
In contrast, the Scandinavian countries, Belgium, Netherlands and Portugal have ensured continuing access to safe abortion services, undisrupted by the pandemic. Some countries went even further. To reduce the risks related to in-person care, Ireland first, then Britain and France introduced regulations enabling the use of telemedicine for arranging and following up self-managed abortion at home for first trimester medical abortions – but only for the duration of the pandemic. Germany, which requires mandatory counselling before abortions, allowed this to take place over the phone or by video call. Catalonia in Spain reduced the number of required pre-abortion visits from two to one. Italy recently introduced some changes too, but the parameters remain unclear. However, some of these countries are unfortunately already reverting to pre-pandemic regulations.
Outdated abortion policies in most European countries
There is great uncertainty regarding the future spread and consequences of Covid-19. Regardless of the pandemic, however, in most countries in Europe, even liberal laws and policies are outdated regarding how, where, by whom and with whose permission abortion care can be provided, let alone on what grounds, how late in pregnancy, and with what legal and criminal restrictions and regulations. Moreover, self-managed abortion at home with abortion pills, which has been shown to be safe in the first trimester of pregnancy, is not permitted by law in most if not all countries.
We say it is time to bring abortion laws, policies and services into the 21st century.
A call to improve access to safe, legal abortion in every country in Europe
On the occasion of International Safe Abortion Day, 28 September 2020, we the undersigned call on policymakers in every European country to take responsibility for removing restrictions on safe and legal abortion in your country, in line with World Health Organization (WHO) guidance,1,2,3,4
as follows:
1. Recognise abortion as essential, time-sensitive healthcare.
2. Guarantee access to safe, legal abortion, with particular attention to under-served and vulnerable populations, and with as little disruption as possible in times of crisis.
3. Allow self-managed abortion with pills at home in the first trimester of pregnancy.
4. Support the use of telemedicine1 when appropriate, to arrange abortions and for follow-up, including 24-hour support for those who self-manage abortion at home.
5. Make aspiration abortions available at outpatient or primary-level facilities, provided by trained mid-level providers (and during the Covid-19 pandemic in line with agreed protocols for prevention of risk in healthcare settings).
6. Allow second trimester medical abortions to take place in outpatient clinics, managed by mid-level providers,4 with specialist back-up as required. This will remove the need for operating theatre conditions or a gynaecologist in the great majority of cases.
7. Train GPs, nurses and midwives to arrange and provide abortions as appropriate to meet demand and to ensure a sufficient number of willing providers.3 Denial of care by healthcare professionals, e.g. due to their personal beliefs, must not delay or restrict women's right to access abortion care.
8. Train pharmacists and appropriate pharmacy staff to provide medical abortion pills over the counter and by post to women for use at home.4
9. Simplify abortion regulations, removing all medically unnecessary requirements, so as to facilitate access to abortion without delay.
10. Decriminalise abortion, including in the second trimester of pregnancy, and also in the rare cases after the second trimester if the woman's life, health and well-being would be adversely affected if she were forced to continue the pregnancy.
In short, ensure that no one is forced to continue a pregnancy against their will.
List of Signatories
Abortion Rights Campaign, Abortion Support Network, Action for Choice, Actins Femmes CNE, Albania Community Assist, Albanian Center for Population and Development, Alliance for Choice, Asociación Por Ti Mujer, Association des Femmes de l'Europe Méridionale (AFEM), Associazione Vitadidonnaonlus, ASTRA –Central and Eastern European Network for Sexual and Reproductive Health and Rights, British Society for Abortion Care Providers (BSACP), Catholics for Choice, Centerfor Partnership and Equality - CPE (Romania), Center of Women's Rights (Bosnia and Herzegovina), Creación Positiva, Coalition to Repeal the Eighth Amendment, Democracy Development Center NGO, Doctors for Choice UK, Eurasian Women's Network on AIDS, Federación de Planificación Familiar Estatal. Spain. Federation for Women and Family Planning, Poland, FILIA Center, FOKUS - Forum for Women and Development, HERA - Health Education and Research Association, Here NI, Hivos Humanistisch VerbondInternational Campaign for Women's Right to Safe Abortion, International Planned Parenthood Federation European NetworkIpasIrish Family Planning Association, Journalists for Human RightsKvinner i Skogbruket, Le Comité International Péruvien CIP-ASBL, Le Planning Familial, Marianne, le Mouvement des Femmes du PTB (Parti du Travail de Belgique), Marie Stopes International, Médecins du Monde France, Norwegian Association for Women's Rights (Norsk Kvinnesaksforening), Österreichische Gesellschaft für Familienplanung (ÖGF), Portuguese Society of Contraception, PSI-EuroperadiOrakelReproductive Health Training Center of the Republic of MoldovaRepublika LibreRFSU - The Swedish Association for Sexual and Reproductive Rights, Romanian Women's LobbyRoyal College of Obstetricians and Gynaecologists, Rutgers, Sarajevo Open CentreSex og Politikk (IPPF Norway), Sex vs The Stork (Romania), Sexual Health SwitzerlandSimaviSociety for Education on Contraception and Sexuality RomaniaThe Women's Front of Norway, Tripla Difesa OnlusUrgent Action Fund for Women's Human Rights, VrouwenraadWIDE+ (Women In Development Europe+) Women Asociation "MOST" B&HWomen's Link Worldwide, Women's Network of Bosnia and Herzegovina, YouAct -European Youth Network onSexual and Reproductive RightsYouth for Youth (Romania)
Pubished on
I make a donation.
I apply online.
I subscribe to the newsletter.
sexual and reproductive h...
Access to contraception as a fundamental right
1 OMS . Maintaining Essential Health Services: Operational guidance for the Covid-19 context. 1er juin 2020. https://www.who.int/publications-detail/10665-332240 (en anglais uniquement)
2 OMS , HRP. Consolidated Guideline on Self-Care Interventions for Health: Sexual and Reproductive Health and Rights, Genève : OMS , 2019. p. 67. https://www.who.int/reproductivehealth/publications/self-care-interventions/en/ (en anglais uniquement)
3 OMS . Utilisation des médicaments dans le cadre d'un avortement. Genève : 2019.
https://www.who.int/reproductivehealth/publications/medical-management-abortion/fr/
4 OMS . Rôles des agents de santé dans la dispensation des soins liés à l'avortement sécurisé et de la contraception post-avortement. Genève : février 2016. https://apps.who.int/iris/bitstream/handle/10665/204495/9789242549263_fre.pdf?sequence=1
French jobs
Woldwide jobs
Internship positions
See all our opportunities at
In 2019, faced with health issues that are constantly increasing and becoming more complex in the world, Médecins du Monde is evolving, reorganizing and stubbornly carrying on its struggles.
Doctors of the World international chapters
Donors committee


Join the National Network of Libraries of Medicine- Middle Atlantic Region on December 12, 2018 at 2:00 pm EST for their monthly Boost Box series. This series aims to boost your knowledge of National Library of Medicine products and additional health information topics. The month of December will feature guest speaker Mary Ehret, M.S.,R.D., L.D.N., from the Penn State Cooperative Extension.
This session will discuss how Penn State Extension partners with libraries in Pennsylvania by offering programs like Dining with Diabetes, and Penn State Nutrition Links. You will learn about these programs, and how programs like these could benefit your patrons.
Visit the NNLM website to register for this free webinar.


This gravy is a thick cashew-based gravy that tastes great on vegetables--maybe it's more of a sauce than a gravy. I wouldn't put it on potatoes, although brown rice is good.
Allow the cashew butter to come to room temperature, if refrigerated.
Sautée the onion and bell pepper in the peanut oil over low to medium heat with salt and pepper, until the onion begins to turn translucent and the bell pepper is soft. Add the wine and deglaze the pan. Add cayenne pepper.
Add the milk and heat through. Add the cashew butter by the spoonful and stir until incorporated and smooth. Gravy will appear lumpy at first, but will become smooth after a few minutes of stirring and simmering. Adjust the quantity of milk or cashew butter as necessary for desired consistency. Taste and add salt if necessary.
This gravy is excellent on green beans or other vegetables, or can be served over brown rice.
Cashew gravy is traditionally one way of making a creamy vegan sauce--use unsweetened soy milk instead of milk if a vegan recipe is desired.
Makes about 2 cups gravy.
This page was last edited on 8 July 2014, at 02:17.