Contributor Kristie Colby explains how to align your systems so that you can track prospects' interactions all the way to the sale and beyond.
Marketers can struggle to prove the value of their programs when there isn't always a direct response or purchase. This is especially true for B2B marketers focused on lead generation programs with long, complex sales cycles. So, how does a marketer faced with such a challenge assess the impact of their marketing efforts, prove contribution to revenue and demonstrate ROI?
Brand awareness and market positioning.
Lead nurture and sales enablement.
Target account acquisition (via Account Based Marketing).
Each of these efforts will involve multiple touch points that have varying levels of impact on a prospect or customer's decision-making process. But what is their ultimate value to the organization?
• Acquiring customer data. Marketers must have the technology and infrastructure in place to record meaningful information about various touch points that contribute to lead generation and customer acquisition. These systems do not rely solely on what the prospect might provide. For example, online registration forms might capture name, email, company name and phone number. In most cases, a marketing automation platform is used to supplement prospect-provided data.
TIP: Most marketing automation systems provide cookie data that can be appended to lead records automatically. Then, when that lead takes a specific action that is important to the marketing program, the engagement can be recognized and possibly addressed with proactive campaigns and programs.
• Ensure consistent parameters. The entire organization must utilize the same parameters and field values to record information related to lead/customer acquisition. They must be categorized with meaningful and actionable values that can be captured by the technology and systems in place. Most companies use a combination of UTM parameters that can be captured by hidden fields on forms and lead source details that can be programmed into a form or labeled within their own parameter.
TIP: Two parameters that must be consistently used by sales and marketing across all programs are utm_medium=[insert medium] and utm_source=[insert source name]. This allows proper channel grouping for the medium (marketing medium of the tagged URL — paid search, social, email, for example) and aligned source values (where the visitor clicked on the tagged URL — for example, Google, Facebook, newsletter).
Often, organizations don't have total alignment on how to use and populate these parameters, and this can cause data errors and inconsistencies. Taking time to map all lead fields with values that can be used consistently is essential to evaluating marketing programs and their impact on revenue.
• Fully integrate systems. In order to maintain data integrity, sales and marketing systems must be aligned to share all of the data being acquired over time. Specifically, marketing automation and CRM systems must utilize the same fields, populate those fields with common values and pass these details back and forth as data is acquired. Data in these systems must sync as leads move through the sales cycle.
Furthermore, this integration allows marketers to personalize the experience they are creating for each prospect and measure the impact of individual touch points. One example of this type of data integration and how it effectively enables a personalized experience is for leads that have been qualified and sent to sales.
TIP: The ability to understand the marketing touch points a prospect previously engaged with will help sales reps set the proper tone and context for their initial sales discussion. The prospect's specific challenges and requirements can be addressed with helpful, relevant content throughout the nurturing process and tackled head-on in sales discussions.
Later, when (hopefully) that prospect becomes a customer, the marketing automation system will route the record to a customer list and begin customized programs focused on loyalty and retention.
Now, with these three critical infrastructure items nailed down, marketers can focus on developing different types of reports to measure and analyze the impact of their programs.
Attribution (across channels and touch points).
Understand the relative impact of various marketing programs.
Allocate resources based on the efficient acquisition of qualified leads.
Determine the best approach to attribution modeling.
Quantify marketing's contribution to pipeline value and revenue.
Why is this important? These insights allow marketers to better allocate resources, reduce waste and further accelerate sales.
Here is an example of how a marketer might utilize these insights to better focus their resources and drive sales. Let's assume their organization has a long, complex sales cycle and therefore, had determined they wanted to take an ABM approach to a segment of their marketing programs. Beyond creating the target account list, the marketer will want to understand and measure engagement with multiple stakeholders within that target account.
It is likely that several different contacts within the account will participate in the process and engage with marketing programs over time. A clear understanding of which decision-makers are engaging, when, and how, will be much more insightful, when viewed in aggregate from the ABM perspective with attribution, than if each contact were viewed as an individual, independent lead and not treated as part of the whole. This ABM view will allow sales and marketing to communicate more effectively and efficiently with prospects based on all of the observed behaviors of the group of target account stakeholders.
Today's marketers must demonstrate a clear, measurable contribution to the bottom line. This means you must be able to track and measure impact (in an integrated fashion across all sales and marketing systems), and you must be able to analyze all of this data holistically to draw insights, properly allocate budget and demonstrate ROI. This data-driven approach is critical to the success of any marketing team.
The ability to validate programs and confirm impact might seem like the unattainable holy grail for some marketers, but with this data and reporting in place, the holy grail is within your reach.
Kristie Colby is the Executive Director of Client Accounts at SmartSearch Marketing, a Boulder, Colorado-based search engine marketing agency. Kristie entered the search industry in 2002 and joined the SmartSearch team in January of 2009. Early in her career, she developed an expertise in online travel and, in the years since, Kristie has worked with clients in a variety of industries on local and national levels including Berkshire Hathaway, Bernstein Rein, Career Education Corporation (Le Cordon Bleu North American schools), LifeSize (a Division of Logitech), Confio Software and QAD. She is a football fanatic, cooking enthusiast and recently took up the challenge of climbing Colorado Fourteeners.


ProTech Business Solutions (PROTECHBS) is an Information technology (I.T.) Development, Digital marketing & Consulting Firm specializing in the design and development of quality, innovative information technology solutions for businesses, with professional experience in the areas of IT & Marketing. Our solutions help organizations to facilitate growth, compete more effectively, reduce costs, and work more efficiently.
PROTECHBS build long-term relationships with our clients, engaging each client at a higher level than would be possible otherwise. We provide outstanding customer service and support, as well as a relentless commitment to quality in all aspects of our business.
PROTECHBS employ highly experienced, certified professionals and utilize best-in-class tools to implement the highest quality information technology solutions.
Our Clients will be benefited with our dedicated work.
One point of Contact for all digital needs.
Customized solutions based on Clients needs.
Our mission is to build long term relationship with our clients through a combination of innovative, high quality solutions and services. We ensure client's satisfaction as our top priority by consistently meeting and exceeding customer requirements. PROTECHBS will continue to keep ourselves abreast of cutting edge technologies to support our clients grow their business and to constantly outperform our peers.
PROTECHBS passionately dedicate ourselves to the cause of creating high end, innovative, quality services and solutions to our clients. We want to reach out worldwide organizations with preeminent services and leading edge technologies to provide excellent IT development services.
PROTECHBS thrive to provide world-class quality products, services and solutions in Los Angeles, CA and help build brand equity for the IT software and services industry. We adhere to high standards of quality policy and quality systems when developing new products, the business plans the stages of development, with appropriate testing at each stage and have compliance for ISO 9001 - quality assurance.


text:
Security Company Liable for Negligence in Georgia
Home » Security Company Liable for Negligence in Georgia
In a 2013 case a woman was sexually assaulted by someone who broke into her house while she was at work and stayed there, although she triggered the alarm system. She sued the company that she had paid to monitor the security system on the grounds of negligence. The company moved for judgment notwithstanding the verdict and new trial. These were denied by the trial court.
The company appealed, arguing that the trial court should have found that there were no issues of material fact on the negligence claim and that the limitation of liability clause was enforceable, and that the court should have instructed the jury on assumption of risk, among other things.
The woman had purchased her security system from Tel-Star Alarms. It installed the system. She gave the company her work phone and designated her older sister as an emergency contract. A clause limited the company's liability to $250. Less than a month after the purchase, Tel-Star assigned her contract to Monitronics, the defendant. It had the responsibility of monitoring her security.
In 2006, the plaintiff went to her job at Target. After 10:00 a.m., an internal motion sensor was triggered. The defendant's representative called her house and dispatched the police. The representative tried to contact her at work but did not follow through, calling her sister instead.
She did not reach the sister. Alarms continued to go off. Monitronics again called the police and finally reached the sister. The sister said she would go over,but didn't. A Monitronics representative continued to try to reach the plaintiff, but by that time she had gone to her second job.
The police said they would not go to her house unless someone with a key was there to meet them. No further alarms were triggered that afternoon, and Monitronics did not try any further to contact the woman, her sister, or the police. The plaintiff came home that evening. Her sister had left a note about the alarms, but she didn't see it and didn't know there was a potential intruder.
The plaintiff went inside to turn off the alarm, and a Monitronics representative called her. Although the rep had access to the records of earlier alarms going off that day, she told the plaintiff it was because the door didn't have a delay timer.
The plaintiff went to her bedroom and saw items she didn't recognize on her nightstand. She called her sister and left her a message. As she was getting ready for bed, the intruder grabbed her waving a knife. The assailant forced her to drive to an ATM to withdraw money, threatened her life, and raped her. He had been drinking tequila all day and passed out. She escaped and called the police from her neighbors' house. The police arrested him, and he pled guilty.
She sued Monitronics for breach of contract, negligence, and fraudulent misrepresentation. The defendant filed for summary judgment, claiming it had no duty beyond the contract terms and claiming the contract limited its liability to $250. The trial court denied the motion, ruling that there were issues of fact about whether Monitronics breached a duty of care owed to the woman, causing her injuries, and also found the liability limitation was not applicable.
The case went to trial. The jury found for the plaintiff, finding that Monitronics didn't exercise ordinary care and increased danger to the plaintiff. It did not award punitive damages. Monitronics asked the court to grant it judgment notwithstanding the verdict.
The appellate court explained that, in Georgia, a person can be held liable for negligent performance of a voluntary undertaking. That meant that the security system could be held liable for injury resulting from a purely voluntary and gratuitous undertaking. The plaintiff would not have stayed in the house had Monitronics made sure she knew of the multiple alarms. The court affirmed the judgment.
If you are hurt or a loved one is killed due to negligence, you may be able to recover compensation for your losses. Experienced Atlanta personal injury attorney Terrence R. Bethune can evaluate your case and fight for any compensation you may deserve. Contact us at 404-875-7800 or via our online form.
What is an Ante-Litem Notice in Georgia? February 28, 2014
Proximate Cause in Georgia Car Accidents, February 13, 2014
Tandem Driving Theory of Liability in Georgia Car Accidents, February 4, 2014

redpajama_set_name: RedPajamaCommonCrawl


