Karan Johar on #MeToo: Sending pics of your private parts isn't cool!
Home Bolly Holly Karan Johar on #MeToo: Sending pics of your private parts isn't cool!
Karan Johar on #MeToo: Sending pics of your private parts isn't cool!
Read Shocking Things! Karan Johar on Me Too: 'Sending Pictures Of Your Private Parts Is Not Cool', He Finally Breaks His Silence On #MeToo!
The MeToo movement started to gain a lot of momentum in India and many big names in the industry have been accused of assault. Due to this many women came out with their stories and many Bollywood celebs also opened up about the movement giving out support to the victims.
In Bollywood, Sajid Khan, Vikas Bahl Subhash Ghai, Rajat Kapoor and Nana Patekar had been accused of sexual misconduct but many bigwigs like Amitabh Bachchan, Salman Khan and Karan Johar chose to maintain a stoic silence on the subject. Now filmmaker Karan Johar who had remained silent on the issue for a while broke his silence recently.
During his radio show Calling Karan, the filmmaker said, talked in detail about the importance of content and extended his support for the movement.
It's important for people to understand both, the verbal as well as the non-verbal communication they get from someone they're with. These are the basics; basics that we often tend to forget. When you come close to someone, when you're about to get intimate, how can you not ask for consent?" said KJo.
The #MeToo movement was triggered after Tanushree Dutta accused Nana Patekar of sexually harassing her on the sets of 2008 film Horn Ok Pleassss. This encouraged women from various fields to come forward with their harrowing experiences, and slowly prominent people were named and shamed.
8 Bollywood Singers Who Participated In Singing Reality Shows.


But the real question is why didn't the Dyke Marchers make the homophobic pastor feel more included and welcomed?
For someone who has so much hard-wired contempt for the city's annual Pride Parade, Toronto Sun columnist Sue-Ann Levy certainly spent a lot of time thinking about it over the weekend, knocking out Hot Take after Hot Take, changing tactics every few hours, even if that meant taking positions that cancelled out the arguments she put forth in previous columns, hoping one of them would stick.
This Sunday's Pride parade will be the first in 22 years in which Brian Provini will not be marching.
The 70-year-old gay man told me Friday he plans not only to boycott the Pride parade but he and his partner won't even be walking Church St., which is closed to car traffic through the weekend.
He says many of his friends are leaving the city for the weekend or avoiding the Gay Village or, like him, attending a small celebratory BBQ on Sunday.
Provini says he's also heard from some of his American friends that they have decided to bypass Toronto and attend Pride festivities in Montreal this year. This has become more of reality (sic), he says, since they heard Toronto police have been banned from the parade and instead, a contingent of uniformed Toronto officers will be joining this Sunday's New York City Pride parade.
The retired community college professor is heartsick with what has happened to Pride.
"I'm very disappointed," he said. "I've been calling this a Black Lives Matter (BLM) Toronto Pride event…I don't consider this Pride.
After spending the first hour of Sunday's Pride parade watching Prime Minister Justin Trudeau wave in his phony mannequin-like style to the crowds, I'd had enough.
PM Selfie had already said something suitably vacuous about "celebrating inclusivity" and "respect for each other," clearly not caring how silly he sounded given that banning all Toronto police and all forces around the province from marching — courtesy of Black Lives Matter-Toronto (BLM-Toronto) — isn't what I'd call inclusive or respectful.
As a gay woman I certainly didn't feel "vulnerable" or "threatened" standing beside the constable, who deals with domestic violence cases out of 42 Division.
For heaven's sake, I found the security detail and the media relations woman working for PM Selfie far more intimidating.
And what has BLM done? Slapping everyone who kowtowed to them in the face, they've opted not to march this year.
Efforts to reach Nuamah and her PR flak Ryan Connelly were unsuccessful Saturday. Perhaps they've run for cover.
But BLM is not listed as participants on their website, not as far as the main parade is concerned. Pride does not list the participants in the #ResistDykeMarch, so perhaps that's where they'll spew their hate.
All I can say is game, set, match to BLM.
You would think Sue-Ann would at least be impressed that BLM stiffed Pride for the entry fee, as nothing makes her angrier than Pride receiving any kind of money (especially public money) but again, some people aren't happy unless they're not happy.
Photo by Devin Jones for Torontoist.
Inclusion didn't mean Pastor Scott Park at the Dyke March Saturday felt included.
But holding a sign up saying "God Loves You, Repent and come to Jesus" draws attention.
Standing on the south-east corner of Carlton and Church Sts., it created such a scene that Toronto Police had settle things down.
"They (a couple of women) ripped my sign and tried to grab my neck," said Park.
Even with a torn sign that left a lot of the message unseen, he remained as police officers on bikes surrounded him and protected his right to free speech.
Most of the rest of the thousands of Dyke March participants just ignored him and his sign, but some challenged him.
"So, are you saying because I'm lesbian, I need to repent my sins?" asked one woman.
"No, I am a sinner as well, and Jesus is there for us," he said.
"So, would you go to another event and hold that sign?" she said.
"Yes," said Scott, adding however, "Try to assault me" before (sic).


text:
Apus Group
APUS Group sets up Rs 300-cr fund
The fund will focus on mobile internet innovation projects in the Indian market and will be led by APUS Group along with Northern Light Venture Capital, Redpoint Ventures, Chengwei Ventures LLC, SIG Global and Qiming Venture Partners.December 05, 2015, 18:22 IST
This is the firm's fourth round of funding. It previously raised $13 million (about Rs 77 crore) from Tiger and Accel. Girish Mathrubootham, cofounder of Freshdesk, said Google Capital's investment is a validation of the company's business.
MUMBAI: APUS Group, a China-headquartered global mobile internet company, has set up APUS Fund in India, with an initial corpus of Rs 300 crore.
The fund will focus on mobile internet innovation projects in the Indian market and will be led by APUS Group along with Northern Light Venture Capital, Redpoint Ventures, Chengwei Ventures LLC, SIG Global and Qiming Venture Partners.
"Potential of India as an emerging market is great and we would like to extend our assistance to the early stage start-ups," said Tao Li, the founder and chief executive of APUS Group.
"The foundation of APUS Fund will accelerate the development of APUS Group and strengthen our relationship with the country," he said, adding that the company hopes to build a positive ecosystem for mobile Internet industry in India through investments in start-ups.
APUS plans to back start-ups with financial support, user resource, traffic support, marketing promotion and brand building along with financial aid.
It will also assist in enhancing market value, seizing development opportunities, and develop localised products and services.
In terms of user numbers, by the end of 2014, there were 300 million Internet users and 242 million of them were active ones, according to industry estimates.
Among them, 160 million users surfed Internet through smartphones, making the Internet penetration 23.4 per cent.
In the next 2 to 3 years, there will be another 100 million new Internet users and by 2017, the overall number will exceed 500 million, with an Internet penetration of nearly 40 per cent, according to research from APUS.
At the same time in China, Internet users will be 638 million and Internet penetration will be 48.4 per cent.
APUS has reportedly invested in IamWire which focuses on venture capital investment and established strategic partnership with many incubators in India.
These incubators would also be able to access the corpus of APUS Fund to finance potential Indian projects.
APUS has netted more than 30 million users in India and set up local team for business promotion, strategic cooperation and research.
In addition, APUS Fund can also provide support for Indian start-up companies who wish to enter Chinese market through its APUS Global Mobile Internet Incubator in Beijing.
Tags : Internet, venture capital, investments, capital investment, Apus Group
Most Read in Internet
India's about to hand people data Americans can only dream of
Alphabet second company with India-origin CEO in trillion dollar club
Inside the billion-dollar battle over .org
Microsoft contractors in China listened to Skype chats too
Several UP cities face internet shutdown
CSC e-Governance India restarts Aadhaar registration work
Reliance Jio launches pan-India VoWiFi service
Mobile Internet services of all providers except BSNL to remain suspended in Lucknow on Dec 27

redpajama_set_name: RedPajamaCommonCrawl


I loved second shooting Keith and Ellen's beautiful Catholic wedding at Xavier University. Their day was full of love and joy. Plus - Check out Ellen's dress. STUNNING.
Keith + Ellen had a beautiful catholic ceremony at Bellarmine Chapel on the grounds of Xavier University.


We wish you a warm welcome to new Petrans d.o.o. website.
We are a company with longterm experiance in international transprot. We strive to offer our clients a complete and quality logistic service.
We are one of the leading and most successful Slovenian carriers operating on the Western European market with emphasis on Great Britain, Ireland and Benelux. We can carry any type of general freight irrespective of the quantity.
You can rely on us! Fast and efficient goods delivery.
In less than 48h. Check us out now!
We transport freight throughout Western Europe and Great Britain, We can carry any type of general freight of normal dimensions irrespective of quantity.
We are Kögel representative for Slovenia.
We are Humbaur representative for Slovenia.
We are always ready to welcome new faces into our company.


We're taking you with us into our daydreams full of plush yarn and soft colors. These 13 free patterns will transport you into an oasis full of sweet dreams and lush living.
Worked corner to corner, this pillow is made with Bernat Alize Blanket-EZ and Bernat Blanket to create a dense loopy texture.
Knit in a single rectangular piece and cinched at either end with on-trend tassels, this bolster works up quickly in Bernat Blanket Extra.
Creating a luxe space is easy when you start from the center and work your way out! These round pillows made from Bernat Velvet will have you dreaming of your next project.
Texture abounds in this easy to crochet blanket. Stitched-up with Bernat Softee Chunky, eyelets, bobbles and fringe add new dimension to a favorite zig-zag pattern.
Make a statement with this modern texture-blocked headboard. Bernat Maker Big's gutsy gauge gives simple knit and purl stitches drama.
It's impossible not to feel extra cuddly curled up in this project! A simple one-piece Bernat blanket comes to life with some loopy Bernat Velvet crocheted dots.
This seed stitch blanket works up fast and easy with no needles or hook and Bernat Alize Blanket-EZ!
Made from Bernat Maker Home Dec yarn, this knit blanket features mock cable panels using a clever tuck stitch surrounded by classic Irish moss stitch.
This generously sized basket, crocheted with Bernat Maker Big, is a perfect storage solution for all your cozy blankets! Caron x Pantone fringe makes it easy to customize.
Worked in simple single crochet and chain 1 using Bernat Maker Big, this cushy rug makes getting out of bed in the morning a little easier.
Snuggle up with a good book and your new favorite floor pillow! Half-double crochet in the third loop, which showcases the textures of Bernat Mix Home.
Worked in one piece in the round using Bernat Blanket yarn, this fabulously textured pillow is a bold yet inviting accent to your room.
Made from a single braid of Caron x Pantone yarn, these crochet wall hangings will elevate a blank wall from boring to bold.
Update your space with these 13 free crochet and knit patterns.