WP Nearby Places lets you easily create Google maps for your WordPress website with your specified location at its center. Website visitors will have the ability to quickly search what's around your specified location like no other mapping plugin that uses the power of Google maps. WP Nearby Places also uniquely breaks down neighborhood locations by categories, such as "Restaurants", "Parks", "Police" and, depending which version you purchase, provides the locations' name, address, URL, website address, phone number and distance (in miles or kilometers) from the central location. There are 3 versions available: Basic (which is free and available through WordPress.org), PRO and Premium (which is offered here). For details about all our licensed versions available, including our exciting Add-ons, go to https://members.wpnearbyplaces.com/shop.
WOW… I didn't know all these places existed!
WOW! That's all I can say about the WP Nearby Places, Plugins!!!!
Center Your Location Make your address the center of the universe on a Google Map, where everything revolves around you!
All the different types of places are categorized so that finding what you're looking for is a breeze!
Find Where Your Closest Bank Is & Get Some Money Fast!
Easily find where to drop off your laundry on your way to work!
Quickly get a bite to eat at a local hangout!
Please Note: "Skyrocketing your search engine results" is a projected claim we make as a natural result of when good SEO practices are used as encouraged by using the Premium version of WP nearby Places and featuring your neighbors. More details are provided inside our membership area. Joining is free. Go to https://members.wpnearbyplaces.com.
© Copyright 2018 Albert Harlow & Sons, Inc. – Protected under the Copyright & Trademark Laws of the United States of America.


text:
Belinda Jane Hocking (Wangaratta, 14 de setembro de 1990) é uma nadadora australiana.

Nos Jogos Olímpicos de Pequim 2008 ficou em oitavo lugar nos 200 metros costas. Participou dos Jogos de Londres 2012, onde disputou as provas dos 100 m (7º lugar) e 200 metros costas (10º).

Nadadores olímpicos da Austrália
Nadadores nos Jogos Olímpicos de Verão de 2008
Nadadores nos Jogos Olímpicos de Verão de 2012
Nadadores nos Jogos Olímpicos de Verão de 2016

redpajama_set_name: RedPajamaWikipedia


The 2017 Defensive Rookie of the Year is... Maurice "New Night Train" Lane, CB, Seattle Seahawks! New Night Train Lane had 116 tackles, 7 passes defensed, 2 interceptions, and only allowed a 32% completion rate! New Night Train was one of the most dominant players at his position, performing like a shut-down corner at only 22 years old!
Second in voting was Gary "Brick" Parsons, a DT for the Seattle Seahawks, who got 44 tackles and 26 sacks.
Maurice Holiday, MLB, Philadelphia Eagles came in 3rd, and Joshua Foster, CB, Detroit Lions came in fourth place.


Well, I see my colleague Mohamed Elmasry is at it again.
COREN: So everyone in Israel and anyone and everyone in Israel, irrespective of gender, over the age of 18 is a valid target?
ELMASRY: Yes, I would say.
Elmasry later apologized for his remark.
Now, in his role as "Chair and National President" of the Canadian Islamic Congress, he's bringing Al-Zarqawi supporter and general froot loop Yvonne Ridley to speak in Montreal, Toronto, and Waterloo. Yes, that's certainly the way to improve relations with the Jewish community.
A convert to Islam, Ridley has urged British Muslims not to cooperate with the police and has been an apologist for both Al-Zarqawi and a Chechen terrorist involved in the Moscow theater hostage crisis.
Recently she has blustered that "However if any of those Zionist idiots continue to try and paint me as an anti-semite I must warn you ... one of my closest friends is one of Britain's best defamation lawyers." Let's see, the last British journalist that blustered about libel in the same way was David Irving... and that didn't work out so well for him, did it?
In response to accusations of anti-Semitism, Ridley writes "Well a semite is a person who can be an Arab or a Jew ... hmm, so these dingbats are accusing me of hating the entire Jewish and Arab world?" Except that, as Robert Wistrich points out in Antisemitism: The Longest Hatred, "`Antisemitism' is a problematic term, first invented in the 1870s by the German journalist Wilhelm Marr to describe the `non-confessional' hatred of Jews and Judaism which he and others like him advocated... `Antisemitism' -- a term which came into general use as part of this politically motivated anti-Jewish campaign of the 1880s -- was never directed against `Semites' as such.... ...As a result, for the last hundred years, the illogical term `antisemitism', which never really meant hatred of `Semites' (for example, Arabs) at all, but rather hatred of Jews, has come to be accepted in general usage as denoting all forms of hostility towards Jews and Judaism throughout history."
I don't like the fact that B'nai Brith "would have supported" a ban of Ridley from Canada. By all means, let the attention-seeking froot loop speak. Her own words demonstrate her intellectual bankruptcy and the dangers of mixing religion with politics.


I am an indie game developer. I have been developing Rice Burner for the past two years. It is a free engine,car building game for mobile.https://play.google.com/store/apps/details?id=com.tonismogames.riceburner I am looking for the support to continue this project. My goal is to keep making Rice Burner better for you guys and for Rice Burner to remain a free game. Please come join me on this wonderful journey!
This will pay for maintaining Rice Burner.


text:
Cliffhanger Ahead in 8th Congressional District
Polls show Kim Schrier and Dino Rossi in close race for open Congress seat
By John Stang • October 1, 2018 11:30 am
Tags: Election 2018
Dino Rossi's Saturday pep talk to his door-to-door campaigners in southern Renton featured a couple of numbers — 129 and 23.
Rossi lost Washington's 2004 gubernatorial election to Chris Gregoire by 129 votes on the third ballot count. "One hundred twenty-nine votes. You'll be contacting enough people today to make a difference," he told roughly 20 volunteers and an accompanying dog at the Ridgeway Elementary School parking lot before they hit the pavement.
He also noted that in 2016, presidential candidate Hillary Clinton won in 23 congressional districts nationwide that currently have Republican representatives. "This is one of them," he said.
And that is why Washington's 8th Congressional District — stretching from Seattle's easternmost suburbs to the Columbia River — is one of the most watched in the nation. With the retirement of Republican Dave Reichert, this congressional seat has no incumbent. The stakes are whether Democrats can wrestle control of the U.S. House from the GOP.
On Sept. 26, the New York Times/Siena College Poll gave Democrat Kim Schrier a win with 46 percent of the 505 people contacted, gave 45 percent to Rossi, and tallied 9 percent undecided with a margin of error of 4.6 percent. The fivethirtyeight.com political number-crunching website predicts Schrier will get 51 percent and Rossi will get 49 percent — with the conclusion that Schrier has a five-in-eight chance of winning.
This race could be a cliffhanger.
"I'm not going to say [Schrier] will lose the 8th. But it'll be tough to win the 8th," said Rob Fraser of Ellensburg and vice-chairman of the Kittitas County Democratic Party.
The Federal Election Commission reports $3 million has been raised for Rossi and $1.6 million for Schrier. This does not include independent committees paying for the nastier political ads on both sides — advertisements that Schrier and Rossi say they have no control over because they are not legally allowed to communicate with those independent political funds.
Schrier, 50, a pediatrician for Virginia Mason Medical Center, is taking on Rossi, 58, an investor in real estate projects. In July, Rossi resigned from Coastal Equity Partners, but still invests in real estate projects on his own. Both candidates live in Sammamish.
Schrier is a political rookie who tried to talk Reichert into opposing President Donald Trump's plans to cut back on the Affordable Care Act, also known as Obamacare. But Reichert backed Trump's bill to get it out of committee. As a result, Schrier decided to run against Reichert prior to his retirement announcement.
Rossi served two terms as a state senator from Washington's 45th District in Seattle's northeastern suburbs. He ran unsuccessfully for governor in 2004 and 2008, as well as losing the 2010 U.S. Senate race. Although he lost all three statewide races, he won the 8th District all three times by at least 10 percent in those contests.
Schrier has tried to paint Rossi as having "a hyper-partisan record too far right for this district." Meanwhile, Rossi said: "She has marched in more protests in Seattle than in parades in this district." Both candidates have described themselves as moderates.
The Washington Redistricting Commission — two Democrats, two Republicans and one non-voting neutral — deliberately designed the 8th District as a swing district, which has always been slightly red. It has never elected a Democrat to Congress. But Republicans rarely have won it by more than a few percentage points.
On the district's west side are heavily Democratic Issaquah and Sammamish in a field of GOP-leaning rural areas in King and Pierce counties, said Ben Anderstone, a Democratic political consultant specializing in election demographics. Heavily blue Ellensburg, Leavenworth, and Roslyn are Democratic outposts in otherwise Republican Chelan and Kittitas counties. Another wrinkle: while the 8th has kept electing Republicans to Congress, it has gone twice for Barack Obama and once for Hillary Clinton.
Anderstone noted Rossi's three statewide races give him name-recognition advantage over Schrier. Without that name recognition, Anderstone speculated that Rossi might be lagging farther behind Schrier.
The elephant in the room is President Donald Trump and whether his controversial presidency is a factor in the 8th District race.
"President Trump is not on the ballot. So it is not a factor for me," said Rossi campaign volunteer Phil Mattern of Des Moines.
"I hear from a lot of women who are upset (with Trump), and they're Republican women," Fraser said.
"No member of the (Republican) party is standing up to this administration. (Rossi) will be a rubber-stamp for this administration," Schrier said.
Rossi declined to say whether he thinks Trump is a good or bad president. In fact, he grew impatient when pressed on that question. "I sure know Hillary wouldn't have been good for the country," he said.
Rossi supported Trump's massive tax cut package, which added $1.5 trillion to the national debt. Rossi argued these tax cuts translate to corporations being able to give bonuses and extra pay to employees. "Taxes are the biggest issues that I get on doorbelling," Rossi said.
Rossi said he supported Trump for election because the president would be picking U. S. Supreme Court justices. Rossi said he is happy with Neil Gorsuch, who joined the court in 2017, but has not taken a public stance with Brett Kavanaugh, whose nomination is controversial due to sexual abuse allegations and a public record of slamming Democrats. Rossi backed the removal of the individual mandate in the Affordable Care Act, and said health insurance should be based more on the free market. He is pro-life. Rossi thinks no one wins trade wars.
Rossi calls himself a "fiscal conservative with a social conscience." On the "social conscience" side, Rossi pointed to his work in building greenways on Interstate 90, plus his past service on the boards of the Washington Special Olympics and the Nature Conservancy.
Rossi's political reputation as a cross-the-aisle budget guru dates back 15 years to a budget impasse in the Washington Legislature's 2003 session. Then-Gov. Gary Locke, a Democrat, and the Senate majority Republicans joined forces in declaring no taxes should be levied when dealing with a $2.6 billon shortfall — a deadlock with the Democratic-controlled House that sent the 2003 session into overtime.
Locke and the Senate Republicans prevailed, although cuts in social services were not as great as originally expected. In its end-of-session analysis, the Associated Press praised Rossi, noting the GOP's ability to consistently pick up a few moderate Democratic votes on the Senate's budget bills.
A 2003 AP analysis said: "A star was born. Rossi, brand new to the budget chairmanship, took to the post like a natural. He charmed and disarmed his colleagues, and pieced together a fairly benign budget when the House Democrats got high-centered. He showed a flair for well-timed one-liners and folksy debating points. Before long, people were talking: Rossi for Congress? Rossi for governor? Stay tuned."
Rossi left the Legislature that same year to run for governor. He served two short stints as an appointed senator to fill in a couple of vacancies that showed up in the middle of terms.
If elected, Rossi wants to become a budget wonk again, hoping to get onto the House's ways and means or appropriations committees. He is not interested in serving on non-financial committees.
Democrats have been attacking Rossi on being a junior associate of Melvin Heide for much of the 1980s. In 1989, Heide was sentenced to three years in prison and ordered to pay $1.7 million in restitution for frauds involving loans and real estate deals. In the 1980s, Rossi, at the beginning of his career, followed Heide through three real-estate firms in the 1980s, according to the Seattle Times. Rossi was never implicated in any of Heide's crimes, although the Times story quoted a business associate wondering why he would follow Heide through three firms.
Rossi said he was a 23-year-old rookie in the real estate investment world when he first worked for Heide. Rossi said he was never involved with the portions of the businesses where Heide's actions were suspicious or criminal. "I had nothing to do with it," Rossi said.
Meanwhile, Schrier sees Trump as a major factor in the election — especially with Republicans controlling both chambers in Congress while reluctant to rein in Trump from his almost daily controversial actions.
"I believe President Trump to be dangerous. …. We have a broken government that is not imposing checks and balances on the president," Schrier said.
Schrier's passion is health care. She wants to return the individual mandate to the Affordable Care Act. Both Schrier and Rossi claim the other's stances on Obamacare drive up a health insurance premiums. "The ACA was a big win in the district for people older than 50," she said.
Schrier wants to safequard and expand on helping women with health care. "I think women should be in charge of their own health care decisions," she said.
She argued that the $1.5 trillion tax cut went mostly to corporations and the wealthy with little trickling down to ordinary people. One-time bonuses from some corporations are not enough to justify the cuts, Schrier contended, preferring to boost long-term income increases for low- and middle-income people. She opposes Trump's tariffs, noting that the escalating trade wars are hurting farmers, who may or may not get bailouts from the feds.
Schrier is also interested in climate change issues, boosting solar and wind energy, and reforming immigrant laws "so workers on the farms are not afraid of getting arrested on the way to work."
Dino Rossi is the Republican candidate for the 8th Congressional District. Photo by John Stang
Kim Schrier is the Democratic candidate for the 8th Congressional District. Photo by John Stang
Seahawks Legend Steve Largent: 'Football Was a Life-Saving Event'
Sen. Joe Fain Accused of Rape; Bothell to Allow Accessory Dwelling Units; Kirkland Supports I-1639
Task Force to Governor: Whale-Watching...
By John Stang
Rat City Roller Girls Ready...
Report Reveals Inequities of Climate...
Death Watch For Killer Whales?


text:
layout:     post
title:      "The Bubble sort algorithm"
subtitle:   "#sorting-algorithms series"
date:       2016-03-13 15:00:28
author:     "Benoit VALLON"
header-img: "/img/2016-03-13-the-bubble-sort-algorithm/post-the-bubble-sort-algorithm.jpg"
comments:   true
categories: sorting-algorithms-in-javascript
tags:       [algorithms, sorting, bubble-sort]
---

{% include_relative sorting-algorithms-series/about-the-series.md %}

# The Bubble sort algorithm

## Definition

> Bubble sort is a simple sorting algorithm that repeatedly steps through the list to be sorted, compares each pair of adjacent items and swaps them if they are in the wrong order. The pass through the list is repeated until no swaps are needed, which indicates that the list is sorted.
**From [Wikipedia](https://en.wikipedia.org/wiki/Bubble_sort)**

## Visualization

If you want to have a nice visualization of the algorithm, the [visualgo.net website](https://visualgo.net/en/sorting) is a nice resource. You can play with many parameters and see which part of the algorithm is doing what.

## Complexity

Time complexity |||
--- | --- | ---
Best|Average|Worst
O(n) | O(n^2) | O(n^2)

To get a full overview of the time and space complexity of the Bubble sort algorithm, have a look to this excellent [Big O cheat sheet](http://bigocheatsheet.com/).

## The code

For each sorting algorithm, we are going to look at 2 versions of the code. The first one is the final/clean version, the one that you should remember. The second one implements some counters in order to demonstrate the different time complexities depending of the inputs.

### Clean version

{% include_relative sorting-algorithms-series/bubble-sort.md %}

### Version with counters

{% include_relative sorting-algorithms-series/bubble-sort-counters.md %}

redpajama_set_name: RedPajamaGithub


Ohio may be one of the hardest hit states in the ongoing opioid epidemic but local officials and court systems are doing their best to turn those numbers around. Now one local Ohio drug court may have become an example for the rest of the country in battling crimes associated with the opioid crisis and addiction.
The opposing numbers of from different drug courts come at a time when many Ohio legal officials are trying to figure out where to put money intended to curb the crisis. Drug courts are inherently more expensive and utilize more resources than the traditional court system but Ohio Governor Mike DeWine has made the specialized courts a priority in his administration. During his campaign, Dewine touted a 60% increase in drug courts.
In a traditional court system, defendants are prosecuted and then given a punishment like a fine or jail time. Drug courts focus on offenses related to drug crime like possession or property theft and seek to rehab the defendant instead of tossing them behind bars. Drug courts are only for non-violent crimes stemming from an underlying addiction.
In drug courts defendants may be partnered with a probation or compliance officer, are required to take regular drug tests, and might be required to attend 12-step meetings or seek drug addiction treatment. 56 of the Buckeye State's 88 counties have at least one drug court with harder hit counties like Montgomery and Greene County have multiple courts. The goal of drug courts is to reduce recidivism by treating the individual, not punishing the crime. Proponents of drug courts argue their techniques will help close the revolving door of addicts in and out of hospitals and courtrooms and will save the state money and resources in the long term. The numbers agree with the proponents. A 2005 University of Cincinnati study found every dollar spent on drug courts saves approximately $5 in prison housing and other expenses – that is assuming that drug courts do lead to a reduced crime rate – which the local courts have demonstrated is attainable. A more recent study from the University of Virginia found drug courts can save the state and its taxpayers a whopping $20,000 per successful completion.
Like Ohio's overall strategy Judge Mary Wiseman of Montogomery county points to a holistic approach as the most effective. Holistic approaches seek to treat all parts of a person and not only their immediate addiction. In Wiseman's Women's Court defendantscanN work with a counselor or drug court compliance officer to discuss problems like mental illness, abuse, and other issues that might knock them off the track to sobriety.
"If they can't heal from that, their risk of recidivism and their risk of relapse is very high," said Wiseman.
In Ohio, judges must apply to the State of Ohio Supreme Court to get permission to hold drug courts. Though studies and numbers suggest they are more cost-effective in the long run, many judges simply don't have the resources and energy to run a drug court which require much more work and participation on the judge's part.
Many criminal justice officials are happy with the progression and holistic approach of the drug courts. Though drug courts take place after arrest, their use has been heralded by Ohio law enforcement officials. Ohio Department of Public Safety Director Tom Stickrath believes they're vital to turning around the revolving door of addicts in Ohio jails and prisons. Stickrath believes drug courts save the taxpayers money and possibly their lives.
Warren County's drug court began in 2016. 22 of the 40 women that enrolled in the program graduated, or fully completed their probationary requirements. Only 2 were found to have committed other crimes since drug court – much lower than the traditional average. 75% of the women who graduated from Wiseman's Montgomery County court had no new crimes on their record after the Dayton Daily New's research. 11% had new felony charges and 11% had new misdemeanor charges – a significant dropoff from the county's average 3-year recidivism rate of 36%. Mahoning County saw much higher rates of probation completion for defendants in the continued counseling of drug courts compared to the recommendation of treatment with no follow-up.
The commitment of judges and other criminal justice officials to Ohio's drug courts is helping the state reduce overall crime and recidivism for its participants. The positive results are spreading through Ohio and could set an example for the rest of the country.


text:
Forescout Wins Homeland Security Award from Government Security News
Cupertino, Calif. — December 4, 2012 — Forescout Technologies, Inc., a leading provider of automated security control solutions for Fortune 1000 enterprises and government organizations, has been named a Government Security News Homeland Security Awards Winner in the "Best Continuous Monitoring Solution" category. The award recognizes outstanding security products developed by security vendors and government agencies in a wide range of homeland security categories.
"Forescout helps government agencies at the federal, state and municipal level meet the numerous access control and continuous endpoint compliance requirements with an agentless, easy to deploy and scalable solution," said Niels Jensen, vice president of federal sales at Forescout. "To be recognized as a security leader among the government community is truly an honor. As the federal government embarks on its continuous mitigation and diagnostics efforts, we welcome agencies' commitments to Forescout for help in meeting advance port control requisites, real-time asset management, and endpoint compliance objectives."
Forescout is the world's largest independent vendor of network access control solutions. The company's flagship product, CounterACT, is used by many government agencies at the federal, state and municipal level to accelerate the "connect to comply" mandate, strengthen security enforcement and improve regulatory compliance. When teamed with a host based security systems (HBSS), endpoint configuration and policy management systems and security information management systems (SIEM) the solution helps customers realize continuous monitoring and mitigation benefits. Forescout CounterACT is Common Criteria EAL 4+ certified and supports DISA STIG, FISMA and FDCC security guidance for port control and endpoint compliance.
A panel of objective judges selected the award winners. Commenting on the awards, Jacob Goodwin, Editor-in-Chief of Government Security News, said, "We received a number of outstanding entries and handed winners' plaques to an exceptional group of companies and government agencies."
About Forescout CounterACT
Forescout is a fully integrated NAC solution that delivers hybrid 802.1X and agentless NAC functionality making it the easiest and most flexible to deploy, administer and scale. CounterACT lets you see and control everything connected to your network, no matter the device or user. The platform employs 802.1X, RADIUS and multi-factor authentication, and identity and endpoint assessment technologies to grant, limit or block access, as well as manage guests and mobile devices in real-time. Advanced policy enforcement capabilities allow administrators to set rules that can dynamically find and fix endpoint configuration and security issues with little or no intervention, or to automatically quarantine or remove devices in compliance violation or exhibiting malicious behavior.
The company has received numerous awards honoring its technology prowess, is ranked as a leader in the 2011 Gartner Magic Quadrant for NAC and is listed as the fastest growing NAC vendor on the market according to the Frost & Sullivan 2012 NAC report.
Tweet This: Forescout CounterACT Wins GSN Homeland Security Awards
Forescout enables organizations to accelerate productivity and connectivity by allowing users to access corporate network resources where, how and when needed without compromising security. Forescout's automated solutions for network access control, mobile security, endpoint compliance and threat prevention empower IT agility while preempting risks and eliminating remediation costs. Because the Forescout CounterACT platform is easy to deploy, unobtrusive, intelligent and scalable, it has been chosen by more than 1,300 of the world's most secure enterprises and military installations for global deployments spanning 37 countries. Headquartered in Cupertino, California, Forescout delivers its solutions through its network of authorized partners worldwide. Learn more at www.forescout.com.
Forescout Technologies, Inc. is a privately held Delaware corporation. Forescout, the Forescout logo, CounterACT and ActiveResponse are trademarks of Forescout. Other names mentioned may be trademarks of their respective owners.


Rebecca Overmann's Montana Sapphire is the perfect shade of powder blue and big Montana sky. Little diamond accents on a faceted white gold band complete the design and make this ring a perfect alternative to the traditional diamond solitaire.
Size 6.75 in stock. To order a custom version of this ring in your size, please contact us.


text:
Q: Ruby on Rails Scope with params and SQL in Rails 4 Can someone please tell me what is wrong in this statement?
scope :between, -> (sender_id, recipient_id) do
where('(conversations.sender_id = ? AND conversations.recipient_id =?) OR (conversations.sender_id = ? AND conversations.recipient_id =?)', sender_id,recipient_id, recipient_id, sender_id)

end
NetBeans put a red line under it and says Unexpected tLPAREN_ARG
Thank you.

A: If you are using older version of ruby (1.9), it fails with that error message as you can't put space before the parameters in lambda call. May be your Netbeans setup has syntax checker for Ruby 1.9 configured. So the correct syntax for Ruby 1.9 should be:
scope :between, ->(sender_id, recipient_id) do
   where('(conversations.sender_id = ? AND conversations.recipient_id =?) OR (conversations.sender_id = ? AND conversations.recipient_id =?)', sender_id,recipient_id, recipient_id, sender_id)
end

Check the space between -> & (sender_id, recipient_id)
But your code should work with Ruby 2.0 and above.

redpajama_set_name: RedPajamaStackExchange


text:
Co-Authors (139)
Co-Authors are people in Profiles who have published together.
Red markers indicate the co-authors.
Blue lines connect people who have published papers together.
Zoom: New England | Boston | Longwood
To return to the map, click here.
Beth Israel Deaconess Med Ctr
c/o Clifford Saper, KS-406, 330 Brookline Ave , Boston, MA, 02215 42.3402277 -71.105854 Eric T. Wong, M.D.
Meghan Jude Mooradian, M.D.
Brigham and Women's
Department of Neurology, Room 4018, 60 Fenwood Rd , Boston, MA, 02115 42.3351037 -71.1061649 Joshua Peter Klein, M.D., Ph.D.
Anthony A. Amato, M.D.
Keith Lloyd Ligon, M.D., Ph.D.
Sagar Uday Nigwekar, M.D.
Brigham and Womens Hospital
Dermatology, 221 Longwood Ave , Boston, MA, 02115 42.337105 -71.102317 Nicole Renee Leboeuf, M.D.
Neurology, 60 Fenwood Rd , Boston, MA, 02115 42.362417 -71.068937 Tracy Todd Batchelor, M.D.
Mikael Lee Rinne, M.D.,Ph.D.
Jeffrey Alan Barnes, M.D.
Steven Lawrence McAfee, M.D.
Jeremy S. Abramson, M.D.
David N. Louis, M.D.
William Thomas Curry Jr., M.D.
Andrew James Cole, M.D.
Vicki A. Jackson, M.D.
Pamela Stuart Jones, M.D.
Beverly Moy, M.D.
Stuart R. Pomerantz, M.D.
Javier M. Romero, M.D.
Ronald Wayne Takvorian, M.D.
Jennifer Sue Temel, M.D.
Amir Tahmasb Fathi, M.D.
Ephraim Paul Hochberg, M.D.
Justin Franklin Gainor, M.D.
Eva-Maria Ratai, Ph.D.
Xandra Owens Breakefield, Ph.D.
Isabel Arrillaga-Romany, M.D.
Michael Brandon Westover, M.D.,Ph.D.
Jenny Linnoila, M.D.
Anat Stemmer-Rachamimov, M.D.
Rajiv Gupta, M.D., Ph.D.
Frederick George Barker II, M.D.
April Fitzsimmons Eichler, M.D.
Scott Randall Plotkin, M.D.,Ph.D.
Jochen Klaus Maria Lennerz, Ph.D., M.D.
Anthony John Iafrate, M.D.,Ph.D.
Matthew P. Frosch, M.D.,Ph.D.
Noopur Raje, M.D.
Joseph Greer, Ph.D.
Otto Rapalino, M.D.
Thomas Richard Spitzer, M.D.
Allan Moises Goldstein, M.D.
Brian Vala Nahed, M.D.
Kelly Edwards Irwin, M.D.
Kerry Lynn Reynolds, M.D.
Areej El-Jawahri, M.D.
Alice Tsang Shaw, Ph.D., M.D.
Elizabeth Robins Gerstner, M.D.
Adult Oncology, 44 Binney St , Boston, MA, 02115 42.337896 -71.1072493 Nancy U. Lin, M.D.
Ian Elliott Krop, M.D.,Ph.D.
Ann Steward LaCasce, M.D.
Wendy Yvonne Chen, M.D.
Patrick Yung Chih Wen, M.D.
Philippe Armand, M.D.,Ph.D.
Matthew George Vander Heiden, M.D., Ph.D.
Sara Michell Tolaney, M.D.
Eudocia Quant Lee, M.D.
Dept of Stem Cell and Regenerative Biology
Sherman Fairchild Biochemistry Building; Rm 258B, 7 Divinity Ave , Cambridge, MA, 02138 42.3773 -71.0525 David Thomas Scadden, M.D.
Jacob M Hooker, Ph.D.
Bruce Rosen, Ph.D., M.D.
Lawrence Leroy Wald, Ph.D.
Ovidiu C Andronesi, Ph.D., M.D.
Ciprian Catana, Ph.D., M.D.
Mark G. Vangel, Ph.D.
Andre Van Der Kouwe, Ph.D.
Dan Gabriel Duda, Ph.D., D.M.D.
Fruit St
Mass General Hosp., Department of Pathology, Boston, MA, 02114 42.3643579 -71.0661193 Judith Ann Ferry, M.D.
Bldg 2, Rm 421, 655 Huntington Ave, Boston, MA, 02115 42.3354685 -71.1015102 Rebecca Aubrey Betensky, Ph.D.
Assistant in Neurology, Stroke and Memory Disorder, 175 Cambridge Street , Boston, MA, 02114 42.3612658 -71.0651591 Anand Viswanathan, Ph.D., M.D.
Michael Jerome Whalen, M.D.
Cancer Center, 275 Cambridge St , Boston, MA, 02114 42.361257 -71.065527 Andrew J. Yee, M.D.
Hiroaki Wakimoto, Ph.D., M.D.
Cox 3, Radiation Oncology, 100 Blossom Street , Boston, MA, 02114 42.363899 -71.067778 Kevin Shawn Oh, M.D.
Jay Steven Loeffler, M.D.
Rakesh K. Jain, Ph.D.
Bruce A. Chabner, M.D.
Helen Alice Shih, M.D.
Dept of Radiation Oncology, 10 Emerson #122 , Boston, MA, 02114 42.365049 -71.068915 Andrzej Niemierko, Ph.D.
Neuroendocrine Clinical Ctr - Suite 12, Zero Emerson Place , Boston, MA, 02114 42.363354 -71.067037 Lisa Beth Nachtigall, M.D.
Pediatric Gastroenterology, Rm 3400, 114 16th Street , Charlestown, MA, 02129 42.379042 -71.051481 Bobby J. Cherayil, M.D., M.B.,B.S.
Surgery - WH 502, 55 Fruit St , Boston, MA, 02114 42.338372 -71.103269 Ganesh Mani Shankar, M.D., Ph.D.
36-766, 77 Massachusetts Ave , Cambridge, MA, 02139 42.3601929 -71.0916066 Elfar Adalsteinsson, Ph.D.
Dietrich's Networks
buttons for more information and interactive visualizations!
Antineoplastic Agents, Alkylating
Neurotoxicity Syndromes
Cranial Irradiation
Glioblastoma
Scadden, David
Andronesi, Ovidiu
Batchelor, Tracy
Gerstner, Elizabeth
Jordan, Justin
Wen, Patrick
Reardon, David
Chiocca, E.
Jain, Rakesh
People in same department with this person.
Algamal, Moustafa
Bonnar, Orla
Buckley, Rachel
Knudson, Karin
Matiello, Marcelo
Camargo, Erica
Hung, Albert
Mejia, Nicte
Bowley, Michael
Thibert, Ronald


text:
Unite members emphatically reject COSLA pay offer
Unite the union has today (16 October) announced that its local government membership have rejected the revised pay offer from COSLA and voted to authorise the union to move towards an industrial action ballot.
Following a month long consultation 73 per cent of Unite members voted to reject the three per cent pay increase and of those who rejected the offer 88 per cent indicated support for industrial action.
Unite represents some of the lowest paid workers in local authorities across Scotland. The union has previously highlighted based on this offer that some of its members would only receive only £7.25 per week more before tax in the Borders (Grade 1) compared to £33.66 per week at a Grade 12. In Inverclyde, those on a Grade B would receive £8.43 a week before tax compared to £31.67 per week more before tax at Grade O. In this context, Unite questioned COSLA's 'commitment' to parity of pay awards across all bargaining groups as employees earning more than £80,000 were being offered a flat rate of £1,600.
Ann Farrell, chair of Unite Scotland's local authority committee said: "Unite members have emphatically rejected the revised pay offer. This outcome was inevitable in light of COSLA's failure to properly and fairly reward the lowest paid workers in local government. The reality for thousands of Unite members was a comparatively worse position as a result of this offer, which is completely unacceptable. Unite will now move towards a legal ballot following the mandate we have received from our membership, whereby we will be urging all Unite members to vote for industrial action".
Unite's local government craft membership including joiners, labourers, painters and electricians are also being consulted on the revised pay offer from COSLA.
For more information contact James O'Connell on (07568109586) or Elaine Dougal (07810157904).
Unite Scotland is the country's biggest and most diverse trade union with around 150,000 members. The union is led in Scotland by Pat Rafferty.
Lincolnshire health visitors striking today over 'no pay rises' and erosion of professional standards
Newham council faces five days of strikes over treatment of housing repair workers
Barking and Dagenham leads the way for London construction standards
Lincolnshire health visitors to strike for six days over 'no pay rises' and erosion of professional standards
Manchester mayor's bus plans could herald renaissance in bus travel, says Unite
Public urged to write to Suffolk MPs over 25 per cent cut to health visiting workforce


I'm not proud of the .The most active category sponsoring the NHL was automotive, replacing QSR, with carmakers 3 times more likely to sponsor the league than the average of all sponsors, according to ESP Properties.The rinks here are 200 by 85.Good things happen when faceoffs are properly supported; Trocheck backed up Barkov on a shorthanded draw against Pittsburgh, and the Panthers gained possession and ended up getting a out of it.
Unsurprisingly, a less-mouthy Holmes has fallen line, saying, I want to be here for the long-term, and if it means helping out the team, I'm going to continue helping out the team any way possible.Rockets, 7 p.m.Last July, even though the Birds were several under .500, Duquette went into buy mode again, trading for starter Jeremy Hellickson and infielder Tim Beckham.And you need that on third down and the red zone.Flip Saunders played his starters for only half the game.
They'll still be a solid team with DeRozan and LaMarcus Aldridge leading the way, but how far can those two really take you a loaded WestCOLLEGE Played 47 , starting 46, four seasons Womens Kendall Hunter Jersey at USF from 2011…His 46 career starts ranked second all-time USF history…In 2014, named All-AAC Second by Steele…helped running back to just the fourth 1-yard rushing season school history.ended the first half on the offensive with Hennessey turning aside Bosingwa's powerful drive.From Boohoo: hoodies, tracksuits, T-shirts and cropped jackets.
FSU's on-field product last year was a far cry http://49ersauthenticsofficial.com/kendall-hunter-jersey_c-368.html from what the Seminoles had experienced for so years prior.Saturday, Nov.The Razorbacks entered the game seventh the country the NCAA's RPI ratings, and they have now won four a row.13 — at Blazers, 7 p.m.
2011, he made it to the NHL as assistant coach under Babcock with the Detroit Red .Gallagher Premiership.No http://www.officialminnesotawild.com/Adidas-Matt-Read-Jersey Credit Card.He admitted it's especially helpful at a position like pick 17 where the team has to prepare for multiple scenarios, as Matt Read Jersey you can never fully know what go down when the clock strikes 5pm on Thursday: We give a team or two teams to each and they're responsible for knowing that team, their needs who they signed the offseason.They've accumulated 60 punt return yards and average 20 yards per return, which is 2nd the NFL.Tuchel, Simeone, Rodgers, Vieira, Ancelotti, Massimiliano Allegri and Joachim Low are among the names linked with replacing Wenger, but would like to Wenger's style remain.
Luck felt sore, tired but pain-free after throwing at camp By MAROT He's also pain free – just as the Indianapolis Colts hoped.It's a mountain of money for a center, but the still-under-construction Browns aren't a squad that can afford to watch talent walk out the door.Most importantly, though, they'll never, ever, take away wrestling from me, as as I am breathing and have the love for the sport my heart.Steven 's workload won't be reduced any time .
He shouldn't be Detroit's lead back but should have a strong complementary role.
McClellin is planning on making the switch permanent, though.Josh's Pick: Take +6 Get $60 worth of FREE premium member picks.Started the firth three before suffering a -ending shoulder injury and was later placed on Injured Reserve 2014.The Browns ' last , Michael Lombardi, was able to select one draft class during his second chance .
You eat breakfast and drink coffee, your normal morning routine, and turn on your television to watch your beloved sports .
This entry was posted in Matt Read Jersey and tagged Matt Read Jersey, Womens Kendall Hunter Jersey on November 5, 2018 by admin.


text:
A prison within a prison: trans women behind bars in Azerbaijan
By Ali Malikov
In Azerbaijani prisons, binary gender norms and institutional homophobia leave trans women particularly vulnerable to physical violence, sexual abuse, and psychological damage.
For Zinat, a 30-year-old Azerbaijani trans woman, the day she was sent to prison was 'the end of the world'.
Having struggled against a state and society that persecutes trans women, things only got worse once she went inside to serve 30 days on charges of resisting police.
'The first time I was convicted in prison, the prison guards spoke to me in a very unpleasant way, and threatened that they would shave my head.'
'When I went out into the prison yard to get some air, the other prisoners laughed: "there are some new asses here".'
This was her introduction to a system in which queer people face abuse, violence, and sexual commodification from both those in charge and fellow inmates, and in which the perpetrators face no risk of repercussions.
A sexual economy
Nina (not her real name) is a trans woman who has undergone gender-affirming surgery, and spent two years in a men's prison. Once inside, she quickly found that, even in a supposedly single-sex environment, a gendered hierarchy ruled.
Prisoners perceived as more masculine were termed 'mujik' ('man' in Russian), and those seen as more feminine were known as 'asses'. While the mujiks were afforded some social status and privilege, those who were seen as insufficiently masculine were demoted to the bottom of the social hierarchy.
'Those who were kicked out of the "mujik" level [for having sex with trans women] did hard work like cleaning toilets. These "broken" men were engaged in work like cleaning garbage.'
At its most violent, this status could be inflicted on men to punish them. Heterosexual male prisoners who were seen as feminine were labelled passive or receiving, and raped in order to 'break' them.
But trans women were seen as the lowest in the social hierarchy, and so dangerous even to associate with.
'When someone bought cigarettes from [trans women] in there, the chief reprimanded us: "You made a mujik into an ass",' says Nina.
Navigating sexual dynamics in a men's prison provided an additional challenge, as trans women were seen as both a threat and a sexual commodity.
'We could not be intimate with the men there, they strictly controlled it. [Prisoners and prison officials] even threatened: "If you come close, we'll punish you for 'breaking' the man" ', said Nina. 'Of course, despite the insults and humiliations, there were secret sexual relations.'
Nina had had breast surgery, so was not allowed in common spaces with other prisoners for fear that they might be attracted to her, but prison officers would 'sell' trans women to other prisoners.
'When it worked, they got our ₼5–₼10 ($3–$6) "salary." '
'I was treated like a traitor or a public enemy'
In Azerbaijan, being queer can be enough to get you put behind bars, according to Zinat, a trans woman in her 30s.
'I heard that my friends had been arrested, so I went to the police station. When I got to the police station, they found out that I was a trans woman and sent me to where my friends were being detained.'
'We waited until morning in the station and they took us to the court. They slandered all of us and claimed that we resisted the police. The judge sentenced some of us to 20 days and some to 30 days without listening to us or giving us the right to speak.'
Once inside the prison, queer people were sent to separate cells.
'There were about 10 trans women in a cell for two people. The gay people were in a separate room. There were more gay people than trans women, and their cell was just for two people as well.'
'I saw demeaning behaviour towards LGBT+ people in prisons. Insults, curses, humiliation, and the worst thing is they cut our hair bald.'
Isabel (not her real name), a bisexual trans woman, told OC Media that she was imprisoned for two months for making humorous posts on social media that were critical of the government. According to Isabel, she was taken from her home to court, and then to jail, in under an hour, and did not have access to a lawyer.
'I was jailed because of my posts, so I was treated like a traitor or public enemy. There was constant psychological pressure and physical violence.'
'I knew more-or-less about prison life so I would have been satisfied with just reading books and sleeping, but the guards and prison chief were constantly making me feel uncomfortable.'
Isabel said she concealed her sexual and gender identity and acted more masculine and heterosexual to avoid 'a bigger hell'.
'But it was [my experience in] court that meant more to me than the prison. Because the road to prison is the court, and it lacked conscience, literacy, or justice.'
No protection for LGBT people
Azerbaijan's legal system reliably fails queer people, says lawyer Jala Bayramova, who works with the Nafas LGBTI Alliance, an Azerbaijani queer rights group.
According to Bayramova, these problems are rooted in Azerbaijani legislation, which fails to offer any protection to people who do not fit heterosexual and cisgender norms.
'The law only supports male and female as genders and their heteronormative relations. LGBTI+ rights fall outside because of this narrow approach. The law perpetuates gender stereotypes and does not protect primary victims of gender-based violence.'
Even outside of prison, queer people in Azerbaijan have many of their basic freedoms severely restricted. queer people risk abuse from families, employers, and strangers, and are forced to navigate an environment that's increasingly dangerous for queer people.
[Read more on OC Media: The rise of homophobic hate speech in Azerbaijan]
But on the inside, what little control they have over their environments is lost, and queer people are left marginalised and punished at all every level of the system — facing abuse and harassment from police, courts, prison staff, and inmates.
Isabel summarises her experience succinctly:
'I noticed that the inside is no different from the outside. Same tyranny and rampage.'
A version of this article first appeared in Azerbaijani on the Gender Resource Centre.
Ali Malikov is a queer activist and journalist. They are also one of the founders of the feminist-queer platform 'Femkulis'.
#Queer rights in Azerbaijan
#transgender rights
5. Analysis | How Kadyrov uses 'the Path of Akhmat' in sports to cement his rule in Chechnya
The Abkhaz blogger charged with treason for calling for unification
What can the Caucasus expect in 2023? Our readers and staff give their takes


text:
Home/News/Appointments/World Gold Council appoints David Tait as CEO
World Gold Council appoints David Tait as CEO
Tait will join the organisation on 7th January 2019 as CEO designate for a transitionary period before becoming CEO on 25th February
Lewis Catchpole Send an email Wednesday, 28 November 2018, 12:23
World Gold Council CEO David Tait
The World Gold Council, the market development organisation for the gold industry, has appointed David Tait as its CEO.
Tait joins the World Gold Council following a successful career in the financial services industry. He was most recently global head of fixed income macro products at Credit Suisse. Prior to that he held senior trading roles at both Credit Suisse and UBS Investment Bank.
Tait began his career trading at Goldman Sachs and Credit Suisse and then built considerable asset management experience at Bluecrest Capital, Peloton Partners and Citadel Europe. He is currently an independent member of the Bank of England's FICC Market Standards Board.
He is also a major supporter of the NSPCC and has raised over £1m by climbing Mount Everest on five occasions. He was awarded an MBE by the Queen for his services to the charity.
Tait will join the organisation on 7 January 2019 as CEO designate for a transitionary period before becoming CEO on 25 February. He will succeed Aram Shishmanian, who has served as CEO over the past 10 years.
The chair of the World Gold Council, David Harquail, said: "I would like to thank Aram Shishmanian for the leadership role he has played over the past decade. As CEO, he has transformed the World Gold Council into a truly influential organisation that has helped to stimulate and sustain the demand for gold globally. I am looking forward to working with David Tait to continue this important work."
Tait added: "This is a pivotal role for the gold industry and one that I am truly excited to take on. Global markets have undergone immense change over recent years and the case for investing in gold is as relevant today as it was for investors a century ago. I look forward to working closely with the members of the World Gold Council as we develop what is next for gold in these increasingly uncertain times."
Watches of Switzerland names Ian Carter as chair
Kim Pelletier named Get Diamonds CEO
Tuesday, 1 September 2020, 12:32
Tuesday, 25 August 2020, 14:13
Gemological Science International appoints chief learning officer
Monday, 24 August 2020, 14:35
Céline Assimon named as new De Beers CEO
Thursday, 30 July 2020, 13:46
The Diamond Club of Antwerp unveils new board
Tuesday, 28 July 2020, 12:43
FHH president departs after 15 years
Diamnet founder joins London Diamond Bourse
Time and More appoints new sales director
Friday, 3 July 2020, 14:05
Reservoir Watches appoints new brand director
Wednesday, 1 July 2020, 13:59
Ellington Timepiece Laurence Brannigan as non-executive director
NAJ welcomes new chair
Friday, 19 June 2020, 12:34
Arnault son named as Tag Heuer CEO
Friday, 5 June 2020, 12:41
Birmingham Assay office elects five new guardians
Thursday, 4 June 2020, 12:37


Are you a brand or company with an interesting product or service? I'd love to work together and help you bring your brand to life.
Welcome to Tiaras & Tantrums! My name is Rese and Tiaras & Tantrums has been my space for the past 12 years! I am a home educating mom to three awesome children. I drink way too many lattès, sodas and flavored coffees! I adore my kids and am obsessed with traveling the globe! Photography is a great love of mine every since I took photography in high school and hid out in the darkroom instead of going to class. I blog about life, photography, travel, food and education and just about anything else I feel like chatting about. Grab a lattè and spend some time with me.
I am located in the suburbs of Chicago and am available for local media coverage AND worldwide event coverage as well. If you would like to work with Tiaras & Tantrums . . . I offer the following services. Email for my current media rate sheet. tiarastantrums@gmail.com.


text:
WorldWN-General
Global warming: Fish will disappear in the next few years
Fish will disappear in the next few years due to the global warming, a new study by scientists at the University of Plymouth and the British Antarctic Survey found.
British scientists revealed that the fish will fade due to lack of oxygen and the high temperatures.
The study was able to analyze the crustaceans found in the South Pole; their size is smaller than in the past due to the level of oxygen.
"This is a major cause of concern, and it is certain that large species will be the victims of the oxygen-deficient ocean," said Professor John Spicer, lead author of the study from Plymouth University.
The study suggests that failure to control the gases will have a far greater impact on future marine organisms than we expect.
Over 50 years, oxygen has fallen from 2% to 5%, which has an impact on marine organisms, and that many invertebrates will contract or become extinct if they cannot adapt, Spicer said.
"Understanding these effects will help us predict the fate of biodiversity as well as many mechanisms that help species survive," said Dr Simon Morley, a British survey participant.
Read also: Emperor Penguin disappears significantly from Antarctic Halley bay
World Robert Frank - January 16, 2021 0
The doses of the Chinese anti-corona virus vaccine will be transported first to Turkey, where they will be examined and packed, before arriving in...
AM-Politics Robert Frank - January 14, 2021 0
Pakistan Zubair Yaqoob - January 13, 2021 0


This tutorial will provide you with all you need to begin adding your own JCMs and other EMC controls to figures and props with only a text editor.
The provided zip file (available above) contains the deflating balloon and lever figure used in this tutorial.
Unzip it into your Poser folder (the one containing the Runtime folder) and you are ready to start.
The first thing you will need to do is find the Balloon.CR2.
Go ahead and load the Balloon figure into Poser and have a look at it.
Most instances of JCM deal with muscularity morphs controlled by arm or leg joints, but for this tutorial, I thought something a little different was in order.
The balloon part has only 1 dial, Deflate. This is the morph we will be controlling.
The lever part has only 1 dial as well, zRotate, which pulls it left/right. This will be our controlling action.
At this point, we haven't created the JCM, so using the lever does nothing, but you can manually dial the morph on the balloon.
Most of the dials are hidden and joints/trans/scales are locked to prevent accidental changes. To scale or rotate the figure, use the BODY of it.
JCMs are one application of a method often called EMC(Extended Motion Control) or somtimes ERC(Extended Remote Control).
Each instance of EMC relates 2 actions together(a Control and a Subject) with a degree of Influence.
Control and Subject actions can be morphs, joint rotations, a part's trans(location), or even scales. Pretty much any dial can control any other dial.
The Control action is defined with 3 pieces of information.
We don't have to define anything about the Subject, since it is in the Subject's portion of the CR2/PP2 that we place the JCM, so Poser will already know who the Subject is.
Creating a JCM consists of adding 5 lines to a CR2 or PP2.
The first line, valueOpDeltaAdd, simply lets Poser know that this action is going to accept influence by an external action.
The Controlling Figure is the name of the figure as it appears when loaded into Poser.
This can be problematic, since Poser will enumerate figure names if others already exist in the scene with the same name (figure 1, figure 2, etc) and the name must be exact, including case and the enumeration.
-The tutorial figure will have the name Balloon when loaded.
The Controlling Part is the exact name of the body part of the above named figure that performs the influencing action.
If there is a :# in the name in the CR2/PP2, you must include it here.
-lever:1 is the part we use here.
The Controlling Action is the name of the joint rotation(or other action) that influences the morph.
This is found under the body part's action information in the CR2/PP2.
-zrot is our action in this tutorial.
Note: Poser will often use GetStringRes(#, #) values to represent the more common body part names and joint action names. This is part of its muli-language capabilities, and normally unimportant, but if Poser has used a GetStringRes as the name, you must use it as well.
(For more information on GetStringRes, check out 3DMenagerie and look under Goodies-Tutorials.
deltaAddDelta InfluenceValue tells Poser how much of this action gets dialed in relation to the Controlling Action's dial.
Determining this value will require either a head for math, or some trial and error. Too high and the morph is fully dialed with just a minor twitch of a joint.
-The value we will use here is 0.025 which causes the morph to reach about 3/4 of its maximum when the lever is fully pulled.
These 5 lines go into a particular location within the morphs data in the CR2/PP2.
In this case, the balloon body part of our Balloon figure.
Search the CR2 for Deflate to find the morph entry.
Directly after this line is where we add our JCM.
So now it looks something like this.
Save the CR2 with these changes and go into Poser.
Load the Balloon figure and move the lever.
Even with "Full Tracking" on, poser won't always update changes to a part until it becomes the focus, or any of the numerous conditions that cause it to refresh the entire preview occur.
It is aware that the balloon has morphed though.
If you move the lever, and then move your mouse over the balloon without clicking anything, you will notice that the Outline of the balloon has been morphed.
A good way to see things work is this.
Start with the lever in the 0 position(full right).
Go to Window- > Animation Palette to get the animation controlls.
Click on frame 15 in the animation palette and move the lever all the way to the left(40).
Click on frame 30 and move the lever back to 0 position again.
Now with full tracking turned on, play the animation. You will see the lever rocking back and forth and the balloon inflating and deflating as a responce to the lever.
As a minor challenge, try this.
Load a ball from the Props library, and save it back as BounceBall.
See if you can edit BounceBall.PP2 to bounce up and down in responce to the Balloon figure's lever.
As a separate object/figure, it most likely won't be updated in the display until you select it, so try using the Animation Palette again.
For a more difficult practice, load and re-save(with a new name) a Cylinder prop.
Create a JCM for it in responce to the turning of a figure's hand (as if turning a knob).
Now save a light and add JCM to it in responce to the rotation of the cylinder.


A series of experiments dealing with the discovery of efficient classification procedures from large numbers of examples is described, with a case study from the chess end game king-rook versus king-knight. After an outline of the inductive inference machinery used, the paper reports on trials leading to correct and very fast attribute-based rules for the relations lost 2-ply and lost 3-ply. On another tack, a model of the performance of an idealized induction system is developed and its somewhat surprising predictions compared with observed results. The paper ends with a description of preliminary work on the automatic specification of relevant attributes.


text:
Q: Vazamento de memória no return Estou lendo um livro e me deparei com esse código:
class SimpleCat
{
    public:
    SimpleCat (int age, int weight);
    ~SimpleCat() {}
    int GetAge() { return itsAge; }
    int GetWeight() { return itsWeight; }

    private:
    int itsAge;
    int itsWeight;
};

SimpleCat::SimpleCat(int age, int weight):
itsAge(age), itsWeight(weight) {}

SimpleCat & TheFunction();

int main()
{
    SimpleCat & rCat = TheFunction();
    int age = rCat.GetAge();
    cout << "rCat is " << age << " years old!\n";
    cout << "&rCat: " << &rCat << endl;
    // How do you get rid of that memory?
    SimpleCat * pCat = &rCat;
    delete pCat;
    // Uh oh, rCat now refers to ??
    return 0;
}

SimpleCat &TheFunction()
{
    SimpleCat * pFrisky = new SimpleCat(5,9);
    cout << "pFrisky: " << pFrisky << endl;
    return *pFrisky;
}

A minha dúvida é:
O livro diz que há um vazamento de memória no retun da chamada de SimpleCat & rCat = TheFunction() devido ao alocamento de memória no escopo. Queria saber com resolver isso.

A: A função TheFunction faz o seguinte:
SimpleCat * pFrisky = new SimpleCat(5,9);

Essa linha aloca dinamicamente uma instância da classe SimpleCat, aponta o seu endereço de memória na variável (ponteiro) pFrisky e retorna esse endereço de memória como uma referência.
Já fora na chamada de main, a função TheFunction foi chamada assim:
SimpleCat & rCat = TheFunction();

De forma que aquela instância criada dinamicamente agora está sendo referenciada em um outro endereço, definido de forma não-dinâmica na variável rCat (que, note, não é um ponteiro).
Ambas as chamadas abaixo imprimem o endereço de memória onde o objeto se encontra:

*

*cout << "pFrisky: " << pFrisky << endl (na função TheFunction)

*cout << "&rCat: " << &rCat << endl; (na função main)

Eu não executei para ter certeza, mas você provavelmente perceberá que são endereços diferentes (porque a segunda variável, rCat, não foi alocada dinamicamente.

Edit: Eu executei no Ideone pra ter
  certeza, e não necessariamente os endereços impressos serão
  diferentes. Ainda assim, os objetos são alocados em locais distintos
  (leia sobre a diferença entre o heap e o stack aqui mesmo), e por
  isso o vazamento.

Logo, quando você tenta deletar aquela área alocada dinamicamente fazendo:
SimpleCat * pCat = &rCat;
delete pCat;

Na verdade vc tá fazendo uma bela de uma cag... digo, bobagem. :)
Como resolver? Se você aloca dinamicamente, retorne um ponteiro mesmo:
SimpleCat *TheFunction()
{
    SimpleCat * pFrisky = new SimpleCat(5,9);
    cout << "pFrisky: " << pFrisky << endl;
    return pFrisky;
}

Aí, no main, você faz:
SimpleCat * rCat = TheFunction();
. . .
delete rCat;


text:
import ast
import functools
import os
import pickle
import uuid

import qtutil
from PyQt4.QtCore import *
from PyQt4.QtGui import *

from . import constants
from . import file_io
from .custom_qt_items import CheckableComboBox, PlayerDialog
from .file_io import load_reference_frame

def save_project(video_path, project, frames, manip, file_type):
    name_before, ext = os.path.splitext(os.path.basename(video_path))
    file_before = [files for files in project.files if files['name'] == name_before]
    assert(len(file_before) == 1)
    file_before = file_before[0]
    # check if one with same name already exists and don't overwrite if it does
    name_after = file_io.get_name_after_no_overwrite(name_before, manip, project)

    path = str(os.path.normpath(os.path.join(project.path, name_after) + '.npy'))
    if frames is not None:
        if os.path.isfile(path):
            progress = QProgressDialog('Deleting ' + path, 'Abort', 0, 100)
            progress.setAutoClose(True)
            progress.setMinimumDuration(0)
            def callback_del(x):
                progress.setValue(x * 100)
                QApplication.processEvents()
            callback_del(0)
            os.remove(path)
            callback_del(1)
        progress = QProgressDialog('Saving ' + path + ' to file. This could take a few minutes.', 'Abort', 0, 100)
        progress.setAutoClose(True)
        progress.setMinimumDuration(0)
        def callback_save(x):
            progress.setValue(x * 100)
            QApplication.processEvents()
        callback_save(0)
        file_io.save_file(path, frames)
        callback_save(1)
    if not file_before['manipulations'] == []:
        project.files.append({
            'path': os.path.normpath(path),
            'type': file_type,
            'source_video': video_path,
            'manipulations': str(ast.literal_eval(file_before['manipulations']) + [manip]),
            'name': name_after
        })
    else:
        project.files.append({
            'path': os.path.normpath(path),
            'type': file_type,
            'source_video': video_path,
            'manipulations': str([manip]),
            'name': name_after
        })
    file_after_test = [files for files in project.files if files['name'] == name_after]
    assert (len(file_after_test) == 1)
    project.save()
    return path

def change_origin(project, video_path, origin):
    file = [files for files in project.files if os.path.normpath(files['path']) == os.path.normpath(video_path)]
    assert(len(file) == 1)
    file = file[0]
    index_of_file = project.files.index(file)
    project.files[index_of_file]['origin'] = str(origin)
    project.save()

# Always ensure all reference_frames come first in the list
# def refresh_all_list(project, video_list, indices, last_manips_to_display=['All']):
#     video_list.model().clear()
#     for f in project.files:
#         item = QStandardItem(f['name'])
#         item.setDropEnabled(False)
#         if f['type'] != 'ref_frame':
#             continue
#         video_list.model().appendRow(item)
#     for f in project.files:
#         item = QStandardItem(f['name'])
#         item.setDropEnabled(False)
#         if f['type'] != 'video':
#             continue
#         if 'All' in last_manips_to_display:
#             video_list.model().appendRow(item)
#         elif f['manipulations'] != []:
#             if ast.literal_eval(f['manipulations'])[-1] in last_manips_to_display:
#                 video_list.model().appendRow(item)
#
#     if len(indices) > 1:
#         theQIndexObjects = [video_list.model().createIndex(rowIndex, 0) for rowIndex in
#                             indices]
#         for Qindex in theQIndexObjects:
#             video_list.selectionModel().select(Qindex, QItemSelectionModel.Select)
#     else:
#         video_list.setCurrentIndex(video_list.model().index(indices[0], 0))

def refresh_list(project, ui_list, indices, types=None, last_manips_to_display=None):
    if types:
        ui_list.model().clear()
        for typ in types:
            for f in project.files:
                item = QStandardItem(f['name'])
                item.setDropEnabled(False)
                if f['type'] != typ:
                    continue
                if not last_manips_to_display or 'All' in last_manips_to_display:
                    ui_list.model().appendRow(QStandardItem(item))
                elif f['manipulations'] != []:
                    if ast.literal_eval(f['manipulations'])[-1] in last_manips_to_display:
                        ui_list.model().appendRow(item)

    if len(indices) == 0:
        return
    if len(indices) > 1:
        ui_list.setCurrentIndex(ui_list.model().index(indices[0], 0))
        theQIndexObjects = [ui_list.model().createIndex(rowIndex, 0) for rowIndex in
                            indices]
        for Qindex in theQIndexObjects:
            ui_list.selectionModel().select(Qindex, QItemSelectionModel.Select)
    elif len(indices) == 1:
        ui_list.setCurrentIndex(ui_list.model().index(indices[0], 0))

def refresh_video_list_via_combo_box(widget, list_display_type, trigger_item=None):
    if trigger_item != 0:
        widget.toolbutton.model().item(0, 0).setCheckState(Qt.Unchecked)

    last_manips_to_display = []
    for i in range(widget.toolbutton.count()):
        if widget.toolbutton.model().item(i, 0).checkState() != 0:
            last_manips_to_display = last_manips_to_display + [widget.toolbutton.itemText(i)]
    refresh_list(widget.project, widget.video_list, [0], list_display_type, last_manips_to_display)

def get_project_file_from_key_item(project, key, item):
    file = [files for files in project.files if os.path.normpath(files[key]) == os.path.normpath(item)]
    if not file:
        return
    assert (len(file) == 1)
    return file[0]

def add_combo_dropdown(widget, items):
    widget.ComboBox = CheckableComboBox()
    widget.ComboBox.addItem('All')
    item = widget.ComboBox.model().item(0, 0)
    item.setCheckState(Qt.Checked)
    for i, text in enumerate(items):
        widget.ComboBox.addItem(text)
        item = widget.ComboBox.model().item(i+1, 0)
        item.setCheckState(Qt.Unchecked)
    return widget.ComboBox

def flatten(foo):
    for x in foo:
        if hasattr(x, '__iter__') and not isinstance(x, str):
            for y in flatten(x):
                yield y
        else:
            yield x

#todo: fix toolbutton...
def get_list_of_project_manips(project):
    vid_files = [f for f in project.files if f['type'] in constants.TOOLBUTTON_TYPES]
    list_of_manips = [x['manipulations'] for x in vid_files if x['manipulations'] != []]
    list_of_manips = [ast.literal_eval(l) for l in list_of_manips]
    list_of_manips = list(flatten(list_of_manips))
    return list(set(list_of_manips))

def selected_video_changed_multi(widget, selected, deselected):
    if not widget.video_list.selectedIndexes() or not widget.video_list.currentIndex().data(Qt.DisplayRole):
        return
    # for index in deselected.indexes():
    #     vidpath = str(os.path.join(widget.project.path,
    #                                index.data(Qt.DisplayRole))
    #                   + '.npy')
    #     widget.selected_videos = [x for x in widget.selected_videos if x != vidpath]
    widget.selected_videos = []
    for index in widget.video_list.selectedIndexes():
        vidpath = str(os.path.normpath(os.path.join(widget.project.path, index.data(Qt.DisplayRole)) + '.npy'))
        if vidpath not in widget.selected_videos and vidpath != 'None':
            widget.selected_videos = widget.selected_videos + [vidpath]
            widget.shown_video_path = str(os.path.normpath(os.path.join(widget.project.path,
                                                       widget.video_list.currentIndex().data(Qt.DisplayRole))
                                    + '.npy'))
    frame = load_reference_frame(widget.shown_video_path)
    widget.view.show(frame)

def video_triggered(widget, index, scaling=False):
    filename = str(os.path.join(widget.project.path, index.data(Qt.DisplayRole)) + '.npy')
    dialog = PlayerDialog(widget.project, filename, widget, scaling)
    dialog.show()
    # widget.open_dialogs.append(dialog)

def update_plugin_params(widget, key, val):
    widget.params[key] = val
    widget.project.pipeline[widget.plugin_position] = widget.params
    widget.project.save()

def save_dock_window_to_project(widget, window_type, pickle_path):
    widget.project.files.append({
        'path': pickle_path,
        'type': window_type,
        'name': os.path.basename(pickle_path)
    })
    widget.project.save()

class WrongNumberOfArguments(TypeError):
    print()
    pass

# def setup_and_get_dock_window(widget, video_path_to_plots_dict, DockWindow, state=None):
#     # """One of state or area MUST not be None"""
#     # if not state and not area:
#     #     raise WrongNumberOfArguments()
#     # if not state and area:
#     #     state = area.saveState()
#     main_window = DockWindow(video_path_to_plots_dict, state=state, parent=widget)
#     main_window.resize(2000, 900)
#     main_window.show()
#     widget.open_dialogs.append(main_window)
#     main_window.saving_state[str].connect(functools.partial(save_dock_window_to_project, widget,
#                                                             widget.Labels.window_type))
#     return DockWindow

def save_dock_windows(widget, window_type):
    pass

    # if not widget.open_dialogs:
    #     qtutil.info('No plot windows are open. ')
    #     return
    #
    # continue_msg = "All Windows will be closed after saving, *including* ones you have not saved. \n" \
    #                "\n" \
    #                "Continue?"
    # reply = QMessageBox.question(widget, 'Save All',
    #                              continue_msg, QMessageBox.Yes, QMessageBox.No)
    # if reply == QMessageBox.No:
    #     return
    #
    # qtutil.info('There are ' + str(len(widget.open_dialogs)) + ' plot windows in memory. We will now choose a path to '
    #                                                            'save each one to. Simply don\'t save ones you have '
    #                                                            'purposefully closed. You now have '
    #                                                            'one last chance to save and recover '
    #                                                            'any windows you accidentally closed')
    # for (dialog, video_path_to_plots_dict) in widget.open_dialogs_data_dict:
    #     win_title = dialog.windowTitle()
    #     win_title = win_title[12:len(str(uuid.uuid4())) + 12]
    #     filters = {
    #         '.pkl': 'Python pickle file (*.pkl)'
    #     }
    #     default = win_title
    #     pickle_path = widget.filedialog(default, filters)
    #     if pickle_path:
    #         widget.project.files.append({
    #             'path': pickle_path,
    #             'type': window_type,
    #             'name': os.path.basename(pickle_path)
    #         })
    #         widget.project.save()
    #         # Now save the actual file
    #         # area = dialog.centralWidget()
    #         # state = area.saveState()
    #         try:
    #             with open(pickle_path, 'wb') as output:
    #                 pickle.dump(video_path_to_plots_dict, output, -1)
    #         except:
    #             qtutil.critical(pickle_path + " could not be saved. Ensure MBE has write access to this location and "
    #                                           "that another program isn't using this file.")
    # qtutil.info("All files have been saved")
    #
    # for dialog in widget.open_dialogs:
    #     dialog.close()
    # widget.open_dialogs = []

def load_dock_windows(widget, window_type, DockWindow):
    pass

    # paths = [p['path'] for p in widget.project.files if p['type'] == window_type]
    #
    # if not paths:
    #     qtutil.info("Your project has no windows. Make and save some!")
    #     return
    #
    # for pickle_path in paths:
    #     try:
    #         with open(pickle_path, 'rb') as input:
    #             [video_path_to_plots_dict, state] = pickle.load(input)
    #     except:
    #         del_msg = pickle_path + " could not be loaded. If this file exists, ensure MBE has read access to this " \
    #                                 "location and that another program isn't using this file " \
    #                                 "" \
    #                                 "\n \nOtherwise, would you like to detatch this file from your project? "
    #         reply = QMessageBox.question(widget, 'File Load Error',
    #                                      del_msg, QMessageBox.Yes, QMessageBox.No)
    #         if reply == QMessageBox.Yes:
    #             norm_path = os.path.normpath(pickle_path)
    #             widget.project.files[:] = [f for f in widget.project.files if os.path.normpath(f['path']) != norm_path]
    #             widget.project.save()
    #             load_msg = pickle_path + " detatched from your project." \
    #                                      "" \
    #                                      "\n \n Would you like to continue loading the " \
    #                                      "remaining project windows?"
    #             reply = QMessageBox.question(widget, 'Continue?',
    #                                          load_msg, QMessageBox.Yes, QMessageBox.No)
    #         if reply == QMessageBox.No:
    #             return
    #         continue
    #     DockWindow = setup_and_get_dock_window(widget, video_path_to_plots_dict, DockWindow, state=state)
    #     DockWindow.setWindowTitle(os.path.basename(pickle_path))
        # main_window.resize(2000, 900)
        # widget.plot_to_docks(video_path_to_plots_dict, main_window.area)
        # main_window.show()
        # widget.open_dialogs.append(main_window)
        # widget.open_dialogs_data_dict.append((main_window, video_path_to_plots_dict))


text:
Chris Janson Net Worth
How much is Chris Janson Worth?
in Richest Celebrities › Singers
Chris Janson net worth:
Chris Janson net worth: Chris Janson is an American country music singer and songwriter who has a net worth of $6 million. Chris Janson was born in Perryville, Missouri in April 1986. He released his debut studio album Buy Me a Boat on Warner Bros. Records in 2015 and the album reached #4 on the US Country chart and #18 on the Billboard 200 chart. Janson released the album Everybody in 2017 which reached #7 on the US Country chart and #53 on the Billboard 200 chart. His single "Buy Me a Boat" reached #2 on the US Country and Canadian Country charts and #3 on the US Country Airplay chart as well as being certified 2x Platinum. His single "Fix a Drink" reached #2 on the US Country Airplay chart and #4 on the Canadian Country chart. As a songwriter he has co-written singles for artists including Tim McGraw, Randy Houser, and LoCash.
Net Worth: $6 Million
Last Updated: 2019
More Singers
Lalisa Manoban Net Worth
Jisoo Kim Net Worth
Halle Bailey Net Worth
Beyonce Net Worth
Rosé (Roseanne Park) Net Worth
Andra Day Net Worth
Beyonce Knowles Net Worth
Britney Spears Net Worth
Justin Bieber Net Worth
Michael Martin Murphey Net Worth


text:
Q: Tkinter's grid() geometry manager ignoring ipadx argument While extending the code based on this awesome Bryan Oakley's answer (btw his code works great, it's just me the one that can't make the padding work) I've found that the argument ipadx passed to .grid() is being ignored on the line:
e.grid(row=row, column=column, sticky=tk.N+tk.E+tk.S+tk.W, ipadx=5, ipady=3)

from the following script:
import tkinter as tk
from tkinter import ttk

class SimpleTableInput(tk.Frame):
    def __init__(self, parent, rows, columns):
        tk.Frame.__init__(self, parent)

        self._entry = {}
        self.rows = rows
        self.columns = columns

        # create the table of widgets
        for row in range(self.rows):
            for column in range(self.columns):
                index = (row, column)
                e = ttk.Entry(self, justify='right')
                e.grid(row=row, column=column, sticky=tk.N+tk.E+tk.S+tk.W, ipadx=5, ipady=3)
                #e.grid(row=row, column=column, sticky="nsew", ipadx=5, ipady=3)
                self._entry[index] = e
        # adjust column weights so they all expand equally
        for column in range(self.columns):
            self.grid_columnconfigure(column, weight=1)
        # designate a final, empty row to fill up any extra space
        self.grid_rowconfigure(rows, weight=1)

    def get(self):
        '''Return a list of lists, containing the data in the table'''
        result = []
        for row in range(self.rows):
            current_row = []
            for column in range(self.columns):
                index = (row, column)
                #current_row.append(self._entry[index].get())
                current_row.append(self._entry[index].get())
            result.append(current_row)
        return result

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        self.table = SimpleTableInput(self, 3, 4)
        self.submit = ttk.Button(self, text="Submit", command=self.on_submit)
        self.table.pack(side="top", fill="both", expand=True)
        self.submit.pack(side="bottom")

    def on_submit(self):
        print(self.table.get())

root = tk.Tk()
Example(root).pack(side="top", fill="both", expand=True)
root.mainloop()

So I end up getting no internal padding on the entry widgets, they align the text to the right but leave no space before the ttk.Entry border as can be seen on this image: ttk.Entry widgets with no internal x padding
One thing that amazes me is that ipady works ok.
Things I've tried:

*

*tk.Entry instead of ttk.Entry

*different values for ipadx (makes no difference at all)

*read the docs to find if another argument could be interfering with ipadx, found nothing (however I regard this as the most probable cause)

If it's of any help, I'm using Tkinter version 8.6 and Python 3.6.2 on windows 7

A: The Entry widget does not take into account the ipadx, but tk.Label does, so it is widget dependent.
However, there is another way to add padding inside a ttk.Entry by using a style, with style.configure('padded.TEntry', padding=[<left>, <top>, <right>, <bottom>]):
import tkinter as tk
from tkinter import ttk

root = tk.Tk()
style = ttk.Style(root)
style.configure('padded.TEntry', padding=[5, 3, 5, 3])

e = ttk.Entry(root, justify='right', style='padded.TEntry')
e.grid()
root.mainloop()


Barcelona is amazing in almost every sense. The Catalan capital is well known for being a city with lots of restaurants, bars, cafés, and other food and drink places where you can try dishes of local and international cuisine. And while most people probably wouldn't think of Barcelona as a tea capital, the city offers lots of wonderful places for tea lovers. If you are one of them and are planning on coming here, maybe staying at Aspasios Boutique Apartments, don't miss our tips about best teahouses in Barcelona.
As a matter of fact, most people in Spain rather go for coffee when choosing a hot drink. However, during the last twenty years or so the number of tea lovers has increased substantially. On top of that, cities like Barcelona have many foreign residents, some of which come from countries with a long tradition of tea drinking. Thus, it is not surprising that the city features several tea shops and teahouses. The Teashop of East West Company is probably the best place if you are looking loose leaf tea to brew at your place or your holiday home. You will find its shops all over Barcelona, for example in the Carrer Boters, 12, close to the Cathedral.
This lovely teahouse is located directly in Barcelona's old town, in the Carrer Sant Domènec del Call, 12. Its name uses the Czech word for tea, while the place itself refers to the longstanding tradition of tea drinking in Prague. The atmosphere in Čaj Chai is very pleasant and cozy. The range of teas you can have here is one of the biggest Barcelona has to offer. Apart from well-known tea standards Čaj Chai also serves different variations from China, Japan, Vietnam and other countries with an elaborate tea culture. Thus, the place offers a great opportunity to relax and have a delicious tea – either traditionally brewed or in one of amazing exotic varieties.
La Fíbula is located in one of the up-and-coming areas of Barcelona, to be exact in Carrer Blai, 46. Lately, this street that lies in the Poble Sec neighborhood has become one of Barcelona's most popular places for going out at night. Located is this bustling and fun area, La Fíbula offers both food and drinks to enjoy and relax. Its Andalusian-style interior is very welcoming. The teas you can have here are rather classic, but very well elaborated. At the same time La Fíbula offers delicious Arabic sweets made with nuts and honey which fit perfectly any teatime.
This one is another teahouse located in Barcelona's Barrio Gótico. La Tetería Barcelona's exact address is Baixada de Viladecols, 2. The place is really great to have a short break during the day, but also wonderful to meet with a friend to talk over tea. The list of teas you can have here is really long and features different varieties ranging from Tibet to India to Morocco. On top of that, La Tetería Barcelona has alos an extra space where customers can enjoy a shisha with aromatized tobacco while sipping a delicious tea.