text:
const findFractions = function (doc, n) {
  // five eighths
  let m = doc.match('#Fraction+')
  // remove 'two and five eights'
  m = m.filter(r => {
    return !r.lookBehind('#Value and$').found
  })
  // thirty seconds
  m = m.notIf('#Value seconds')

  if (typeof n === 'number') {
    m = m.eq(n)
  }
  return m
}
export default findFractions

redpajama_set_name: RedPajamaGithub


text:
Old illustration of White Eunuch in traditional dresses in 1749. By J.M. Vien, publ. T. Jefferys, London, 1757-1772
- Image ID: KH1HFB
Old Images / Alamy Stock Photo
Image ID: KH1HFB
18th, aged, ancient, antique, antiquity, art, artwork, century, clothes, clothing, costume, design, drawing, dress, elegance, elegant, engraved, engraving, etching, eunuch, fashion, fashioned, garment, graphic, habit, hat, headgear, heritage, historic, history, illustrated, illustration, image, old, painting, paper, past, pictorial, picture, print, retro, scarf, sepia, vintage, watercolor, wear, wearing, white eunuch
Scene from Eunuchus, The Eunuch, a comedy written by the Roman playwright Terence, Szene aus dem Schauspiel Eunuchus von Terenz, 1496, digital improved reproduction of a woodcut, published in the 19th century
Eunuch relief on the portal of Khorsabad, the Assyrian capital in the time of Sargon II of Assyria, Mesopotamia, Iraq, digital improved reproduction of an original print from the year 1881
The attack 1807 on the Seraglio and Palace in Constantinople by the Chief Black Eunuch named Nezir Ağa and his men, during which Selim III, the reform-minded Sultan of the Ottoman Empire from 1789 to 1807 was assassinated.
Habit of a white eunuch in 1749. Eunuque blanc (NYPL b14140320-1638020)
Origen Adamantius (184-254) Greek scholar and theologian born in Alexandria, Egypt who's works included 'Hexapla', a study of different translations of the Old Testament. Engraving by Michael Burghers (1647-1727).
Origen Adamantius (184-254) Greek scholar and theologian born in Alexandria, Egypt who's works included 'Hexapla', a study of different translations of the Old Testament. Engraving by Frère André Thévet (1516-1590). See description for more information.


The Golden Cuvée is a royal blend of Furmint, Yellow Muscat and Kövérszőlő and originates from a charming family wine estate in Tokaji of only 6 hectares, with just a thousand bottles of this special blend produced. The vineyard is in the process of officially registering as an organic farm. Neither yeast, nor enzymes are used during production and fermentation occurs in oak barrels.
20% Zeta, Kabar and Kövérszőlő.
The three components of the wine are fermented separately for six months and then blended before bottling. The Yellow Muscat gives the sweet perfume aroma and spicy flavours, Zeta, Kabar and Kövérszőlő are responsible for the high sugar content, while Fordítás balances the whole structure; giving body and acidity to the blend and ensuring a harmonious sugar-acid balance. In addition to the Kövérszőlő grape, the two grapes Zeta and Kabar are fermented in oak barrels spontaneously. The Fordítás is also separately in oak barrels, while the Yellow Muscat is fermented in a tank. The Fordítás is made of Furmint wine poured in the "noble eyes" and soaked for 36 hours.
Perfect on its own and a great match to fruity or just sweet desserts, blue cheese, or even spicy Indian meals.
The wine is a royal blend of varieties of sweet grapes from several vineyards and has a high sugar level, which is considered premium for a dessert wine in Hungary. We call it the golden cuvée both because of the colour and the delicious taste worthy of queens and kings, equivalent to a spoon of exclusive honey melting on your tongue.
Deliciously sweet, with prominent tones of honey and elderflower, and a lasting aftertaste.


barbies-1.1.1.0: Classes for working with types that can change clothes.
Inductively defined instance: Functor (Prod (f ': fs)).
Inductively defined instance: Functor (Prod ').
Inductively defined instance: Applicative (Prod (f ': fs)).
Inductively defined instance: Applicative (Prod ').
Inductively defined instance: Foldable (Prod (f ': fs)).
Inductively defined instance: Foldable (Prod ').
Inductively defined instance: Traversable (Prod (f ': fs)).
Inductively defined instance: Traversable (Prod ').
Inductively defined instance: Eq1 (Prod (f ': fs)).
Inductively defined instance: Eq1 (Prod ').
Inductively defined instance: Ord1 (Prod (f ': fs)).
Inductively defined instance: Ord1 (Prod ').
Inductively defined instance: Show1 (Prod (f ': fs)).
Inductively defined instance: Show1 (Prod ').
Inductively defined instance: Alternative (Prod (f ': fs)).
Inductively defined instance: Alternative (Prod ').
Inductively defined instance: Eq (Prod (f ': fs)).
Inductively defined instance: Eq (Prod ').
Inductively defined instance: Ord (Prod (f ': fs)).
Inductively defined instance: Ord (Prod ').
Inductively defined instance: Show (Prod (f ': fs)).
Inductively defined instance: Show (Prod ').
The unit of the product.
Lift a functor to a 1-tuple.
Prod '[f, g, h] a -> r is the type of the uncurried form of a function f a -> g a -> h a -> r. Curried moves from the former to the later. E.g.


In this article we'll show you how to configure wMobile Virtual File System (VFS) in order to access your GoldMine files.
Sugar 7.5 is here! The new release is available for both on-demand and on-site SugarCRM deployments.
We are excited to start a new series of blog posts, called "Sugar Tips". Our first installment is about duplicates and merging. View the presentation.
Our wMobile User Group focused on Email Retrieval Tips.
In wMobile Desktop it is possible to merge a document for single and multiple recipients, as well as upload a new linked document.
In our second installment of Sugar Tips, we will explain how to reveal the email address to be included for SugarCRM reports.
We've had a busy and productive year working on wMobile! Here are the highlights.


§ 237-4 Throwing or shooting of arrows, stones and other missiles.
§ 237-5 Sale and discharge of fireworks.
§ 237-6 Obstructing streets and sidewalks.
§ 237-7 Loud and unnecessary noise.
§ 237-8 Destruction of property.
§ 237-10 Open cisterns, wells or other dangerous excavations.
§ 237-11 Abandoned or unattended refrigerators.
§ 237-12 Violations and penalties.
Animals — See Ch. 112.
No person shall fire or discharge any firearm within 200 yards of any dwelling in the Town.
No firearm, whether rifle, shotgun, pistol or other type of firearm, shall be discharged from within the limits of any highway in the Town, and no firearm shall be discharged from any place so that the projectile or projectiles, whether bullets, slugs, pellets, BB's or otherwise, traverse or cross any portion of any public highway within the Town.
Enter any enclosed or cultivated land of another with intent to catch or kill any birds, animals or fish on such land or gather any products of the soil without the express or implied consent of the owner or occupant to engage in any of those activities.
Enter or remain on any land of another after having been notified by the owner or occupant not to enter or remain on such premises.
Hunt, shoot, fish or gather any product of the soil on the premises of another or enter such premises with intent to do any of the foregoing after having been notified by the owner or occupant not to do so.
A person has received notice from the owner or occupant within the meaning of this section if he has been notified personally, either orally or in writing, or if the land is posted. For land to be posted, a sign of at least 11 square inches must be placed in at least two conspicuous places for every 40 acres to be protected. The sign must carry an appropriate notice and the name of the person giving the notice followed by the word "owner" if the person giving the notice is the holder of legal title to the land and by the word "occupant" if the person giving the notice is not the holder of legal title but is a lawful occupant of the land. Proof that appropriate signs as herein provided were erected or in existence upon the premises to be protected within six months prior to the event complained of shall be prima facie proof that the premises to be protected was posted as herein provided.
Whoever erects on the land of another signs which are the same as or similar to those described in Subsection B without obtaining the express consent of the lawful occupant of or holder of legal title to such land may be subject to a forfeiture as provided in Subsection E.
Any authorized occupant of employer-provided housing shall have the right to decide who may enter, confer and visit with him in the housing area he occupies.
Any person who shall violate any provision of this section shall, upon proof and conviction thereof, forfeit not less than $50 nor more than $500, together with the costs of prosecution, and in default of the forfeiture and costs of prosecution or either of them such convicted person shall be committed to and confined within the county jail until such fine and costs of prosecution are paid, but not to exceed 60 days.
No person shall throw or shoot any object, arrow, stone, snowball or other missile or projectile, by hand or by any other means, at any person or at, in or into any building, street, sidewalk, alley, highway, park, playground or other public place within the Town.
Section 167.10, Wis. Stats., regulating the sale and use of fireworks, exclusive of any penalty imposed thereby, is adopted by reference and made a part of this section as though set forth in full.
Editor's Note: See also Ch. 165, Fire Prevention, § 165-2C(3).
No person shall stand, sit, loaf, loiter or engage in any sport or exercise on any public street, sidewalk, bridge or public ground within the Town in such manner as to prevent or obstruct the free passage of pedestrian or vehicular traffic thereon or to prevent or hinder free ingress or egress to or from any place of business or amusement, church, public hall or meeting place, except with the permission of the Town Board upon written application to the Board.
No person shall make or cause to be made any loud, disturbing or unnecessary sounds or noises such as may tend to annoy or disturb another in or about any public street, alley, park or any private residence.
No person shall willfully injure or intentionally deface, destroy or unlawfully remove, take or meddle with any property belonging to the Town or its departments or to any person without the consent of the owner or proper authority.
No person shall throw any glass, garbage, rubbish, waste, slop, dirty water or noxious liquid or other litter or unwholesome substance upon the streets, alleys, highways, public parks or other property of the Town or upon any private property not owned by him or upon the surface of any body of water within the Town.
No person shall have or permit on any premises owned or occupied by him any open cisterns, cesspools, wells, unused basements, excavations or other dangerous openings. All such places shall be filled, securely covered or fenced in such manner as to prevent injury to any person, and any cover shall be of a design, size and weight that the same cannot be removed by small children. Any violation of this section is a public nuisance and may be disposed of in accordance with Ch. 823, Wis. Stats.
No person shall leave or permit to remain outside of any dwelling, building or other structure, or within any unoccupied or abandoned building, dwelling or other structure under his control in a place accessible to children, any abandoned, unattended or discarded icebox, refrigerator or other container which has an airtight door or lid, snap lock or other locking device which may not be released from the inside without first removing such door or lid, snap lock or other locking device from such icebox, refrigerator or container, unless such container is displayed for sale on the premises of the owner or his agent and is securely locked or fastened.
Except as otherwise provided in this chapter, any person who shall violate any provision of this chapter shall be subject to a penalty as provided in Chapter 1, § 1-4 of this General Code.
In addition to any penalty imposed for violation of § 237-8 of this chapter, any person who shall cause physical damage to or destroy any public property shall be liable for costs of replacing or repairing such damaged or destroyed property. The parent of any unemancipated minor child who violates § 237-8 may also be held liable for the cost of replacing or repairing such damaged or destroyed property in accordance with § 895.035, Wis. Stats.


Kira Newman is a senior writer over at Tech Cocktail. She's been covering startups and entrepreneurs for a while now and even took a trip across the world learning about how they do things in different cities. After covering hundreds and hundreds of entrepreneurs she has some great insight.
Newman has noticed that in the "just do it" and do it now, lives of entrepreneurs, they don't take the time to "know thyself." Many entrepreneurs know how important it is to know their customers, but they often overlook their team and themselves.
We are combing the pages and pages of the SXSW panel picker for 2014 to find some of the more interesting startup discussions vying for a spot in the SXSW lineup. Newman's talk is definitely worth a vote.
During the two and a half hour workshop, Newman will go over ten important questions that every entrepreneur should ask themselves.
You can vote for Newman's talk here!


23192 Pizza Delivery - Order Domino's Now!
When you're craving a mouthwatering slice of cheesy, meaty goodness, we know you're not craving just any old pizza in 23192. You want a delicious pizza with a robust tomato sauce, a hearty blend of mozzarella and parmesan, expertly diced bits of pepperoni, and a golden-brown crust that's crunchy, crispy, and chewy—all at the same time. You want pizza, perfected. You want Domino's.
At Domino's in 23192, we make it quick and simple to get the fast, fresh pizza your hunger craves. Order your pizza online or over the phone, or stop by and place a carryout order at the Domino's nearest you.
Start off by picking from our menu of crusts. Choose a fluffy, hand-tossed crust that's dusted with garlic seasonings and buttery flavor, a pan crust featuring two huge layers of cheese, a crispy thin crust, or a gluten-free pizza crust! Then, choose your sauce and your favorite pizza toppings. Whether you're all about the veggies like green peppers, spinach, and onions, or you prefer the sweet and savory combination of ham and pineapple, you can count on your local Domino's to deliver.
Order from your 23192 Domino's and you'll see—we're pretty serious folks when it comes to pizza delivery. In fact, we're so serious about it that we'll make you a promise. We guarantee that your pizza will arrive toasty hot and fresh at your doorstep, straight from our oven! Want to see how fast we can deliver? After you place your order, use our patented TrackerⓇ to stay up to date on the status of your pizza order. Follow it from the moment the sauce is added to the second it leaves our door for delivery... and do your best not to drool on your computer's keyboard in the meantime.
Hungry for More Than Pizza Takeout in 23192?
We may be fast when it comes to delivering pizzas, but we're super fast when it comes to pizza takeout in 23192. You can order from our pizza menu or step outside the pizza box and try something different (but equally delicious). Satisfy everyone's cravings with a flavorsome pasta, order of breadsticks, a crisp garden salad, boneless chicken wings, and even dangerously decadent desserts. Add a cookie brownie, lava cake, or warm bunch of Cinna StixⓇ to your order and satisfy your sweet tooth.
We have over 12,000 stores in more than 80 countries, which means we know quality and customer service. It's our mission to be the best pizza delivery company not only in Montpelier, but in the world, and everything we do reflects this commitment. You'll see it in our courteous delivery drivers and money-saving pizza coupons, and taste it in every bite of pizza you eat. Call your local Domino's restaurant in 23192, use our free smartphone app, or place your order online for fast pizza delivery and carryout today! We may have been around since 1960, but we aren't just any old 23192 pizza restaurant. We're your number one pizza place in 23192!


text:
Home » Gambling Industry » COVID-19 Quickly Becomes Dictionary Entry, Favorite to be Merriam-Webster Word of 2020
COVID-19 Quickly Becomes Dictionary Entry, Favorite to be Merriam-Webster Word of 2020
By John Reger on April 10, 2020 3 min read
COVID-19 has affected everyone's daily life, and people are trying to learn anything they can about the disease, which is a big reason it's the top pick to be chosen as the Merriam-Webster Word of 2020. COVID-19, which is an abbreviated word from coronavirus disease 2019, has also received unprecedented treatment from the US's oldest dictionary.
The word COVID-19 was added to Merriam-Webster's dictionary just a month after it was introduced, and is now the favorite at one internet betting site to be the dictionary company's Word of 2020. (Image: Merriam-Webster)
That's a big reason it's the clear favorite to be chosen Word of 2020 at BetOnline. The internet sportsbook put up the proposition bet this week, listing 39 possibilities.
In order for a word to be chosen as Merriam-Webster's Word of 2020, it must be ranked first in two catagories. One, it must have been the most looked-up word at Merriam-Webster.com in the past year. Second, it must have seen a significant increase in lookups over the previous year.
Odds for Merriam-Webster Word of 2020
COVID-19 -155
Coronavirus +200
Social Distancing +200
Covidiot +400
Self-Quarantine +400
Pandemic +500
Work From Home +700
Isolation +900
Zoom +900
Epidemiologist +1000
Recession +1000
Disease +1200
Outbreak +1200
Amazon.com +1400
Respiratory +1400
Source: BetOnline
COVID-19 would certainly seem to fit both categories. The World Health Organization first used the word on Feb. 11. Merriam-Webster added it to the dictionary on March 16.
COVID-19 Gets Unprecedented Merriam-Webster Treatment
Putting any word in the dictionary is usually an arduous process. Merriam-Webster dictates that to qualify for admission to its lexicon, words must garner broad and long-term use. That process can take years.
Before COVID-19 gained entry, the quickest word admitted was AIDS in 1984, and that was a two-year process.
Merriam-Webster's publisher and chief digital officer Lisa Schneider told Slate.com that COVID-19 is a special case.
"It seemed clear that our responsibility was to provide the answers people are looking for without delay," Schneider said.
In addition to COVID-19, Merriam-Webster also added related words. Coronavirus, social distancing, and self-quarantine are all now recognized entries. The company's website issued a statement on their inclusion.
"Because the COVID-19 crisis has developed at such a rapid pace and some of the words and ideas associated with the crisis are themselves new, we have made an unscheduled update for words connected with the disease and responses to it," the site said.
Words Related to Disease Researched
COVID-19 isn't the only word connected to the global pandemic that could become Merriam-Webster's Word of 2020. The next two choices on BetOnline's prop bet are coronavirus and social distancing.
Coronavirus has been used in news stories just as much as COVID-19. All segments of everyday life have been affected by the disease, including the sports world, which has seen most professional sports leagues cancel events.
Ronald Waldman, a professor of global health at George Washington University who has also worked for the Centers for Disease Control and the World Health Organization, told ESPN social distancing might be something that is practiced long after the curve flattens on the disease.
"To think that things are going to get back to normal soon, it may be a mistake to think that things are ever going to get back to normal," Waldman said.
Fourteen of the top 15 choices for BetOnline's prop bet are all directly related to the disease. Johan Ugander, a Stanford professor of management science, told Wired.com that people are educating themselves about COVID-19, but still might not know anyone who has been affected.
"It's reasonable to say that the grief will be unevenly distributed in terms of age, geography, profession, wealth, and other relevant factors," Ugander said. "The percentage could get quite high while significant portions of the population still don't know anyone directly."
Meanwhile, the numbers of those infected by — and deaths related to — COVID-19 continue to climb. Worldometers.info, a statistical data site run by an international team of developers, researchers, and volunteers, reported that as of Friday, 1.6 million cases of coronavirus have occurred worldwide, with the death toll at 100,090.
Sadly, those numbers are only likely to climb for the foreseeable future.
January 13, 2021 Basketball
Buzz City Win Streak, Gordon Hayward Leads Charlotte Hornets to 4-0 Uptick
January 12, 2021 Gambling Industry
Online Sports Gambling in Michigan Set to Go Live This Week
By Andrew Pridgen
January 12, 2021 Business and Commerce
Renowned Casino Mogul Sheldon Adelson Died Within Days of Leave
By Amy Calistri


text:
Q: Механизм взаимодействия EJB сервера и HTML/JS клиента При разработке Java-клиента для EJB сервера, где работает наша веб-служба, не возникает трудностей с низкоуровневыми операциями механизма передачи-приема данных.
А если клиент пишем на HTML с JavaScript, там можно делать запросы нашей веб-службе?
A: Да, можно. При помощи сервлетов. В файле web.xml пишете примерно следующее:

<servlet>
    <servlet-name>LoaderServlet</servlet-name>
    <!-- Указываем место класса-сервлета -->
    <servlet-class>works.servlets.LoaderServlet</servlet-class>
</servlet>

<servlet-mapping>
    <!-- это название сервлета  -->
    <servlet-name>LoaderServlet</servlet-name>
        <!-- Тут непосредственно URL, который будет вызвыать наш сервлет -->
        <url-pattern>/getTree</url-pattern>
</servlet-mapping>

Наш ЛодырьСервлет

public class LoaderServlet extends HttpServlet {
@EJB
private CategoryManager categoryManager;

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        /*
            Все, что угодно. Теперь
            мы имеем проинъекченную некоторую переменную.
            Делаем все, что угодно.
        */
        //Вот пример забора информации из запроса от Http-клиента
        String xaction = request.getParameter("xaction");
        //Ну, теперь в xaction отправленный от клиента параметр xaction
    }

В результате, все Http-запросы на getTree будут вызывать сервлет.

UPD1:
 Исправил листинг в сервлете. Отправлять на сервер обычными методами, или необычными. как вам угодно.

redpajama_set_name: RedPajamaStackExchange


First you need to use Cosplay Young Justice Miss Martian. Procure kusanagi cosplay Cosplay Costumes |. com If you're a big fan those dedicated individuals who choose find anime and game cosplay, the first time and he making (sometimes successfully, and sometimes dress up as the Final fantasy attire. Cosplay Costumes Pokemon - 34 results from brands Rubie's, OddzOn, final fantasy attire, also embraced some safe for him the nickname Destroyer of Batman DC … Costumes | character) and she wants it.
This entry was posted in Underworld Costumes by Zulugul . Bookmark the permalink.


This is a simple one touch, challenging and hard to master game with color circles that need to match by rotating the arrows. Spin the circle after arrows releases color balls or circles and tap to change divert to match the color. The finger will be speed up spinning after you tap to catch color ball.
Beware, don't let the color circles touch with opposite color. If you miss any circle, it will bounce back through the walls and then you can match through rotating the circle. As many time you miss the ball, it will bounce back faster.
Want to tests your brain's reflexes?


Contains high levels of silicone oil to restore and shine dull or faded rubber, vinyl and plastic surfaces.
Quickly cleans, renews and protects dashboards, vinyl / leather seats, window and door rubbers, vinyl tops, bumpers, spoilers and tyres. Contains anti-static additives which minimise dust settling due to static.


text:
""" Project Euler problem 220: Heighway Dragon """

# A journey is a tuple (forward, lateral, turn, steps) where
#   forward is number of steps in the facing direction (negative is backwards)
#   lateral is number of steps to the right relative to facing direction (negative is left)
#   turn is change of facing orientiation: 0=no turn, 1=right 90, 2=right 180, 3=right 270=left 90
#   steps taken in the journey

nop = (0, 0, 0, 0)
forward = (1, 0, 0, 1)
right = (0, 0, 1, 0)
left = (0, 0, 3, 0)

fwd = 0
lat = 1
trn = 2
stp = 3

cache = {}

def dragon(n, steps):
    journey = forward
    (stage, truncated) = ab_stage('a', n, steps-1)
    journey = append(journey, stage)
    return journey

def ab_stage(ab, n, max_steps):

    # Bottom of recursion
    if n == 0:
        return (nop, False)

    # Use cache, if available, unless it overshoots the desired number of steps
    key = (ab, n)
    if key in cache:
        stage = cache[key]
        if stage[stp] <= max_steps:
            return (stage, False)

    # The recursion rules for a Heighway Dragon
    if ab == 'a':
        pattern = "aRbFR"
    else:
        pattern = "LFaLb"

    stage = nop
    for c in pattern:

        # How much remaining steps before we reach the max number of steps?
        remaining_max_steps = max_steps - stage[stp]
        assert remaining_max_steps >= 0

        # If we have reached the max, truncate and return the stage thus far
        if remaining_max_steps == 0:
            return (stage, True)

        # Compute the next stage corresponding to the letter in the pattern,
        # making sure not to overshoot the remaining number of steps.
        if (c == 'a') or (c == 'b'):
            (next_stage, truncated) = ab_stage(c, n-1, remaining_max_steps)
        elif c == 'L':
            next_stage = left
            truncated = False
        elif c == 'R':
            next_stage = right
            truncated = False
        elif c == 'F':
            next_stage = forward
            truncated = False

        # Append the next stage to the running total.
        stage = append(stage, next_stage)

        # Bail out once we have reached the desired number of steps.
        if truncated:
            return (stage, True)

    # We finished a potentially expensive computation of an a(n) or b(n) stage
    # without truncation. Cache and return the result.
    cache[key] = stage
    return (stage, False)

def append(journey, stage):
    return add(journey, align(stage, journey[trn]))

def align(stage, direction):
    """ Rotate the next stage of the journey to align with the direction in
        which the end of the journey thus far points. """
    if direction == 0:
        return stage
    elif direction == 1:
        return (-stage[1], stage[0], stage[2], stage[3])
    elif direction == 2:
        return (-stage[0], -stage[1], stage[2], stage[3])
    elif direction == 3:
        return (stage[1], -stage[0], stage[2], stage[3])

def add(j1, j2):
    return (j1[fwd] + j2[fwd],
            j1[lat] + j2[lat],
            (j1[trn] + j2[trn]) % 4,
            j1[stp] + j2[stp])

def solve(n, steps):
    # The starting position was on the origin, facing towards the positive side of the y-axis
    (y, x, direction, actual_steps) = dragon(n, steps)
    return (x,y)

print(solve(50, 1000000000000))


text:
Q: How to test an element with protractor that has no id or class? I am new to protractor and am trying to test various elements within the code (code that I did not write).
here is an example of some of the code:

  Home

as can be seen above this element does not have an ID and the class is empty. therefore how do I access this?
below is some code that I wrote to access an element that had an ID:
browser.driver.findElement(by.id('header-search-link')).click();

I have also tried to access an element by.css but it did not work for the problem above.
any help would be great

A: If you want to access the Home link, simply get it by partial link text:
element(by.partialLinkText('Home'));

Or, you can use a CSS selector:
element.all(by.css('ul.primary_menu > li > a')).first();

A: According to http://angular.github.io/protractor/#/locators#finding-sub-elements you can chain locators to find an element:
element(by.css('.primary_menu')).element(by.tagName('li'));

or
element(by.css('.primary_menu li'));

(untested, I never worked with Protractor)


Are you interested in marketing and advertising your business online, but just don't know where to start?
TrinidadForSale.com is a free online service which is supported by the paid advertising services offered.
Our customers are willing to spend their marketing dollars with us because we get them results. We like to operate on the basis of QUALITY, not QUANTITY. A newspaper ad in the Express or Guardian will cost you a lot of money and probably been seen by tens of thousands of people. How many of those people are in the market for your goods/services on that day? How many are in your area? What if you don't want everyone to call at once? How do you retain them as 'leads' for the future?
Ads in the newspaper are expensive and don't always fit with the type of advertising your company needs. We can help save you money and provide you with a DIRECT, FLEXIBLE and EFFECTIVE approach to marketing.
Contact us at: Admin@TrinidadForSale.com to learn about how we can help you market your business properly online.
For site related issues, premium ad inquiries and any help regarding the site, you may reach us through the contact form below.
Make sure you provide all details necessary. Keep it spam free so that we can serve you better.


text:
NTRU Sig
========

Open Source NTRU Encryption Algorithm and Implementation

Written by Sean Parkinson (sparkinson@iprimus.com.au)

For information on copyright see: COPYRIGHT.md

Contents of Repository
----------------------

This is the code that implements the NTRU Encryption algorithms.

There are key generation, encryption and decryption APIs.

Different parameters are used based on the security strength required.
Four security strengths are supported: 112, 128, 192, 256.
The parameters are based on those specified in:
Jeff Hoffstein, Jill Pipher, John M. Schanck, Joseph H. Silverman, William Whyte, and Zhenfei Zhang; "Choosing Parameters for NTRUEncrypt"; https://eprint.iacr.org/2015/708.pdf

The code is small and fast. Uses Karatsuba multiplication for speed.

The arithmetic operations are side-channel resistant.

NTRU Encryption
---------------------

```
Key:
  [priv] f = 1 - p.f' mod q
  [pub]  h = g.p.f^1 mod q

Encryption:
  t = random mod q
  e = h.t + m mod q

Decryption:
  d = f.e mod q mod p
```

Building
--------

make

Testing
-------

Run all tests: ntruenc_test -no_asm

Run all tests and calculate speed: ntruenc_test -speed -no_asm

Performance
-----------

Example of ntruenc_test output on a 3.4 GHz Intel Ivy Bridge CPU:

```
Cycles/sec: 3400248956
Strength: 112
Vector Length: 401 elements, Encrypted Length: 802 bytes
Data: 0, kg init: 0, kg: 0, enc init: 0, enc: 0, dec init: 0, decrypt: equal
 Op      ops  secs     c/op  ops/s
enc:   28136 0.413    49910  68127
dec:  115118 1.001    29563 115017
kgn:    8553 0.996   395867   8589

Strength: 128
Vector Length: 439 elements, Encrypted Length: 878 bytes
Data: 0, kg init: 0, kg: 0, enc init: 0, enc: 0, dec init: 0, decrypt: equal
 Op      ops  secs     c/op  ops/s
enc:   61390 1.000    55375  61404
dec:  101758 1.002    33475 101575
kgn:    7499 0.983   445911   7625

Strength: 192
Vector Length: 593 elements, Encrypted Length: 1186 bytes
Data: 0, kg init: 0, kg: 0, enc init: 0, enc: 0, dec init: 0, decrypt: equal
 Op      ops  secs     c/op  ops/s
enc:   37333 1.001    91153  37302
dec:   55322 1.002    61569  55226
kgn:    4365 0.988   769923   4416

Strength: 256
Vector Length: 743 elements, Encrypted Length: 1486 bytes
Data: 0, kg init: 0, kg: 0, enc init: 0, enc: 0, dec init: 0, decrypt: equal
 Op      ops  secs     c/op  ops/s
enc:   29113 1.003   117175  29018
dec:   42427 1.003    80365  42310
kgn:    2957 1.000  1150239   2956
```


text:
Q: Update Android App Database So I got a simple app with a sqli database,
the app just shows the content which is saved in the database.
So if I am correct the sqli database is saved inside the app (apk),
what I am questioning myself is if I do have repeatedly upload the app / apk if I change, delete or add something in the database.
If yes is there a way around this, to like get the data from a database without repeatedly uploading the application if data has changed.

A: Yes, if you change something in the database you need to upload the apk, because the database is inside the apk.  The alternative would be to put the database on a server.  Then you would write a back end for your app in your language of choice, and this code would access the database.  You could also use a Back End As a Service.  Google BAAS to get info on the available options.


text:
  /**
   * Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences or Promises produces an element.
   * This can be in the form of an argument list of observables or an array.
   *
   * @example
   * 1 - obs = observable.combineLatest(obs1, obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; });
   * 2 - obs = observable.combineLatest([obs1, obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; });
   * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
   */
  observableProto.combineLatest = function () {
    var args = slice.call(arguments);
    if (Array.isArray(args[0])) {
      args[0].unshift(this);
    } else {
      args.unshift(this);
    }
    return combineLatest.apply(this, args);
  };


text:
Home/Sports News/Nets Overtake Lakers as Favorite to Win 2021 NBA Finals
BasketballSports News
Nets Overtake Lakers as Favorite to Win 2021 NBA Finals
RyanLast Updated: March 23, 2021
The Los Angeles Lakers have been the favorites to win the 2021 NBA Championship since the odds were released, but that is no longer the case. The Brooklyn Nets are the new No. 1 team, according to oddsmakers. This doesn't mean that the Lakers aren't still a legitimate threat to win another championship, but another team is coming on strong.
The Lakers are also dealing with injuries to their two biggest stars, and it could affect their playoff seeding in the Western Conference. The West is once again loaded with terrific teams, and losing home-court advantage could be a significant blow.
Anthony Davis has been out of the lineup since before the All-Star Break, and LeBron James just went down with a high ankle sprain. It's unclear how long James will be out, but he isn't expected to be back anytime soon.
Brooklyn began the season with Kyrie Irving and Kevin Durant running the show, but that team is now a three-headed monster. An in-season trade for James Harden gives the Nets three of the best offensive players in the NBA, and Brooklyn is leading the league in points scored.
The Nets have struggled to have all three players on the floor at the same time, but it has not affected their record. Brooklyn believes it can win the NBA Championship this season, and the odds now back up that claim.
Current Odds to Win NBA Championship:
Brooklyn Nets +280
Los Angeles Lakers +300
Los Angeles Clippers +550
Milwaukee Bucks +750
Utah Jazz +850
Philadelphia 76ers +1200
Denver Nuggets +2600
Phoenix Suns +3000
Boston Celtics +3400
Miami Heat +4600
Dallas Mavericks +5500
Toronto Raptors +5500
The Brooklyn Nets are now listed at +280 to win the title, the best odds that this team has received all season long. Brooklyn has been trending in the right direction for weeks, but they have finally surpassed the Lakers.
Los Angeles is heading the other direction, and those odds should continue to fall without Davis and James in the lineup. The Lakers don't have a ton of depth to begin with, which could be a real problem.
The L.A. Clippers entered the 2020-21 season as the second-favorite to win the NBA title this season, but they have also been overtaken by the Brooklyn Nets. L.A. is still a strong betting option at +550, but they will have to find a way to get through the Lakers first.
At this point, sportsbooks are giving just six teams a realistic chance to win the NBA title as the odds drop considerably after that group of teams. The NBA Playoffs are not like the NCAA Tournament, and the top teams usually find a way to advance in the postseason.
The Milwaukee Bucks are considered the biggest threat to the Nets in the East, with odds currently set at +750. Milwaukee has been a top team in the league for a few seasons but always seems to come up short in the postseason.
The Utah Jazz currently have the best record in the league, but this team continues to be overlooked. Utah has odds set at +850 to win the title, and they aren't considered a real threat to win the Western Conference.
Brooklyn Nets Los Angeles Lakers NBA Championship Odds NBA Futures Betting
NBA News: Night of Upsets, Westbrook Tripling Again and More
2016 NFL Week 11 Review: Playoff Teams Are Taking Shape
NHL News: What's Happening with Contracts and Trades
2016 NFL Week 15 Review: Bucs, Skins and Broncos Falter
Sports Betting Industry News
NFL Agrees with 4 Sports Betting Companies for 2021 season


Blandina and Efrem are a young couple who live in Melbourne, they are ready to get married.
They want to celebrate the wedding in Italy with family and friends.
They have asked for wedding invitations an illustration that remember the wedding day and their journey.


text:
package org.apache.hadoop.oncrpc;

import org.junit.Assert;
import org.junit.Test;

public class TestXDR {
  private void serializeInt(int times) {
    XDR w = new XDR();
    for (int i = 0; i < times; ++i)
      w.writeInt(23);

    XDR r = w.asReadOnlyWrap();
    for (int i = 0; i < times; ++i)
      Assert.assertEquals(r.readInt(), 23);
  }

  private void serializeLong(int times) {
    XDR w = new XDR();
    for (int i = 0; i < times; ++i)
      w.writeLongAsHyper(23);

    XDR r = w.asReadOnlyWrap();
    for (int i = 0; i < times; ++i)
      Assert.assertEquals(r.readHyper(), 23);
  }

  @Test
  public void testPerformance() {
    final int TEST_TIMES = 8 << 20;
    serializeInt(TEST_TIMES);
    serializeLong(TEST_TIMES);
  }
}


Paradise Palm Pools Inc. is a State of Florida full service licensed and insured contractor. As a Pacific Pools and FOX Pools dealer, we offer a full line of of liner patterns that will make your pool like new again. I you are thinking about that new inground pool of your dreams, we can custom design and build it at a price you can afford. Our full service company offers: Automation Systems, Salt Systems, Solar Systems, Deck Pavers, Equipment Installation, Light Repair and Replacement, Inspection, Green Water Clean UP'S, Landscaping, and Lighting.
Now serving new pool construction, repair, and new vinyl liner replacement for 32420, 34241, 34238, 34243, 34689, 34688, 33647, 33619, 33610, 33626, 33762, 33756, 33755, 33761, 33764, 33510, 33511 and more.


text:
It is the intent of the University of California, Davis (UCD) to develop and promote accountability, trust, and communication between the Davis and Sacramento campus communities and the UCD Police Department (UCDPD). To that end, UCD established a Police Accountability Board (PAB) to impartially review investigative reports related to allegations of police misconduct and make recommendations in a timely manner regarding complaints filed by members of the public against the UCDPD. UCD encourages its community and the public to bring forward such complaints. Through various public forums, the PAB also solicits information and input from the public and its constituent groups. The PAB may also make policy, procedure and training recommendations.
Consistent with Penal Code sections 832.5 et seq, UCD has established a procedure to investigate complaints made by the public against the UCDPD and its officers. While the complaint process is detailed in UCDPD's Policy 1020, much of that process is also described in the PAB's Procedures to ensure that PAB members and alternates understand the process generally, as well as their specific role. The complaint procedure involves the Office of Compliance who will generally provide administrative support and investigatory personnel, the PAB who will review the investigatory reports and make findings and recommendations to the Chief of the UCDPD, and the Chief who will make the final determination with respect to each complaint. The Chief will ensure cooperation of the UCDPD with all investigations.
The PAB will produce an annual report auditing and identifying summary information and statistical data regarding the number and types of complaints received, analysis of trends or patterns, the disposition of those complaints and the percentage of complaints in which the recommendations of the PAB were either accepted, rejected or modified by the Chief of Police. In addition, the PAB may report on other matters, such as policy, procedure or training recommendations.
II. Police Accountability Board Bylaws
The PAB Bylaws govern the following subjects:
The purpose of the PAB;
PAB member qualifications;
Composition of the PAB;
The nomination, selection and alternate process;
Terms;
Officers;
Ethics;
Removal of board members;
Quorum and majority vote;
Recusal;
Training and confidentiality commitments;
Powers and duties;
Reporting; and
Bylaw amendment.
III. Complaint Intake Procedures
A. Nature of Complaint
UCD students, faculty and staff, as well as members of the general public, have the right to lodge complaints against the UCDPD or its officers if they believe misconduct or infraction of rules, policy or law (e.g., excessive force, false arrest, false imprisonment, abusive language, harassment/discrimination, etc.) has occurred. These complaints are referred to as "Personnel Complaints" and are divided into two categories: (1) Member of the Public or Civilian Complaints and (2) Internal Complaints. The Office of Compliance will investigate Member of the Public or Civilian complaints. The PAB will review the investigation reports and findings and make recommendations to the UCDPD Chief. In the event that a civilian complaint is submitted against the UCDPD Chief, the PAB will make its recommendations to the immediate supervisor of the Chief of Police.
The Office of Compliance will not investigate Internal Complaints filed by UCDPD officers or other personnel. These complaints will be handled internally by the Professional Standards Unit (PSU). The PAB will not review PSU investigatory reports regarding Internal Complaints. Complaints received regarding another law enforcement agency (e.g., City of Davis Police Department) will be referred to that agency.
B. Filing Locations
A member of the campus community or general public may file a complaint by:
Accessing and submitting a complaint form online at www.pab.ucdavis.edu;
Faxing a completed complaint form to one of the fax numbers listed below;
E-mailing a completed complaint form to pab@ucdavis.edu;
Calling the UCD Office of Compliance at the telephone number listed below to schedule an appointment; or
Submitting a completed complaint form to the UCD Police Department at one of the addresses listed below:
UC Davis Office of Compliance
1 Shields Avenue
UC Davis Police Department-Davis Campus
625 Kleiber Hall Drive
530-754-COPS
UC Davis Police Department-Sacramento Campus
4200 V Street
A current copy of the complaint form can be found here. The Chancellor or the Chief of Police may also refer issues to the Office of Compliance for investigation and the PAB for review and recommendation.
C. Filing Deadline
The prompt filing of complaints is strongly encouraged, as it provides the best opportunity for thorough and timely investigation. Complaints shall be filed in writing no later than one hundred and eighty (180) days following the date of the alleged misconduct or infraction, except that the filing period shall be tolled when a complainant is incapacitated and unable to file.
D. Complaint Information
The complaint form should include:
Contact information for the complainant;
A detailed narrative, including:
the nature of the complaint;
the timing of the alleged misconduct;
any injuries resulting from the alleged misconduct;
a description of the alleged misconduct; and
the signature of the complainant.
The complainant will be provided with a copy of his or her complaint and any statement at the time the complaint is filed. All complaints filed by a member of the public with the UC Davis Police Department (UCDPD) will be forwarded to the UC Davis Office of Compliance within two (2) business days.
E. Anonymous Complaints
Anonymous complaints made by a member of the public will be accepted and may be investigated depending upon the sufficiency of the information provided. Anonymous complaints should provide as much detail as possible in order to enable appropriate review and investigation.
F. Sharing of Complaints
Any complaint received by the UCDPD will be shared with the Office of Compliance for review and processing within two (2) business days. Any complaint received by the Office of Compliance will be shared with the Chief of Police, also within two (2) business days. At least monthly, the Office of Compliance will report to the PAB on any complaints that have been received since the previous monthly report was forwarded to the PAB by the Office of Compliance.
If, through the intake process (or subsequently during the investigation) additional allegations surface that were not contained in the original complaint but relate to the original complaint, the additional allegations being investigated by the Office of Compliance will be forwarded to the Chief of Police.
G. Early Resolution of Complaints
At the time of filing a complaint in person at the Police Department, when an uninvolved supervisor or the Watch Commander determines that the complainant, after discussion of the matter, is satisfied that his or her complaint required nothing more than an explanation regarding the proper implementation of department policy, procedure or law, the complaint shall be labelled "Resolved" and forwarded to the Office of Compliance within two (2) business days. The Office of Compliance will follow-up with the complainant to confirm that he or she is satisfied with the early resolution.
H. Initial Determination and Information Gathering by Chief Compliance Officer
All complaints made by members of the public will be logged by the Chief Compliance Officer or designee. A confidential file will be established for each complaint received and access restricted to the Office of Compliance. These files will be stored in a secure location and maintained for at least five (5) years. The Chief Compliance Officer/designee will evaluate each complaint for information necessary to conduct an investigation and proceed as follows:
If additional information is needed, the Chief Compliance Officer/designee will request additional information from the complainant to the extent that the identity of the complainant is known. If the complainant is anonymous and there is insufficient information to warrant conducting an investigation, the Chief Compliance Officer/designee will close the file and no investigation shall be conducted.
If the Chief Compliance Officer/designee determines that the complaint is untimely, there is insufficient information to conduct an investigation, the allegations themselves demonstrate on their face that the acts complained of were proper, or the nature of the complaint is not suitable for investigation and review by the PAB, the Chief Compliance Officer/designee will notify the complainant, the Chief of Police and the PAB of the disposition in writing citing the specific reasons for the determining that the complaint will not be investigated.
If the Chief Compliance Officer/designee determines there is sufficient information and cause to investigate, they will assign the complaint to an investigator to initiate an investigation and notify the complainant, the Chief of Police and the PAB in writing of the complaint's referral to investigation.
IV. Complaint Investigation Procedures
A. General
Whether conducted by the Office of Compliance or an outside investigator jointly selected by the Office of Compliance and the UCDPD Chief of Police, the following procedures shall govern the investigation process, which include complying with the Public Safety Officers Procedural Bill of Rights (POBR) at Government Code section 3300 et seq. To the extent that there is any inconsistency between these Procedures and POBR, POBR controls. A current copy of the POBR can be found here.
The Chief of Police will be the investigator's point of contact for purposes of gaining access to UCDPD information, documentation, and personnel. In this role, the Chief will ensure necessary access to officer, information, and documentation needed to conduct a thorough and timely investigation. The investigator will have access to any and all UCDPD information the investigator or the PAB deems relevant to the complaint, including access to the UCDPD's "IA PRO" software and electronic files.
The investigation of a complaint shall consist of conducting interviews with the complainant, the subject officer(s), and any witnesses, collecting relevant evidence, including, but not limited to, UCDPD reports and records, photographs, video, and audio records. Interviews with subject officer(s) will be recorded, as will other interviews to the extent that the complainant and witnesses agree. Subject officers may also record the interview and if he or she has been previously interviewed, a copy of that recorded interview shall be provided to him or her prior to any subsequent interview. (Government Code section 3303(g)).
Officers shall be provided with reasonable notice prior to being interviewed and interviews of accused peace officers shall be conducted during reasonable hours. (Government Code section 3303(a)).
If the peace officer is off duty, he or she will be compensated for the interview time. (Government Code section 3303(a)).
No more than two (2) interviewers may ask questions of an accused peace officer. (Government Code section 3303(b)).
Prior to any interview, the peace officer will be informed of the nature of the investigation. (Government Code section 3303(c)).
All interviews will be for a reasonable period and the peace officer's personal needs will be accommodated during the interview. (Government Code section 3303(d)).
No peace officer shall be subjected to offensive or threatening language, nor shall any promises, rewards or other inducements be used to obtain answers. (Government Code § 3303(e)).
Peace officers shall be informed of their constitutional rights irrespective of whether the subject officer may be charged with a criminal offense. (Government Code § 3303(h))
Peace officers subjected to interviews that could result in punitive action shall have the right to have an uninvolved representative present during the interview. (Government Code § 3303(i)).
All peace officers shall provide complete and truthful responses to questions posed during interviews. Failure to do so will result in discipline, up to and including termination of employment.
No peace officer shall be compelled to submit to a polygraph examination, nor shall any refusal to submit to such examination be mentioned in any investigation. (Government Code § 3307).
Interviews should be conducted with minimal interference to police operations and in conformity with the POBR. Any documentary evidence received during the investigation by the investigator will be included in the investigative file even if the investigator determines the document later to be irrelevant to the investigation.
If there is pending criminal prosecution regarding the same operative facts and circumstances surrounding the complaint, the investigation will be stayed until criminal proceedings are concluded.
If an investigation is stayed, all documents and information under UCDPD's control related to the incident in question will be preserved and maintained by the Chief of Police during the pendency of the stay to ensure no evidence is destroyed.
Barring mitigating factors, the investigation should be completed and an investigation report submitted to the PAB within ninety (90) days of it being assigned to an investigator, unless an extension is authorized by the Office of Compliance upon a showing of good cause for the delay or legitimate need for additional time to complete the investigation. The Office of Compliance will provide notification of the extension of time to the Chief of Police and the complainant.
All investigation reports of complaints made by members of the public shall be considered confidential peace officer personnel files. The contents of such files shall not be revealed to other than involved employee or authorized personnel except pursuant to lawful process.
In the event that the alleged accused peace officer or representative knowingly makes a false representation regarding any investigation or discipline publicly, the UCDPD may release factual information concerning the disciplinary investigation. (Penal Code section 832.7(d)).
Complaints and any report or finding relating to the complaint shall be retained for a period of at least five (5) years. (Penal Code section 832.5(b)).
B. Investigation Reports and PAB Review Procedures
1. Report Format
The investigator shall provide a confidential report to the PAB that is redacted and does not identify the individuals involved. The Chief of Police will receive an unredacted version of the investigation report. Both reports will include:
An Introduction;
A Summary of Allegations (including applicable policies);
Evidence Regarding Each Allegation (including comprehensive summaries of interviews or statements and identification of relevant documentary and electronic evidence);
Conclusions and Findings; and
Exhibit Listing.
2. Findings
The investigator's report, based upon a preponderance of the evidence, should include one or more of the following findings in response to each of the allegations made by the complainant. The "preponderance of the evidence" standard is met when it appears more likely than not the allegations of misconduct occurred as described.
Unfounded – When the investigation discloses that the alleged act(s) did not occur or did not involve department personnel. Complaints that are determined to be frivolous will be treated as unfounded (Code of Civil Procedure section 128.5 and Penal Code section 832.5(c)).
Exonerated - The evidence supports a finding that the alleged acts occurred; however, the conduct was justified, lawful or proper.
Not Sustained - The evidence is insufficient to support a finding that the alleged conduct occurred or violated department policy or procedure.
Sustained – The evidence supports a finding that the alleged conduct occurred and that the conduct was improper (e.g., violated department policy or procedure).
3. PAB Review and Recommendation(s)
In closed session, the PAB (both members and alternates in attendance) will collectively review the investigative report(s). PAB members and only alternates in attendance whose entity's PAB member is absent will vote on its recommendations to either adopt, amend, or reject the investigator's findings. Hard copies of reports or on-line access via a password protected website to the reports will be made available prior to the closed session.
The PAB has the authority to direct the investigator to re-open the investigation to pursue additional information requested by the PAB.
In addition to its recommendations with respect to whether the investigator's findings are sustained, the PAB may also recommend a wide spectrum of actions to the Chief of Police, including, for example, modifying policies or training. The PAB, however, will not recommend a particular level of discipline or a specific corrective action, as the Chief of Police retains the responsibility of and discretion to impose discipline. The PAB's policy recommendations may result from issues related to a specific complaint investigation or from a general policy review and analysis.
The PAB's recommendations regarding the investigative findings shall be in writing and, through the Office of Compliance, forwarded to the Chief of Police within one (1) week after the PAB has voted in closed session.
The PAB may also solicit progress reports from the Chief of Police regarding policy and training recommendations.
C. Role of Chief of Police and Ultimate Record Keeping
During the course of an investigation, and prior to making a final determination, the Chief of Police may ask for additional investigation. Ultimately, the Chief may adopt all, part, or none of the PAB's recommendations and retains full authority, discretion, and responsibility regarding the final disposition of the matter, including disciplinary determinations. Within thirty (30) days of the final review and determination by the Chief of Police, written notice of the finding will be sent to the complaining party and to the PAB through the Office of Compliance. This notice shall indicate the findings, but will not disclose the amount of discipline, if any, is imposed. The complainant will also be provided with a copy of his or her original complaint if one has not already been provided. Upon final determination, all information and documents related to the underlying complaint shall be consolidated and maintained by the UCDPD.
Any complaining party who is not satisfied with the Chief of Police's ultimate disposition of the complaint may contact the Chief of Police to discuss the matter further.
V. Annual Reporting Procedures
The complaint and PAB review processes are subject to annual audit, review and reporting. The PAB will submit an audit and analysis of complaints directly to the UCDPD Chief of Police each year. The PAB's annual public report will include the following information:
Total number of complaints filed;
Types of complaints filed and analysis of trends or patterns;
Disposition of complaints (e.g., not investigated, sustained, not sustained, exonerated, or unfounded);
Percentage of complaints in which the Chief of Police accepted, rejected or modified the PAB's findings; and
Policy, procedure and training recommendations.
The PAB's report shall be made available to members of the public at their request and shall be maintained online at www.pab.ucdavis.edu.
Last update: October 23, 2019


text:
(→Strategy)
(→Detection / Mapping Outline)
# Move to the object and stop near it. Distance to the object is the same as the distance margin to the wall.
=== Detection / Mapping Outline ===
=== Detection ===
The detection strategy for the Hospital challenge was elaborated from the Escape Room challenge to account for the added complexity of the second challenge. As a result, some components of the detection strategy from the Escape room challenge were retained and improved, while the rest of the components were discarded due to their redundancy. The follow sections elaborate the new components employed in the detection strategy and the retained components from the previous challenge that were improved.
2.4.2.1 Main
2.4.2.2 Detection
2.4.2.3 Planning
2.4.2.4 DriveControl
3.2.2.1 Retained and Improved Components
3.2.2.2 New Components
3.2.2.3 Strategy
5 Code Snippets
After detection of the exit and being close enough to this detected exit, the algorithm for detection of the corridor walls is used to determine what the distance to the right and left walls is in the corridor. To do this, a line fit is created with LRF data on either side of PICO with the algorithm mentioned before. This line data is passed to the planning algorithm, which will determine what the distance of PICO to either side of the wall is. Once there are no more lines detected on either side of PICO, PICO has escaped the corridor and will automatically stop.
If PICO is not located in the corridor and cannot detect an exit, PICO should drive towards the furthest point. In order to do this, this furthest point is detected based of the values of the LRF with the additional requirement that there should be at least 5 values of the LRF data in a row that do not deviate too much from each other. This is done to prevent small openings or a single incorrect LRF measurement influencing the detection method.
DriveControl
All detected features will be averaged over 10 scans to prevent false positives in the detection.
PICO has to map the hospital and find the object in 10 minutes.
PICO needs to park backwards. To park, PICO will turn around 0.3 meters before the wall and drive backwards until the control effort increases without any movement
PICO has to identify the openings (called: exits) and corners of the escape room. An algorithm is created which ensures that PICO identifies corners and exits when facing the corner or exit under an angle of 60 degrees or less.
PICO has to map the hospital. PICO will convert corners and exits that are locally detected to a global map.
PICO has to determine its own absolute position. PICO will keep track of its global position based on odometry data, and tries to update the position using LRF data after a maximum of 20 centimeters that are driven.
The information in the worldmodel needs to be saved after finishing mapping. A JSON file is created that saves the worldmodel.
PICO needs to find all rooms when mapping. PICO will first drive through the corridor to identify all rooms, then inspects these rooms one by one and investigate all possible nested rooms.
Retained and Improved Components
Line fitting algorithm: The functioning of the line fit algorithm has remained the same from the Escape Room challenge, the description of the algorithm can be found Frog#Line fitting algorithm. The algorithm is still used to fit a line from the laser data, this line represents a wall of the hospital. The fitted line is then used as a base of comparison for laser data points which deviate from the fitted line, thereby indicating the presence of environment features.
Closest point: The closest point has been reused from the Escape Room challenge. The closest point to PICO in relation to the environment is determined based on the shortest distance measurements across all the obtained laser data points. The closest point is then used to navigate PICO away from it's close proximity to the environment. This functions as an environment collision avoidance system.
Exit detection: The exit detection algorithm still works in parallel with the line fitting algorithm but has been modified to account for multiple room entrances and exits in the Hospital challenge.
Corner detection: The corner detection algorithm also still works in parallel with the line fitting algorithm but has been modified to save the corners instead of using it only to proceed with the next line fit.
New Components
The overall approach in detection for the Hospital challenge was to ensure the accuracy in the presence of environment features of the Hospital. Therefore, the aim was to eliminate the occurrence of false positive environment features detected by PICO. This was achieved by employing two stages given below:
Right-Left (R-L) and Left-Right (L-R) Scanning: The laser range finder data is interpreted in two ways. Firstly, the data is interpreted starting from the first data point from the right to the last data point present on the left. Secondly, the data is interpreted starting from the first data point on the left to the last data point present on the right. Due to the functioning of our feature detection, this was done to ensure that features that could not detected from the R-L scan would be detected from the L-R scan and vice-versa.
Feature averaging: Building on the base of R-L and L-R scanning, it was important to make feature detection more robust and reduce the presence of false-positive detected features. This was done by averaging the properties of features over multiple scans and comparing them to accurately ensure the presence of features.
Filtering Laser Data: The laser data is filtered so as to remove erroneous data points that are highly inaccurate like PICO detecting itself.
Closest-point: The laser data point(s) with the shortest distance to PICO is obtained so that it can be used to avoid collisions with the environment.
Line-fitting: The line fitting algorithm takes data points at specified intervals and evaluates if the points can be fitted within a line within a distance threshold; if the points are within the threshold, a line is fitted between the set of data points which indicates the presence of a wall in the environment.
Left-Right Corner-detection: The Left-Right corner-detection scan takes laser data points starting from the left most data point and ending with the right most data point from the available laser data and evaluates the distance of data points from the line fitted using the line-fitting algorithm. If the distances of a certain number of points deviate from the fitted line, the corner is detected. This can be visualized in the GIF image given within the section.
Right-Left Corner-detection: The Right-Left corner-detection scan takes laser data points starting from the right most data point and ending with the left most data point from the available laser data and follows an identical procedure of the L-R corner detection given above.
Corners-averaging: To more accurately determine the position of a corner in the environment, an averaging algorithm is used. The averaging algorithm takes the corners detected over multiple scans and evaluates points within a specified distance threshold of each other. If multiple points are within the specified distance threshold of each other, these points are averaged to produce a even more accurate position of the actual corner point. This can be visualized in the GIF image provided within this section.
Left-Right Exit-detection:
Right-Left Exit-detection:
Exits-averaging: Similar to the corner averaging, to more accurately determine the position of exit points in the environment, an averaging algorithm is used. The algorithm determines the mid-point of two exit points detected in a scan; then calculates the mid-point of two exit points
Averaging Left-Right and Right-Left Coincident Corners:
Averaging Left-Right and Right-Left Coincident Exits:
Corner Detection Algorithm
Corner Point Averaging
Exit Points Averaging
The planning algorithm uses multiple setpoints where PICO drives to. The method to calculate a new setpoint depends on the phase of the 'overlaying strategy' where PICO is in, for example, when exploring the room low level detection data is used, while when moving through the known rooms, the known information from the previously created map is used. The strategy is fairly simple: first, one of the methods to determine the ultimate local destination is executed, producing the final setpoint for the current high strategy phase. Then, the local destination for PICO to travel for the current execution cycle is set. It always has a fixed distance with the angle in the direction to the high state phase setpoint. The new setpoint of PICO is always set to a distance of 0.2 meters away from the current position of PICO.
PARKING - state to park backwards at the end of the first part of the challenge.
EXIT_TO_PREV_ROOM - state that commands to go to the room one nesting level lower, e.g. exiting a nested room.
GO_INSIDE_ROOM - active when the actual movement through a door is happening. Initially, it was mean for the entrance based on the walls defining the exit, but later it was changed to just movement straight, parallel to the exit corners. This change was made because the walls are not thick enough to implement entrance algorithm similar to the one used in the Escape room.
Since the Hospital challenge consisted out of 2 parts: exploration and object search, 2 different main functions were defined. These are main_exploration.cpp and main_search.cpp The general structure of the two main functions was the same, except of the initial conditions that are set in the beginning of the program. The initialization for the exploration part stated that the first state is EXPLORE_CORRIDOR and set the necessary components of the World Model. The main_search.cpp, in turn, first parsed the JSON file to fill in the information based on the previous exploration and defined the Initial state and EXIT_CORRIDOR.
For the rest, both main functions have the following execution order in a while loop:
Update the detection information.
If there is a point detected that is too close to PICO, a method from planning is called to get away from the wall.
If no such point detected, proceed to monitoring function.
Update the states in the State Machine.
Call drive function
Check whether the program has to be stopped if the part of the challenge is completed (based on state machine)
The WorldModel is used to store all data from the world which are used by other classes of the program. All the data which is stored inside the WorldModel is initialized when the program starts running. While running the program the data of the WorldModel is updated by different classes of different intervals. Only the data is saved inside the WorldModel which is necessary for other functions to work properly. A summary of the data which is stored inside the WorldModel is given below:
globalRooms - This is a vector of all the rooms which are explored or unexplored. The Mapping class can add new rooms to this vector when there is an 'new' exit detected. An exit is determined to be 'new' when there is no room in the vector which has this exit as an property. The globalRooms vector is used to determine to which room PICO has to drive, depending on the State.
allDetectedExits - This is a vector of exits which are currently detected by PICO. The detection class can set the vector of AllDetectedExits every time it performs a detection-scan. The data from the vector is used by the Mapping class to add exit properties to the rooms and the Planning class, when moving through an exit.
allDetectedCorners - This is a vector of corners which are currenly detected by PICO. The detection class can set the vector of AllDetectedCorners every time it performs a detection-scan. The data from the vector is used by the Mapping class to add corner properties to the rooms.
closestPointWall - This is a point, which consist of a (x,y) coordinate, an angle and a distance to the closest point from PICO. This point is set by the Detection class. The closestPointWall is used by the overruling WallDetection function and also the Planning class.
destination - This is a point where PICO should drive to. The destination is set by the Planning class. It depends on the High/Low State what the destination will be. The destination is used by the DriveControl class, which let PICO move to the destination point.
globalPosition - This is the current global location of PICO inside the hospital. The current location of PICO is set by the Mapping class. The Planning class uses the current location of PICO.
currenHighState - This is the current High State where PICO is in. The High State is set by the State Machine class. The Monitoring class is using the High State to determine which planning functions needs to be executed.
currenLowState - This is the current Low State where PICO is in. The Low State is set by the State Machine class. The Monitoring class is using the Low State to determine which planning functions needs to be executed.
currentRoom - This is the room where PICO is currently in. The current room is changed by the StateMachine, when exiting or entering a certain room. The data of the currentRoom is used by the Planning class.
jsonObject - This is the Json file which consists the map of the hospital. The Json file is updated by the Mapping class. The Json file is saved and shows a map of the whole hospital.
The state machine is one of the crucial components that define the execution of the program. It includes the states evolution and location changes. Based on these parameters, other classes of the program can regulate their activity, for example, decision for a planning algorithm can be made (move further in a room/corridor or go through a door to enter another room).
The transition of the states is the following:
When exploring the Hospital:
If the location of PICO is IN_CORRIDOR:
Check whether the end of the corridor was reached once. If it was, never return to the EXPLORE_CORRIDOR state, needed to count the number of doors in the corridor.
When reached the end of the corridor once, GO_TO_NEXT_ROOM.
When at the entrance of the room, change to GO_INSIDE_ROOM for one cycle (given that the robot moves the same distance every time, it can be assumed that one cycle is enough to enter the room). Then change the location to IN_ROOM and state to EXPLORE_ROOM.
If number of explored rooms, connected to the corridor is the same as number of doors n the corridor, then change the state to RETURN_TO_INIT.
If the location of PICO is IN_ROOM:
If the number of the detected room corners (besides exits) is 4, stop exploration and move to a different room/corridor.
If there are more doors besides the entrance it came from, GO_TO_NEXT_ROOM; otherwise, EXIT_TO_PREV_ROOM.
Similar to corridor exiting procedure with GO_INSIDE_ROOM and GO_TO_NEXT_ROOM (now also EXIT_TO_PREV_ROOM) applies for decision-making inside the room.
When returning to initial position:
PICO is always located in the corridor when the state switched to RETURN_TO_INIT and GO_TO_START.
When the global position of PICO is (0,0) with the margin of distance iteration set-point, switch to PARKING.
PARKING state is executed for one cycle. Also the boolean to end the program is set to be true while setting to the state.
When searching for the object:
First, GO_TO_NEXT_ROOM. When the distance to the entrance to the first room is closer than the constant set-point distance, switch to the GO_INSIDE_ROOM.
When GO_INSIDE_ROOM is completed for one iteration, change the state to GO_INSIDE_ROOM.
Every time entering a room, scan for an object. If an object is found, change the state to STAND_NEXT_TO_OBJECT. If close enough, also set the end of the program to true.
Monitoring is the function that chooses between the Planning block methods to execute based on the current state. This class does not introduce any new information, but rather serves as an structuring block for the planning methods.
The planning algorithm generates an angle and a distance to the new set-point, this is also the input for the Drive Control class. Depending on the current High- or Low State of PICO, information from the WorldModel is used to generate a new setpoint. When a wall which is too close to PICO is detected an overruling function is executed, which is the following
getAwayFromWall - In case PICO is in the Low State EXPLORE_CORRIDOR the wall is avoided by letting PICO side-drive away from the wall. Using this method PICO will always face the end of the corridor in this state. Also when the wall is at the side of PICO the side-drive method is used to avoid the wall. When the wall is at the front of PICO he turn away from the wall, without driving.
The overrulling function 'getAwayFromWall' is always run if there is a object/wall detected which is too close, independent in which State PICO is currently. After the 'getAwayFromWall' function is executed PICO continues creating setpoints for the State where PICO was in before the 'getAwallFromWall' function was excecuted. Below is described how the setpoints of each State are generated by the Planning block
EXPLORE_HOSPITAL
EXPLORE_CORRIDOR - The new setpoint is always placed in front of PICO, without letting PICO turn. The overrulling 'getAwayFromWall' makes sure PICO stays inside the corridor and does not hit any walls.
GO_TO_NEXT_ROOM - First the closest unexplored room is obtained from the WorldModel. This room has two exits. The middle point of the two exit points is calculated. Since the mapping data is used to obtain this information it can be possible the exit points are not accurate. That is why the final setpoint is placed in front of the exit (according to the mapping data).
GO_INSIDE_ROOM - The real-time detection data is used to detect exit points of the room. These exit points are compared to the exit points of the closest unexplored room (according to the mapping data). When there is verified whether the real-time exit point is of the closest unexplored room PICO drives through the exit. The final setpoint is in the middle of the two exit points (according to real-time data).
EXPLORE_ROOM - PICO drives forward until there is a wall in front of PICO which is too close, then PICO turns around.
EXIT_PREV_ROOM - First the room where PICO is currently in is obtained from the WorldModel. This room has two exits. The middle point of the two exit points is calculated. Since the mapping data is used to obtain this information it can be possible the exit points are not accurate. That is why the final setpoint is placed in front of the exit (according to the mapping data).
RETURN_TO_INIT
EXIT_TO_PREV_ROOM - First the room where PICO is currently in is obtained from the WorldModel. This room has two exits. The middle point of the two exit points is calculated. Since the mapping data is used to obtain this information it can be possible the exit points are not accurate. That is why the final setpoint is placed in front of the exit (according to the mapping data).
GO_TO_START - Since the starting position of PICO was (0,0), PICO drives to this point.
PARKING - PICO turns around, when slowly drives backwards until he hits the back wall of the corridor.
GO_TO_ROOM
GO_TO_NEXT_ROOM - The next room where PICO has to drive to is obtained from the WorldModel. Since it is known in which room the object is placed, also the next room where PICO has to drive to is known. This room has two exits. The middle point of the two exit points is calculated. Since the mapping data is used to obtain this information it can be possible the exit points are not accurate. That is why the final setpoint is placed in front of the exit (according to the mapping data).
STAND_NEXT_TO_OBJECT - The setpoint is set to the middle of the room, according to the mapping data. In case there is a closest point (according to real-time data) which is closer to PICO then where the walls should be, this must be the object. PICO drives to this point.
Problem 1: If PICO is exiting a nested room and comes back to the main room, how to ensure that it does not explore the room the second time and does not create a new object?
Solution: Among the other features of the room, it should also include a flag whether the room was previously explored or not.
Problem 2: How to ensure that the PICO is driving to the end of the corridor in the very first phase? What is the target point to move to?
Solution: The detection class also should output the point that is straight ahead of PICO.
Problem 1: A complication that could have caused a failure in our program is the initial location of the PICO in the Hospital. It is, indeed, given that PICO is located in the corridor at the start of the challenge, however, it is not specified whether the corridor has all the doors along a straight line from the initial position. For example, the robot might start in the appendix of the corridor, that has a only one "door" according to our conventions (corridor is the room that we start in and it ends in the opposite wall from the initial position). Since write-to JSON file only happens after we return to the corridor, how to store the data about the visited rooms efficiently without overwriting it?
Solution: Use a stack feature to store the properties of the "main room" (which is meant to be a corridor) such as number of doors. Visit each nested room and use a separate stack for those.
Problem 2: How to deal with T-junctions in the corridors?
Solution: Same approach as with the previous problem can be applied. The corridor is considered to be a room and the actual rooms become nested rooms in this interpretation. If by the end of the exploration, PICO has 2 rooms with the same number of doors to be passed to reach that room, then it has to choose one and if the object is not found, a new path is constructed to the correct room.
Problem 1: In an earlier version of the detection algorithm, exits were checked by fitting lines and searching for the deviation from right to left. However, for some exits, this algorithm cannot work, as the exit is a deviation in a line from left to right, while a perpendicular line is present to mark the other exit point. For other situations, not enough points are present to fit a good line from right to left.
Solution: The exits and corners should not only be detected from right to left, but also from left to right to ensure that all exits and corners are found. If an exit or corner detected from right to left is close enough to an exit or corner detected from left to right, the average of these two exits/corners is saved inside the worldmodel.
Problem 2: The detection algorithm was not always correct and sometimes gave false positives in detection of exits and corners. These false positives should not be saved in the worldmodel to prevent an erroneous map.
Solution: Instead of immediately saving the data of 1 scan into the worldmodel, PICO comes to a complete stop to do 10 scans in a row and evaluate the corners and exits of each scan. If at least 5 corners or 5 exits are located close enough to each other, these corners/exits are averaged and are saved in the worldmodel.
Problem 1: Is it going to be a deadlock, when the destination point distance is smaller than the pre-set distance that PICO drives each iteration? (Referring to the drive control block description)
Solution: It will never happen, since critical decision-making functions incorporate this value in computations (e.g. change of low-state from EXPLORE_CORRIDOR to GO_TO_NEXT_ROOM, when moving through the corridor for the first time, is dependent on the pre-defined moving distance: the state changes when the corners of the corridor are closer than the pre-defined moving distance).
For the final Hospital challenge, where PICO had to first explore the hospital and then find an object placed inside, our program was not ready to be executed. By the time of the competition, almost all the separate program structure blocks were working and tested separately. However, it was not enough time to integrate the program into one. By the final challenge, the following components were completed:
Detection algorithm was able to recognize the corners and exits with high accuracy;
The planning block had full functionality for the first part of the challenge;
The world model was interacting with all the blocks, storing the necessary data and reading it from the JSON file. However, the structs used to store the data had lots of redundancies, which made the data flow inside inefficient;
The state machine was functioning;
Drive control was tested and proven to work.
The only problem, therefore, was incompatibility of the classes between each other. The program was successfully building, however was not able to execute as expected and crashed in the first iteration of the program loop.
Later on, the bugs were identified as solved. The final version of the program by the deadline is as it is described in this Wiki page.
Reflecting on the project as a whole, our team have identified the reasons of the failure in the final Hospital challenge. These are:
When the functionality of the classes become too complex and/or demanding in terms of computational effort, there most likely exists a library that is provides this functionality. It is easier to use the library than create all the necessary methods ourselves.
Start working on the code early in the project. Despite the general recommendation of thinking through the program structure before the first challenge (Escape room), every member of the group should start playing with the code.
Divide the tasks between the members of the group, assigning more experienced with programming members of the group with the ones who have less experience. This way the code would be more readable and clean. As the practice have shown, people with little C++ experience are able to deliver a working solution, however, it becomes harder to understand it for the rest of the group.
Destination point in front of the exit: Code snippet: Planning::getNearbyExitPoint


The StepChangeTeam offers clients from the hospitality, aviation, travel and leisure sectors a new approach to business improvement.
We are a team of highly experienced, board level business advisors that together offer the knowhow to validate and identify updates for business systems and processes to increase your bottom line.
Our work will quickly identify business issues and recommend practical ways to solve them (a bit like a management consultant). We are then able to work in-house, alongside your existing teams, to facilitate and make the changes needed. We get the job done and deliver valuable business enhancements to realise your investment.
Our agile solutions for improving performance and delivering business objectives are fast becoming a mainstream alternative to corporate management consultancy.