text:
The Privileged Poor
~ A Basic Bitch Clothing Store
Daily Lesson Plan — Music and Math; avoid euphemisms exercise
23 Thursday Apr 2020
Posted by Alive Juice Bar in Uncategorized
Rhythm and Melody
(Ability to read music not necessary to do these exercises).
Listen to song below. First, follow the rhythm. How many beats are there in a measure? Those who haven't studied music, you can still figure out what a measure is and how many beats are in there. Listen for patterns that are repeated throughout the song. The song is neatly structured. Think of a measure as containing one breathful of sounds and ideas.
Next, graph the melody. Draw up and down based on the musical notes. Like this:
Don't think about it, let your body go with the flow, your instincts will guide you. Do this exercise enough and you'll become a better dancer, I promise. And you'll teach yourself how to visualize music and Math so you can understand both better. We'll go over this tomorrow and consider what makes a melody and rhythm pleasurable.
A euphemism is "a mild or indirect word or expression substituted for one considered to be too harsh or blunt when referring to something unpleasant or embarrassing." In other words, a euphemism is a polite and dangerous lie. English professor, social critic, and curmudgeon Paul Fussell on euphemisms:
The middles cleave to euphemisms not just because they're an aid in avoiding facts. They like them also because they assist their social yearnings towards pomposity. This is possible because most euphemisms permit the speaker to multiply syllables, and the middle class confuses sheer numerousness with weight and value.
I've noticed the same. The poorly educated wrongly imagine the well educated as dainty and discreet, so they end up parodying themselves when they try to act high tone. For to be well educated is to be able to confront, rather than escape from, the harsh realities of life, whether that be stepping on dog shit or death during a pandemic.
Again, some of the principles of good writing:
Be clear
Focus on your audience.
Euphemisms violate the "be honest" and "be clear" principles. It often violates the "less is more" and "be accountable" principles.
Below are a list of euphemisms. Find a simpler and more precise word for each. Example:
Quantitative Easing (euphemism)
Printing money out of thin air.
Put to sleep
Daily Lesson Plan — Intro to Probability Part 4; how to spot bad writing, euphemisms are dangerous.
Yesterday's Questions
Let's review, answers in italics:
What are the total number of possible outcomes with each roll of a six sided dice, each side uniquely numbered 1-6?
There are six possible outcomes.
What are the chances of getting a "3" on a roll of this dice?
Since "3" is on one of the six sides and there are six possible outcomes, then 1/6 is the answer.
What are the chances of getting a "3" and a "3" on two rolls of this dice?
1/6 chance of getting a "3" on first roll. 1/6 chance of getting a "3" on second roll. So 1.6 * 1/6 = 1/36.
What are the chances of getting a "4" and then a "6" and then a "2" on three rolls of this dice?
1/6 chance of getting a "4"; 1/6 chance of getting a "6" on second roll; 1/6 chance of getting a "2" on third roll. So 1/6 * 1/6 * 1/6 = 1/216
What are the chances of getting three Heads on three tosses of a coin?
1/2 * 1/2 * 1/2 = 1/8. Let's write out all possibilities so you can visualize it:
HHH HHT HTT TTT TTH THH HTH THT
The main takeaway is that each flip of a coin, each roll of a dice…is independent of all other flips and rolls. Coins and dices don't have memories. It's possible to flip a coin a million times and get Heads on all of them.
In next lesson we explore math in music.
Eliminate wordiness exercise
Possible answers to previous lesson's editing exercise in italics:
I want to utilize my skills to help grow your organization.
I want to use my skills to grow your organization. ("utilize" means to use something that's not normally used so that's not the appropriate word; "help" is redundant, no point in it being there).
She opened the envelope, which contained a confidential document inside.
She opened the envelope, which contained a confidential document. (no shit it's inside, already pointed out with word "contained").
After reading it with close scrutiny, she discovered it was written in the exact same handwriting as the mysterious note she'd received before.
After reading it with scrutiny, she discovered it was written in the same handwriting as the mysterious note she'd received. ("close" is redundant as "scrutiny" already means "close examination." "Exact" is redundant and unnecessary adverb to modify "same." "Before" is redundant, we already know that the "mysterious note" preceded the opening of this document before the "before."
The reason she knew this was because of handwriting studies in her past history.
She knew this because of past handwriting studies. ("The reason" is redundant, as is "history," we already know it's in the past).
There is currently a lively, ongoing controversy among many sociologists and other professionals who study human nature : theories are being spun and arguments are being conducted among them about what it means that so many young people—and older people, for that matter—who live in our society today are so very interested in stories about zombies.
(This is written by a fucktarded narcissistic social science academic. This shit is the norm nowadays). The controversy among those who study human nature is why so many people are interested in zombie stories.
I'll let Paul Fussell comment on number 5:
Daily Lesson Plan — Intro to Probability Part III; why adverbs are overused; less is more editing exercise.
Below are the answers (italicized) to questions from previous lesson:
What are the total number of possible outcomes with each coin toss?
Two, as there two sides to a coin
What are the chances of you, after your 25 outcomes, getting a Tail on next toss?
The first 25 outcomes are irrelevant, each toss is independent of all other tosses. Coins don't have memory or a sense of what's right and wrong. Tails is 1 possible outcome/2 total number of outcomes = 1/2
What are the chances of you getting Heads on both the next two tosses?
First ask what is probability of getting heads in the first toss. It's 1/2. What is probability of getting heads in the second toss? It's 1/2. So 1/2. 1/2*1/2=1/4 is the answer. Another way to look at it is to ask what are the possible outcomes for the two tosses?
TT HH HT TH
HH happens once out of four possible outcomes.
What are the chances of you getting Tails and then a Head in the next two tosses?
Chances of getting Tails in first toss is 1/2. Chances of getting Heads in second toss is 1/2. So 1/2*1/2=1/4. Same approach as one used in question 3.
Today's Questions
What are the total number of possible outcomes with each roll of a six sided dice?
Editing Bad Writing Exercise — Adverbs
Yesterday's exercise:
The following exercise will help you answer that question. Improve the following sentences by removing an adverb:
Stacy has a really nice ass.
This book is rather boring.
Jim is quite handsome
This is simply unacceptable.
The cabin is somewhat far from here.
I can sorta do that.
It's terribly cold in here.
I generally don't go to the movies often.
This is absolutely terrible.
She's a fairly good artist.
Compare what your revisions with the originals. How are they different? We'll go over this next lesson.
Let's compare, edited version in italics:
Stacy has a nice ass.
This book is boring.
Jim is handsome
This is unacceptable.
You seriously must be joking.
You must be joking.
I struggle when doing that.
It's cold in here.
I don't go to the movies often.
This is terrible.
She's a decent artist.
Which version sounds more confident? Which version sounds as if the writer is unsure of himself. Which version sounds flaky? Which version inspires trust and provides clarity?
Less is More Exercise
Let's review "less is more" principle of good writing.
Be concise and succinct, use as few words and syllables as possible. Write only what needs to be written. It's bad manners to waste people's time. We'll practice brevity in next lesson.
Edit the following sentences:
The reason she knew this was becauseof handwriting studies in her past history.
Tip: look for redundancies and eliminate them.
Daily Lesson Plan — Intro to Probability Part II, How to Recognize Bad Writing
The game we started:
You'll need a quarter and 50 pennies to play this game. Twenty five of the pennies belong to the pupil. Pupil plays the following game:
Tosses the quarter and guesses if it lands Heads of Tails. When pupil wins, she gets a penny. When he loses, he gives a penny. Do this 25 times and write down the result of each toss.
Then you were asked:
Calculate the following:
Winning and losing percentages
Percentage of times coin lands on Heads and Tails
Here's what I got:
Winning percentage: 10 out of 25 = 10/25 = 2/5 = .400 favorable outcomes.
Losing percentage: 1.000-.400=.600
Percentage of times landed on Heads: 14/25=56%
Percentage of times landed on Tails: 100-56=44%
We'll review those questions next time.
How to Recognize Bad Writing Exercises — too many adverbs
I'm not talking about bad grammar. This is about style, and you need to be able to recognize bad writing in order to become a good writer because good writers edit their own work.
Here are a few principles of good writing:
If you don't agree with the above, then go back to sleep. If you do, let's review each:
Be honest.
Be transparent, avoid euphemisms. When you're not honest, you're not clear.
Be precise and concrete, avoid abstractions.
Focus on your audience
Never show off, the point of writing is to communicate effectively, that's it.
Use the active voice instead of passive voice.
Today's exercise involves adverbs. An adverb is used to express the degree, the extent to which something is happening. "It's very hot," with "very" as adverb describing how hot it is. (There are other types of adverbs, let's start with these). In any case, too many adverbs is a sign of bad writing. Why is that?
You must seriously be joking.
Daily Lesson Plan — Intro to Probability (good for elementary students), college admissions essay
Tosses the quarter and guesses if it lands Heads of Tails. When pupil wins, she gets a penny. When he loses, he gives a penny. Do this 25 times and write down the result of each toss. Example:
Let P = Prediction
Let A = Actual
Let H – Heads
Let T – Tails
H H
H T
And so on till 25.
Percentage of times coin lands on Heads and Tails.
That's it for today. We'll go deeper tomorrow.
College Admissions Essay (Part IV)
Here's the prompt again:
Joan of Arkansas. Queen Elizabeth Cady Stanton. Babe Ruth Bader Ginsburg. Mash up a historical figure with a new time period, environment, location, or occupation, and tell us their story.
—Inspired by Drew Donaldson, AB'16
Here's what we have thus far:
Soong Ching Linguini, daughter of renown restaurateur Alfredo Linguini and his mistress Valentina Ching, loves Italian food. She has two half sisters, the daughters of her father and his wife, Colette. The elder half-sister, Amalea Linguini loves money, so she married the owner of Olive Garden. The younger half-sister Maria Linguini loves power, so she married Italy's most influential food critic. Soong expressed her love of Italian food by apprenticing with and eventually marrying a chef known for his linguini alfredo. After he died, she took over his restaurant and was determined to improve on his linguini alfredo recipe. She searched for superior ingredients, innovated better ways to make linguini and the alfredo sauce, and experimented with more exotic uses and combinations of ingredients.
To that I add:
For instance, Soong invented a new type of mill that produces flour made from wheat and rice to make a linguini that's less sticky and a touch lighter to bite. She infused her alfredo sauce with sesame oil and cumin, which went well with the Peking duck linguini alfredo. Soong even served a peanut butter and jelly linguini alfredo, to which she adds peanut butter to the alfredo sauce and sprinkles the dish with strawberries. Such bold dishes elevated Soong's reputation to one of the greatest Italian chefs ever, and she was invited to compete on Iron Chef America, where she defeated Mario Batali and wowed the judges with pineapple linguini popsicles as dessert.
Her sister Amalea's husband, the owner and CEO of Olive Gardens, offered Soong an opportunity to create a line of supermarket products. Soong turned him down, telling him that she wants to focus on evolving and elevating Italian cuisine, not on making products for mass consumption. Last year, the Italian government declared her a national treasure, becoming the second chef in the world given that honor, the first being master sushi chef Jiro Ono of Japan. Soong continues to work at her restaurant six days a week, thinking of new ways to make and serve linguini alfredo.
The end. Let us know if you need help with your college admissions essays.
Daily Lesson Plan — LSAT logic questions explained, writing college admissions essay
13 Monday Apr 2020
Ask about Alive Juice Bar's tutoring services. Free or pay what you can. Our tutors have degrees from US News top 10 universities. We cover most subjects, from AP Physics to SAT prep to college admissions essays.
Let's move on to final three questions of the LSAT logic set. The conditions and questions:
An athlete has six trophies to place on an empty three-shelf display case. The six trophies are bowling trophies F, G, and H and tennis trophies J, K, and L. The three shelves of the display case are labelled 1 to 3 from top to bottom. Any of the shelves can remain empty. The athlete's placement of trophies must conform to the following conditions:
J and L cannot be on the same shelf
F must be on the shelf immediately above the shelf that L is on.
No single shelf can hold all three bowling trophies
K cannot be on Shelf 2
If J is on shelf 2, which of the following must also be on Shelf 2?
1. K
4. L
(Conditions are italicized) Again, write out what each letter stands for, like this:
Bowling: F, G, H
Tennis: J, K, L
Since L and J can't be on the same shelf and L can't be on the first shelf because F must be on the shelf immediately above the shelf that L is on. So now we have:
The answer is 3. F
Logic problems are easy once you have everything organized.
If Shelf 1 remains empty, which of the following must be FALSE?
1. H and F are on the same shelf
2. There are exactly three trophies on Shelf 2
3. G and H are on the same shelf
4. There are exactly two trophies on Shelf 3
5. G and K are on the same shelf
Which means K must be on the third shelf because K cannot be on shelf 2. L must be on shelf 1 and F on shelf 2 because F must be above L. J is on shelf 2 because L and J can't be on same shelf. Write it out, like this:
F, J
L, K
Let's go over the possible answers.
1. H and F are on the same shelf (This is possible)
2. There are exactly three trophies on Shelf 2 (This is possible, G and H can each go on either shelves)
3. G and H are on the same shelf (This is possible, they can both be on Shelf 3)
4. There are exactly two trophies on Shelf 3 (False because if there are two trophies on Shelf 3, then G and H must be on Shelf 2 and that's impossible because 3 bowling trophies can't be on same shelf)
5. G and K are on the same shelf (This is possible)
If L and G are on the same shelf, and if one of the shelves remains empty, which of the following must be true?
1. If H is on Shelf 3, then J is on Shelf 2.
2. K and L are on the same shelf.
4. F and K are on the same shelf.
5. If J is on Shelf 2, then H is on Shelf 1.
Since F must be placed above L, L and G can only be on Shelves 1 or 2. The only shelves that can be empty are 1 and 3.
F ? ?
L G
Now let's at each condition:
1. If H is on Shelf 3, then J is on Shelf 2. (This must be true because if H is on Shelf 3, then Shelf 1 must be empty. And since J and L can't be on the same shelf, J must be on Shelf 2)
2. K and L are on the same shelf. (If L is on shelf 2 and the Shelf 3 is empty, then K and L can't be on same shelf)
3. If H is on Shelf 2, then J is on Shelf 3. (You can still have F H J on Shelf 2 if Shelf 1 is empty)
4. F and K are on the same shelf. (If Shelf 1 is empty, then F and K can't be on same Shelf because K can't be on Shelf 2)
5. If J is on Shelf 2, then H is on Shelf 1. (If J is on Shelf 2, H can be either on Shelf 1 or 3)
Draw it out and it's not that difficult.
College Admissions Essay, University of Chicago prompt, Part III
The Soong sisters grew up in early 20th century Shanghai. The eldest, Soong Ai-ling, is known for her love of money, married the wealthiest man in China. The youngest, Soong Mei-ling, is known for her love of power, married the leader of the KMT, the man who would become president of the Republic of China. The middle sister, Soong Ching-ling, is remembered for her love of her country and she married revolutionary leader Sun Yat-Sen, the founder of modern China, against her family's wishes. Soong Ching-ling eventually broke with her family and joined the Communist Party, remaining in mainland China as her family fled to Taiwan to set up provisional government, aka Republic of China, at the conclusion of the civil war. She died as one of the most revered political figures in the history of China.
So I've taken Soong out of China and into the animated world of Ratatouille, where she is Soong Ching Linguini, daughter of Alfredo Linguini and his mistress Valentina Ching (not from movie, I made her up), daughter of an Italian seamstress and a Chinese textile manufacturer.
Then I wrote what I know about Alfredo Linguini and Valentina Ching:
Alfredo Linguini is a bumbling and sometimes kindhearted cook who, with the help of his rat friend named Remy, rises to become owner and chef of a prominent restaurant. Alfredo's real superpower is his ability to skate so in the end, he becomes a waiter on skates at the restaurant he and his wife Colette own, while his wife and pet rat, Remy, are the chefs. It was at his restaurant that he met the captivating Valentina Ching, a fashion designer and daughter of an Italian seamstress and a Chinese textile manufacturer. Alfredo meets Valentina at her boutique and there they begin an affair that produces Soong Ching Linguini, a celebrated chef renown for her linguini alfredo.
I'm ready to write the essay. Here it goes:
Soong Ching Linguini, daughter of renown restaurateur Alfredo Linguini and his mistress Valentina Ching, loves Italian food. Unlike her half sisters, the elder Amalea Linguini who loves money so she married the owner of Olive Garden, and the younger Maria Linguini who loves power so she married the owner of Buca Di Beppo, Soong apprenticed with and married a chef known for his linguini alfredo. After he died, she took over his restaurant and was determined to improve on his linguini alfredo recipe. She searched for better ingredients, better ways to make linguini and the alfredo sauce.
I'll finish this tomorrow.
Daily Lesson Plan — LSAT logic question explained Part 1 and college admissions essay practice Part 2
Let's review questions 1 and 2 from yesterday's problem set:
If G and H are on Shelf 2, which of the following must be true?
1. K is on Shelf 1
2. L is on Shelf 2
3. J is on Shelf 3
4. G and J are on the same shelf
5. F and K are on the same shelf
Write it out like this:
(Conditions are italicized) Since G and H are bowling trophies, and no single shelf can hold all three bowling trophies, then F, a bowling trophy, can't be on shelf 2. Which means tennis trophy F must be on shelf 1 because it can't be on shelf 3 if it's to satisfy condition that F must be on the shelf immediately above the shelf that L is on. Which means L, a tennis trophy, is on second shelf. The answer is 2, tennis trophy L is on shelf 2.
If no tennis trophies are on Shelf 3, which pair of trophies must be on the same shelf?
1. F and G
2. L and H
3. L and G
4. K and J
5. G and H
(Question two is not related to question one, don't build off of the first question). If no tennis trophies are on third shelf, then tennis trophy L must be on second shelf and tennis trophy F must be on first shelf because F must be on the shelf immediately above the shelf that L is on. Since J and L (both tennis trophies) cannot be on the same shelf, and L is on second shelf, J must be on first shelf because no tennis trophies can be on third shelf. If tennis trophy K can't be on second shelf, and no tennis trophy can be on third shelf, then it must be on first shelf. So:
K, J, F
?, ?, L
Answer is 4. K and J.
We'll do the remaining questions tomorrow.
College Essay Writing Exercise Part II
Again, the University of Chicago essay prompt:
Whom did you pick? Whom or what did you mash it with? I picked Soong Ching-ling and mashed her with the fictional Alfredo Linguini, the deuteragonist of the animated foodie film, Ratatouille. Below is what I know about Soong (surname comes first in Chinese), edited from first version:
So I've taken Soong out of China and into the animated world of Ratatouille, where she is not Soong Ching Linguini, daughter of Alfredo Linguini and his mistress Valentina Ching (not from movie, I made her up), daughter of an Italian seamstress and a Chinese textile manufacturer.
Now I write what I know about Alfredo Linguini and Valentina Ching:
Point is, just write, you can edit later. We'll finish this essay tomorrow.
Daily Lesson Plan — Logic and Advanced Essay Writing (University of Chicago's essay prompt)
Another way to improve Math skills is to practice solving logic problems. Here's a set of LSAT (Law School Admissions Test) problems made up by Kaplan, a leading test prep center:
We'll review some of the questions tomorrow. Tip: use a pencil and a notebook to sketch the question. It'll help you visualize the problem.
Advanced Essay Writing
Here's a playful college admissions essay prompt, from The University of Chicago:
What's the first step? For me, I list historical figures who intrigue me. Here's my list, I limited it to nine:
Peter Abelard
Soren Kierkegaard
Joan of Ark
Soong Ching-ling
Ching Shih
Franz Fanon
The one I really want to write about is Soong Ching-ling. Next I write down what she's known for.
The Soong sisters grew up in early 20th century Shanghai. The eldest, Soong Ai-ling, is known for her love of money, so she married the wealthiest man in China. The youngest, Soong Mei-ling, is known for her love of power, so she married the leader of the KMT, the man who would become president of the Republic of China. The middle sister, Soong Ching-ling, is remembered for her love of her country and she married revolutionary leader Sun Yat-Sen, the founder of modern China, against her family's wishes. Soong Ching-ling eventually broke with her family and joined the Communist Party, remaining in mainland China as her family fled to Taiwan to set up provisional government, aka Republic of China, at the conclusion of the civil war.
The point is to keep it simple and write write write. Don't think too much, and less is more.
Now we have to fuse her with something or another. I'm open to anything, time, location, another person, I don't mind. I'm going to use the search engine for ideas. I search for: "words that begin with ling." That takes me to a site that lists many words that begin with "ling." Here are a few that intrigue me:
Next I search: "cities that begin with ling." I go to site with list but don't find anything interesting, only a few small cities, all but one in China. I'm going to pick "linguini" then and make this a foodie story. I check to see if there's anyone named Linguini and sure enough, the fictional Alfredo Linguini, the deuteragonist of the animated foodie film, Ratatouille. So, I introduce:
Soong Ching Linguini, the daughter of Alfredo Linguini and his mistress Valentina Ching.
We'll add to this story tomorrow. Where are you at in your story?
Daily Lesson Plan — Visualizing fractions drill to develop intuition about numbers
Link to fraction drills: https://www.math-drills.com/fractions.php
Do each within 80 seconds, timed. Do all five, then grade all five. Repeat until mastery, 100 percent correct.
Visualize fractions verbal drill
Most people finish the problems by following a process, never stopping to think about what, for instance, 1/2 * 5/8 means. Or what 3/4 + 3/4 means, most just want to get the answer right. That's when Math becomes boring, when it's just a bunch of processes to memorize.
To fix that bad habit, you're going to pick two questions from each worksheet and write about what's happening in each question. Example, for 1/2*5/4=5/8, it means
My apple pie plus another quarter of an apple pie was divided in half and given to Jimmy.
Another example, 4/3+1/2=1 5/6 means
I have one apple pie plus 1/3 of an apple pie. Amy gives me half of her apple pie so now I have almost two whole apple pies, one is missing one slice if the pie is cut into six slices.
This drill will help you visualize numbers when you do arithmetic so you can better understand what's going on when you manipulate numbers.
Daily Lesson Plan — Answers and Explanations to Missing Numbers Sequence Exercise and
The Privileged Poor, once the blog site of a now defunct clothing store, is now the site of the Alive Juice Bar tutoring service. We'll be posting daily lesson plans to help students get through indefinite school closures.
Answers and Explanations to Fill in Missing Numbers Exercise
1, 2, 4, x, 16, 32, 64
30, 23, x, 9
84, x, 66, 57
63, 61, 59, x
32, 40, 24, 16, 24, x, 8
1, 2, 6, 24, x
x, 12, 18, 10, 6, 14, 5, 0, 10 (this one is very difficult, break it into three parts to find pattern)
8, 25, 52, 89, x
1, 2, 4, 8, 16, 32, 64 (pattern is next number is double of previous number)
30, 23, 16, 9 (difference of 7 between each number)
84, 75, 66, 57 (difference of 9 between each number)
32, 40, 24, 16, 24, 8, 8
Group A: 32, 40, 24, 16
Group B: 16, 24, x, 8
What are the similarities in pattern? I see that 32 is double of 16 in Group A. And 16 is double of 8 in Group B. 40 is 8 more than 32 in Group A. 24 is 8 more than 32 in group B. So if 40 is 16 more than 24 in Group A, then 24 must be 16 more than x in Group B. 24-16 = 8.
1, 2, 6, 24, 120 (pattern is 1×2 = second number, 2×3=third number, 6×4=fourth number, 24×5=fifth number, 120)
Again, break sequence into parts. Which group doesn't make sense? For me, it's 5,0,10 sequence that's odd. Now figure out the relationship between numbers in this sequence. I see 5-5=second number and 5+5=third number. Let's see if this works with other groups. So,
10, 6, 14. Hmmm, 10-10 doesn't work. Let's still try to get to six using subtraction, 10-4=6, the second number. And 10+4=14, the third number! New theory, the first group will be subtracting and adding by 3. Let's try:
15-3=12. And 15+3=18!
Difference between 8 and 25 is 17.
Difference between 25 and 52 is 27
Difference between 89 and 136 is 47.
Break difficult math problems into parts and then play with it.
To develop your intuition for patterns, practice basic arithmetic drills we provide in the first few lessons.
Make your own missing number problems.
Notice we often ask students to make their own questions? This not only trains them to be responsible for their own educations, it forces them to think about education from a teacher's point of view. It's training them to see the world from different perspectives.
Make 10 of your own problems. Example:
2, 100, 5, 103, x, 106
(answer is 8, pattern is difference of 3 between every other number).
Scrabble Anagram Drill
P, N, O, I, A, S, Y
Make 5 words with the above seven letters. Words must contain at least 3 letters. Those of you with advanced verbal skills, bump it up to at least 4 letters.
Example: soapy
20226 Ballinger Way NE
Shoreline, Washington
Daily Lesson Plan — Music and Math; avoid euphemisms exercise April 23, 2020
Daily Lesson Plan — Intro to Probability Part 4; how to spot bad writing, euphemisms are dangerous. April 22, 2020
Daily Lesson Plan — Intro to Probability Part III; why adverbs are overused; less is more editing exercise. April 21, 2020
Daily Lesson Plan — Intro to Probability Part II, How to Recognize Bad Writing April 19, 2020
Daily Lesson Plan — Intro to Probability (good for elementary students), college admissions essay April 14, 2020
Archives Select Month April 2020 (13) March 2020 (8) August 2018 (1) February 2017 (1) January 2017 (1) January 2016 (1) August 2015 (1) February 2015 (2)
Follow The Privileged Poor on WordPress.com


text:
New research findings from Princeton University
Researchers develop technique to track yellow fever virus replication
Posted on March 14, 2017 March 14, 2017 by Catherine Zandonella
Infection with a strain of yellow fever virus (YFD-17D) in mouse liver. The liver of a mouse whose immune cells lack the immune signaling component known as STAT1 shows severe lymphocyte infiltration and inflammation, as well as necrosis, after infection with YFV-17D. Credit: Florian Douam and Alexander Ploss
By Staff, Department of Molecular Biology
Researchers from Princeton University's Department of Molecular Biology have developed a new method that can precisely track the replication of yellow fever virus in individual host immune cells. The technique, which is described in a paper published March 14 in the journal Nature Communications, could aid the development of new vaccines against a range of viruses, including Dengue and Zika.
Yellow fever virus (YFV) is a member of the flavivirus family that also includes Dengue and Zika virus. The virus, which is thought to infect a variety of cell types in the body, causes up to 200,000 cases of yellow fever every year, despite the widespread use of a highly effective vaccine. The vaccine consists of a live, attenuated form of the virus called YFV-17D, whose RNA genome is more than 99 percent identical to the virulent strain. This one percent difference in the attenuated virus' genome may subtly alter interactions with the host immune system so that it induces a protective immune response without causing disease.
To explore how viruses interact with their hosts, and how these processes lead to virulence and disease, Alexander Ploss, assistant professor of molecular biology, and colleagues at Princeton University adapted a technique — called RNA Prime flow — that can detect RNA molecules within individual cells. They used the technique to track the presence of replicating viral particles in various immune cells circulating in the blood of infected mice. Mice are usually resistant to YFV, but Ploss and colleagues found that even the attenuated YFV-17D strain was lethal if the transcription factor STAT1, part of the antiviral interferon signaling pathway, was removed from mouse immune cells. The finding suggests that interferon signaling within immune cells protects mice from YFV, and that species-specific differences in this pathway allow the virus to replicate in humans and certain other primates but not mice.
Accordingly, YFV-17D was able to replicate efficiently in mice whose immune systems had been replaced with human immune cells capable of activating interferon signaling. However, just like humans immunized with the attenuated YFV vaccine, these "humanized" mice didn't develop disease symptoms when infected with YFV-17D, allowing Ploss and colleagues to study how the attenuated virus interacts with the human immune system. Using their viral RNA flow technique, the researchers determined that the virus can replicate inside certain human immune cell types, including B lymphocytes and natural killer cells, in which the virus has not been detected previously. The researchers found that the panel of human cell types targeted by the virus changes over the course of infection in both the blood and the spleen of the animals, highlighting the distinct dynamics of YFV-17D replication in the human immune system.
The next step, said Florian Douam, a postdoctoral research associate in the Department of Molecular Biology and first author on the study, is to confirm YFV replication in these subsets of immune cells in YFV-infected patients and in recipients of the YFV-17D vaccine. Viral RNA flow now provides the means to perform such analyses, Douam said.
The researchers also plan to study whether the virulent and attenuated strains of yellow fever virus infect different host immune cells. The approach may help explain why some people infected with the virus die while others develop only the mildest of symptoms, as well as which changes in the YFV-17D genome weaken the virus' ability to cause disease. "This could guide the rational design of vaccines against related pathogens, such as Zika and Dengue virus," Ploss said.
This work was supported by a grant from the Health Grand Challenge program from Princeton University, the New Jersey Commission on Cancer Research (Grant No. DHFS16PPC007), the Genentech Foundation and Princeton University's Anthony Evnin '62 Senior Thesis Fund.
Florian Douam, Gabriela Hrebikova, Yentli E. Soto Albrecht, Julie Sellau, Yael Sharon, Qiang Ding and Alexander Ploss. Single-cell tracking of flavivirus RNA uncovers species-specific interactions with the immune system dictating disease outcome. Nature Communications. 8: 14781. (2017). doi: 10.1038/ncomms14781
Tagged Genentech Foundation, health, immune system, molecular biology, New Jersey Commission on Cancer Research, vaccines, virology
Researchers correlate incidences of rheumatoid arthritis and giant cell arteritis with solar cycles (BMJ Open)
Posted on June 15, 2015 June 15, 2015 by Catherine Zandonella
Coronal mass ejection hurling plasma from the sun. (Image credit: NASA)
By John Greenwald, Princeton Plasma Physics Laboratory
What began as a chat between husband and wife has evolved into an intriguing scientific discovery. The results, published in May in BMJ (formerly British Medical Journal) Open, show a "highly significant" correlation between periodic solar storms and incidences of rheumatoid arthritis (RA) and giant cell arteritis (GCA), two potentially debilitating autoimmune diseases. The findings by a rare collaboration of physicists and medical researchers suggest a relationship between the solar outbursts and the incidence of these diseases that could lead to preventive measures if a causal link can be established.
RA and GCA are autoimmune conditions in which the body mistakenly attacks its own organs and tissues. RA inflames and swells joints and can cause crippling damage if left untreated. In GCA, the autoimmune disease results in inflammation of the wall of arteries, leading to headaches, jaw pain, vision problems and even blindness in severe cases.
Inspiring this study were conversations between Simon Wing, a Johns Hopkins University physicist and first author of the paper, and his wife, Lisa Rider, deputy unit chief of the Environmental Autoimmunity Group at the National Institute of Environmental Health Sciences in the National Institutes of Health, and a coauthor. Rider spotted data from the Mayo Clinic in Rochester, Minnesota, showing that cases of RA and GCA followed close to 10-year cycles. "That got me curious," Wing recalled. "Only a few things in nature have a periodicity of about 10-11 years and the solar cycle is one of them."
Wing teamed with physicist Jay Johnson of the U.S. Department of Energy's Princeton Plasma Physics Laboratory, a long-time collaborator, to investigate further. When the physicists tracked the incidence of RA and GCA cases compiled by Mayo Clinic researchers, the results suggested "more than a coincidental connection," said Eric Matteson, chair of the division of rheumatology at the Mayo Clinic, and a coauthor. This work drew upon previous space physics research supported by the DOE Office of Science.
The findings found increased incidents of RA and GCA to be in periodic concert with the cycle of magnetic activity of the sun. During the solar cycle, dramatic changes that can affect space weather near Earth take place in the sun. At the solar maximum, for example, an increased number of outbursts called coronal mass ejections hurl millions of tons of magnetic and electrically charged plasma gas against the Earth's magnetosphere, the magnetic field that surrounds the planet. This contact whips up geomagnetic disturbances that can disrupt cell phone service, damage satellites and knock out power grids. More importantly, during the declining phase of the solar maximum high-speed streams develop in the solar wind that is made up of plasma that flows from the sun. These streams continuously buffet Earth's magnetosphere, producing enhanced geomagnetic activity at high Earth latitudes.
The research, which tracked correlations of the diseases with both geomagnetic activity and extreme ultraviolet (EUV) solar radiation, focused on cases recorded in Olmsted County, Minnesota, the home of the Mayo Clinic, over more than five decades. The physicists compared the data with indices of EUV radiation for the years 1950 through 2007 and indices of geomagnetic activity from 1966 through 2007. Included were all 207 cases of GCA and all 1,179 cases of RA occurring in Olmsted County during the periods and collected in a long-term study led by Sherine Gabriel, then of the Mayo Clinic and now dean of the Rutgers Robert Wood Johnson Medical School.
Correlations proved to be strongest between the diseases and geomagnetic activity. GCA incidence — defined as the number of new cases per capita per year in the county — regularly peaked within one year of the most intense geomagnetic activity, while RA incidence fell to a minimum within one year of the least intense activity. Correlations with the EUV indices were seen to be less robust and showed a significantly longer response time.
The findings were consistent with previous studies of the geographic distribution of RA cases in the United States. Such research found a greater incidence of the disease in sections of the country that are more likely to be affected by geomagnetic activity. For example, the heaviest incidence lay along geographic latitudes on the East Coast that were below those on the West Coast. This asymmetry may reflect the fact that high geomagnetic latitudes — areas most subject to geomagnetic activity — swing lower on the East Coast than on the opposite side of the country. While Washington, D.C., lies just 1 degree farther north than San Francisco geographically, for example, the U.S. capital is 7 degrees farther north in terms of geomagnetic latitude.
Although the authors make no claim to a causal explanation for their findings, they identify five characteristics of the disease occurrence that are not obviously explained by any of the currently leading hypotheses. These include the east-west asymmetries of the RA and GCA outbreaks and the periodicities of the incidences in concert with the solar cycle. Among the possible causal pathways the authors consider are reduced production of the hormone melatonin, an anti-inflammatory mediator with immune-enhancing effects, and increased formation of free radicals in susceptible individuals. A study of 142 electrical power workers found that excretion of melatonin — a proxy used to estimate production of the hormone — was reduced by 21 percent on days with increased geomagnetic activity.
Confirming a causal link between outbreaks of RA and GCA and geomagnetic activity would be an important step towards developing strategies for mitigating the impact of the activity on susceptible individuals. These strategies could include relocating to lower latitudes and developing methods to counteract direct causal agents that may be controlled by geomagnetic activity. For now, say the authors, their findings warrant further investigations covering longer time periods, additional locations and other autoimmune diseases.
PPPL, on Princeton University's Forrestal Campus in Plainsboro, N.J., is devoted to creating new knowledge about the physics of plasmas — ultra-hot, charged gases — and to developing practical solutions for the creation of fusion energy. Results of PPPL research have ranged from a portable nuclear materials detector for anti-terrorist use to universally employed computer codes for analyzing and predicting the outcome of fusion experiments. The Laboratory is managed by the University for the U.S. Department of Energy's Office of Science, which is the largest single supporter of basic research in the physical sciences in the United States, and is working to address some of the most pressing challenges of our time. For more information, please visit science.energy.gov.
This work was funded from NIH grants (NIAMS R01 AR046849, NIA R01 AG034676). This research was supported in part by the Intramural Research Program of the NIH, National Institute of Environmental Health Sciences. This work has also benefited from the works funded by NSF grants (ATM-0802715, AGS-1058456, ATM09002730, AGS1203299), NASA grants (NNX13AE12G, NNH09AM53I, NN09AK63I, NNH11AR07I), and DOE contract (DE-AC02-09CH11466).
Read the abstract
Wing, Simon; Rider, Lisa G.; Johnson, Jay R.; Miller, Frederick W.; Matteson, Eric L.; Crowson, Cynthia S.; Gabriel, Sherine E. "Do solar cycles influence giant cell arteritis and rheumatoid arthritis incidence?" BMJ Open, May 2015
Tagged health, plasma, PPPL, solar storm
The Research at Princeton blog is published by the Office of the Dean for Research
View PrincetonUniversityResearch's profile on Facebook
View @princetonideas's profile on Twitter
Categories Select Category Research
Archives Select Month February 2019 January 2019 November 2018 September 2018 August 2018 June 2018 March 2018 February 2018 December 2017 October 2017 August 2017 July 2017 May 2017 April 2017 March 2017 February 2017 January 2017 December 2016 November 2016 September 2016 August 2016 July 2016 June 2016 May 2016 April 2016 March 2016 February 2016 January 2016 December 2015 November 2015 October 2015 September 2015 August 2015 July 2015 June 2015 May 2015 April 2015 March 2015 January 2015 December 2014 November 2014 October 2014 September 2014 August 2014 July 2014 June 2014 May 2014 April 2014 March 2014 February 2014 January 2014 December 2013 November 2013 October 2013 September 2013 August 2013 July 2013 June 2013 May 2013 April 2013 March 2013 February 2013 January 2013 December 2012 November 2012 June 2012 May 2012 April 2012

redpajama_set_name: RedPajamaCommonCrawl


text:
"I would suggest that in the morning you drink some tea or coffee and keep busy working until 1pm. If you usually exercise, then you may want to exercise at noon. Then eat a moderate amount of (healthy) food right after you exercise (e.g., 600 calories), and eat the rest of your food during a 3-4 hour time window in the late afternoon to early evening. The biggest benefit is that your mind will be clearer and you will be more productive during the entire morning."
These affect your brain and spine, as well as the nerves that link them together. Epilepsy is one, but others may be helped by a ketogenic diet as well, including Alzheimer's disease, Parkinson's disease, and sleep disorders. Scientists aren't sure why, but it may be that the ketones your body makes when it breaks down fat for energy help protect your brain cells from damage.
It doesn't matter when you start your 8–hour eating period. You can start at 8am and stop at 4pm. Or you start at 2pm and stop at 10pm. Do whatever works for you. I tend to find that eating around 1pm and 8pm works well because those times allow me to eat lunch and dinner with friends and family. Breakfast is typically a meal that I eat on my own, so skipping it isn't a big deal.
Wilder's colleague, paediatrician Mynie Gustav Peterman, later formulated the classic diet, with a ratio of one gram of protein per kilogram of body weight in children, 10–15 g of carbohydrate per day, and the remainder of calories from fat. Peterman's work in the 1920s established the techniques for induction and maintenance of the diet. Peterman documented positive effects (improved alertness, behaviour, and sleep) and adverse effects (nausea and vomiting due to excess ketosis). The diet proved to be very successful in children: Peterman reported in 1925 that 95% of 37 young patients had improved seizure control on the diet and 60% became seizure-free. By 1930, the diet had also been studied in 100 teenagers and adults. Clifford Joseph Barborka, Sr., also from the Mayo Clinic, reported that 56% of those older patients improved on the diet and 12% became seizure-free. Although the adult results are similar to modern studies of children, they did not compare as well to contemporary studies. Barborka concluded that adults were least likely to benefit from the diet, and the use of the ketogenic diet in adults was not studied again until 1999.[10][14]
The remaining calories in the keto diet come from protein — about 1 gram (g) per kilogram of body weight, so a 140-pound woman would need about 64 g of protein total. As for carbs: "Every body is different, but most people maintain ketosis with between 20 and 50 g of net carbs per day," says Mattinson. Total carbohydrates minus fiber equals net carbs, she explains.
More good news: Snacks are totally allowed (and I'm not just talking about carrot sticks). There are plenty of packaged options out there designed for keto fans. FATBAR is one of them. These snack bars have 200 calories, 16 grams of fat, and four grams of net carbs. They're also plant-based and are made with almond or cashew butter, cocoa butter, coconut, pea protein, sunflower seeds, and chia seeds.
Smelling fresh green apples, bananas and pears can curb appetite and make sugary desserts less appealing, studies have shown. The scientists suggest this is because the produce makes you subconsciously think about making healthier choices. If a fruit basket on your desk attracts too many flies, try a simpler idea, like a shea butter-based scented lotion, which will have the same effect. (If you're eating your apple instead of sniffing it, go for the red one.)
Those studies above, in working with small sample sizes, and different types of fasting than recommended here, would lead me to believe that fasting affects men and women differently, and that many of the weight loss benefits associated with intermittent fasting (that affect insulin and glucose responses) work positively for men and negatively for women.
Over 8–10 mmol/l: It's normally impossible to get to this level just by eating a keto diet. It means that something is wrong. The most common cause by far is type 1 diabetes, with severe lack of insulin. Symptoms include feeling very sick with nausea, vomiting, abdominal pain and confusion. The possible end result, ketoacidosis, may be fatal and requires immediate medical care. Learn more
When your body burns its stores of fat, it can be hard on your kidneys. And starting a ketogenic diet -- or going back to a normal diet afterward -- can be tricky if you're obese because of other health issues you're likely to have, like diabetes, a heart condition, or high blood pressure. If you have any of these conditions, make diet changes slowly and only with the guidance of your doctor.
Most of us have contemplated going on a diet. When we find a diet that appeals to us, it seems as if it will be a breeze to do. But when we get into the nitty gritty of it, it becomes tough. For example, I stay on a low–carb diet almost all the time. But if I think about going on a low–fat diet, it looks easy. I think about bagels, whole wheat bread and jelly, mashed potatoes, corn, bananas by the dozen, etc. — all of which sound appealing. But were I to embark on such a low–fat diet I would soon tire of it and wish I could have meat and eggs. So a diet is easy in contemplation, but not so easy in the long–term execution.
It all depends on you. Researchers suspect that the 16:8 diet isn't quite as effective for weight loss as more extreme forms of fasting, like alternate-day fasting. On the other hand, studies suggest that alternate-day fasting doesn't produce better weight loss results compared to daily calorie restriction. Plus, eating only every other day is very restrictive and can be tougher to stick to.
Grazing between meals used to be on the weight-loss hit list. But nutritionists now know that it's better to satisfy a craving with healthy grub than ignore it and risk a junk-food binge later. The best picks are filling, protein-packed snacks, such as one stick of string cheese, a tablespoon of peanut butter on a piece of fruit, or a medium-size bowl of edamame.
This principle involves eating low-energy-dense foods and can help you lose weight by feeling full on fewer calories. Healthy choices in each of the other food groups in moderate amounts make up the rest of the pyramid — including whole-grain carbohydrates, lean sources of protein such as legumes, fish and low-fat dairy, and heart-healthy unsaturated fats.


text:
Q: Subselect dependent on first select value I wish to do a select of all data matching a particular id.  I would also like to return a selection of all data matching the alt_id field in the first select.
This example works fine for the main query of two tables and their data based on the contact_id I feed it, in this case '1':
SELECT e_contacts.*, e_credentials.*
FROM e_contacts, e_credentials,
WHERE e_contacts.contact_id = '1' AND
e_credentials.contact_id = e_contacts.contact_id
ORDER BY e_contacts.contact_id

However, one of the fields in e_contacts is called alt_contact_id (wife or friend) which when holds a value, requires I get both contacts data.
So, I would like to have a second row of data returned for that alt_contact_id's data which exists in the same table.  In other words we'll be requerying the same select statement but feeding it e_contacts.contact_id = alt_contact_id found in the first select (if alt_contact_id has a value of course).
This is the table structure:

I'm completely uncertain how to accomplish it.

A: You can use 2 subqueries, one joining with the contact_id and another joining with the alt_contact_id. Then UNION them and ORDER BY:
SELECT cont.*, cred.*, 'main' AS contact_type
FROM e_contacts AS cont
  JOIN e_credentials AS cred
    ON cred.contact_id = cont.contact_id
WHERE cont.contact_id = 1

UNION ALL

SELECT cont.*, cred.*, 'alternate'
FROM e_contacts AS cont
  JOIN e_credentials AS cred
    ON cred.contact_id = cont.alt_contact_id
WHERE cont.contact_id = 1

ORDER BY contact_id ;

If you want this for all contacts, just remove the two WHERE clauses.

redpajama_set_name: RedPajamaStackExchange


text:
Who Will Replace Darcey Bussell On 'Strictly Come Dancing'? The Rumour Mill Is Already Churning
By Aoife Hanna
Strictly Come Dancing/BBC
News broke yesterday that Darcey Bussell is leaving Strictly Come Dancing, and, of course, the UK went wild. The shock announcement has really shaken things up and leaves a huge gap in the judging panel, in which she is one of the biggest personalities. Bussell, a former prima ballerina, will be sorely missed, but you know what is really fun? Speculating about who will be her replacement on the next season of the hit dancing show. So who will replace Darcey Bussell on Strictly Come Dancing?
The Sun are reporting that one of the front runners for the coveted spot is the one and only Anton Du Beke. Which would be a really good fit, if you think about it. A source close to the show spoke to The Sun and said:
"Loveable Anton is the cast's favourite choice to take over from Darceyas judge. Some on the show believe it's time for him to hang up his dancing shoes and sit on the other side of the table. Anton is a well-loved professional but it's felt by many that his glory years are over. He's often placed with the novelty act and has no chance of getting near the Glitter Ball. He isn't a real contender anymore."
I contacted a Strictly rep at the BBC to get their thoughts on the Du Beke speculation, but they have declined to comment.
Du Beke has been a fan favourite since the very beginning of the show. As an OG professional on the Saturday night crowd pleaser, he knows the show better than anyone. So OMG this is like maybe his time to shine.
Of course, in classic UK style, the bookies have weighed in on the potential winner. The Express spoke to Coral about their favourites, and it seems that, at 2/1, Karen Hardy is the most likely. Hardy is a former professional on the show, taking part between 2005 and 2009. Since then, she has regularly contributed to the Strictly after show, It Takes Two. Hardy was also a hot favourite to replace Goodman before they chose Shirley Ballas, according to The Sun.
Ken McKay/Shutterstock
So, who else is in the running? According to Coral, it's Helen Richey (3/1), Gary Edwards (5/1), Iain Waite (6/1), Brendan Cole (8/1), Arlene Phillips (12/1), and even Len Goodman (16/1).
Someone who I've not seen suggested but who I think would be amazing is the one and only Scarlett Moffatt. She has been open in the past about loving to get involved with the show but being unable to because she is too experienced. It's likely the show's producers will be keen as mustard to get another female judge to fill the gap in the panel, and who better than a former professional ballroom dancer and trained dance teacher?
As nothing has been made official yet, and the show is a long way off, you have lots of time to not only practice your best cha cha cha but also to speculate about who the new judge will be.


We have all the information you need about public and private physiotherapy clinics that provide trigger point therapy in Edinburgh. Compare all the physiotherapists and contact the trigger point therapy clinic in Edinburgh that's right for you.
Enquire for a fast quote. Choose from 8 Trigger Point Therapy Clinics in Edinburgh with 5 verified patient reviews ★ find the best one for you.
Chiropractors who are registered with the General Chiropractic Council. We treat patients at our custom built clinic located in Peebles in the Scottish Borders. All chiropractors at the clinic are highly qualified and have vast experience in treating patients. A case history is taken and a thorough physical examination of the patient is conducted on the first visit. Treatments based on the findings of the examination include chiropractic adjustments, soft tissue work including trigger therapy, joint manipulation and mobilization, dry needling/acupuncture, electrotherapy, posture and exercise prescriptions and orthotic advice.
Very pleased with results. Vikki Thomson is an excellent practitioner.


text:
Q: How do I convert my simple game into an executable from a .py file? I've been trying for a long time to convert my .py file which is 100% working into a .exe file so that I can click it and run it without going into the python editor. I followed these steps: https://stackoverflow.com/a/44433442/12309053 but nothing has been working. I'm having issues when I try to run the python setup.py build line, I don't get an error it just doesn't run and outputs another line for me to input a command again. I believe to have successfully installed cx_freeze as well as pyinstaller(not sure if relevant).
I'm struggling to figure out why I can't run this command.
I did run a command prior to trying the steps listed in the other forum, which lead me to actually create build folders etc. The problem was there was no .exe file to run and there was error in the command prompt. I apologize as I forget what I ran before.
Recieve the output when running pyinstaller:
'''
  File "c:\users\jamal\appdata\local\programs\python\python38-32\lib\site- packages\PyInstaller\building\utils.py", line 653, in <genexpr>
    strip_paths_in_code(const_co, new_filename)
  File "c:\users\jamal\appdata\local\programs\python\python38-32\lib\site- packages\PyInstaller\building\utils.py", line 660, in strip_paths_in_code
    return code_func(co.co_argcount, co.co_kwonlyargcount, co.co_nlocals,
co.co_stacksize,
TypeError: an integer is required (got type bytes)


Simbios is pleased to announce Preview Release 4 of OpenMM, an extensible library that enables accelerated calculations for molecular dynamics on high-performance computer architectures, currently for high-end NVIDIA and ATI GPU cards. This release adds support for energy computations on GPUs, Ewald summation, a complete set of C and Fortran wrappers, a faster algorithm for handling constraints and many minor enhancements, including the option to select a specific CUDA device to use and a default setting so that the CPU is available for other computations when information is requested of the GPU. OpenMM is freely downloadable from http://simtk.org/home/openmm.


text:
A Case for Urban Beekeeping in Singapore
From the Voice of a Singaporean, Dec 2011
Check out Update on Bees in Singapore, Jan 2020
Yet another success story of urban beekeeping the city! Now there seems to be a no-ending discovery of urban concrete jungles buzzing with beekeeping activities on the rooftop. The number of urban rooftop beekeepers seems to be rising rapidly all over the world after the news that honeybees are dying by the millions of the mysterious Colony Collapse Disorder (CCD) which experts have attributed to multiple causes such as pesticides, diseases and parasites.
I'm surprised that a socio-cultural organization that promotes local eating and the reduction of food carbon footprint has found a platform for the honeybees on the rooftop of a 14-storey building in one of the world's most densely populated cities, Hong Kong. Nothing is too unlikely, I supposed when it comes to doing something meaningful to protect the environment.
Cosmopolitan Brooklyn, the most populous of New York City's five boroughs, saw hundreds of residents inspired by the plight of bees and climbing to their rooftops to keep and help save the bees. I believe when the authorities reversed a long-standing ban on urban beekeeping in 2010, more New Yorkers revelled in celebrations than grimaced with disapproval. Perhaps what is most delightful is the honey bee farm atop a building in most posh and expensive Ginza district at the heart of the Tokyo that houses trendy stores such as the Matsuya department store, Gucci, Apple. Etc. The honey produced there is used to make cakes and pastries sold at famous patisseries and confectionaries.
Rooftop urban beekeeping in Singapore may sound out of this world for most people (especially when more integrated resorts, iconic modern architecture, Formula One races, casinos are springing up all over), but there are too many cases in point to prove that urban beekeeping is a hobby that anyone can endeavour even for those dwelling in the most crowded cities. Considering the amount of flora and the number of high rise apartments and tall skyscrapers in Singapore, the potential rooftop food production and beekeeping appears to be tremendous (but then, what do I know?). Also, there is a growing recognition that honeybees living in cities tend to produce more and better honey than those kept in the countryside and rural hives. With summer all year round, the honeybees will always be busy and we would be enjoying a constant flow of nectar harvested from the nectar and pollen rich flowers and plants in the nature reserves, designated parks, community gardens, and housing estates.
Make Singapore a green oasis for the honey bee, educate the people on the importance of biodiversity and help them overcome the fear of the master pollinator of our ecosystem. And make beekeeping a community activity, bring back a slice of nature to the urban sprawl and into our lives, so that we city dwellers can also tend our own hives, don netted hoods and white jumpsuits, stack up beehives dripping with honey, crank the centrifugal machine, and eat our own local, raw and unpasteurised glistening golden liquid made in Singapore. What a jubilant day this will be for all nature lovers, bee fans, and honey enthusiasts!
August 2018 (Updated)
Meet Xavier Tan, Singapore's Urban Beekeeper (2020)
Check out our update on the state of bees and beekeeping in Singapore: 7 FAQs on Bees in Singapore [Must See #7 Answer]
Read Related Pages
1. Can We Have the Honey Bee Back, Please?
2. Keeping Bees in Singapore
3. Start Beekeeping in Singapore
4. Bee Removal in Singapore
5. John Smith's Posting on "Keeping Bees in Singapore"
6. Status of Honey in Singapore
7. In Search of Honey and Bees in Hong Kong
End of "A Case for Urban Beekeeping in Singapore". Back to "Can We Have the Honey Bee Back, Please?"


Our village of Twin Bridges, is located in the Ruby Valley of SW Montana. We have, approximately, 500 year round residents.
Our economy is, primarily, based on agriculture (farming & ranching) as well as tourism. We see a bustling Summer Season for both industries with a bit of a slow down during the Winter... which gives our hard working locals a chance to enjoy why we live in this beautiful valley!
We love our friendly hard working neighbors and are eager to share them with you!


The prize for the winner consists of the following; return economy flights from a UK airport to Ibiza, 7 nights, all-inclusive accommodation and return overseas transfers for two adults. Accommodation will be based on two adults sharing a twin or double room and a minimum of 3 star rated. Subject to availability, the winner will be able to choose their departure airport.
Any departure and/or arrival taxes.
Ground transfers to and from the UK departure airport.
Excursions, attractions, treatments and car hire.
Travel insurance, spending money and any other personal expenses.
From the date of being awarded the holiday giveaway, the chosen holiday must be booked within three months and travel must be within a twelve month period or the prize will be withdrawn. Icelolly.com reserves the right to specify the exact departure airport, resort, and accommodation. It is the responsibility of the prize winner to ensure that all passengers have valid passports, travel insurance and obtain any necessary vaccinations and visas for their trip.
The prize excludes departures from the 22nd July 2017 to 31 st August 2017, 18th December 2017 to 1 st January 2018, 23 rd March 2018 to 6th April 2018 and the 20th July 2018 to the 31 st August 2018.
The prize-winner must be a UK resident and aged 18 years or over at the time of entry.
Once the booking has been confirmed, any alteration to the booking will incur administrative charges, payable by the holiday prize winner.
All elements of the prize are subject to availability, non-transferable and there are no cash alternatives.
The winner and their guests may be required to participate in publicity including being featured in icelolly.com social media.


Your search of "Category: This Site" ended with 59 results.
I'm providing a link to Dime Brothers, just in case you'd like to visit the site. Ha ha. There's some html code you need for links that Steve happily provided (and I think my brother, too, but for MySpace usage).
Here ye, here ye! Or hear y--just listen up.
Next week is Homer Simpson 2 Cents week! So every day, starting on Sunday, I'm gonna throw up a new Homer Simpson quote. Unless I forget, for which case the quote will be, "D'oh!!"
...has now been incorporated into DimeBrothers.com! So, feel free to keep posting general posts at this forum, but know now that posts regarding specific articles can now be done within that article's webpage!
The sweet nectar of an article is coming your way soon! Don't despair, website!


text:
<?php

use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
use Cake\Routing\Router;

Router::reload();

Router::scope('/', function(RouteBuilder $routes) {
	$routes->fallbacks(DashedRoute::class);
});

redpajama_set_name: RedPajamaGithub


text:
<!DOCTYPE html>
<!--
Copyright 2016 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->

<link rel="import" href="/tracing/core/test_utils.html">
<link rel="import" href="/tracing/importer/find_input_expectations.html">
<link rel="import" href="/tracing/metrics/system_health/power_metric.html">
<link rel="import" href="/tracing/model/user_model/idle_expectation.html">
<link rel="import" href="/tracing/model/user_model/load_expectation.html">
<link rel="import" href="/tracing/model/user_model/user_expectation.html">
<link rel="import" href="/tracing/value/histogram_set.html">

<script>
'use strict';

function containsData(histograms, name) {
  for (const value of histograms) {
    if (value.name === name) {
      return (value.running !== undefined);
    }
  }

  return undefined;
}

function getMetricValueCount(histograms, name) {
  for (const value of histograms) {
    if (value.name === name && value.running !== undefined) {
      return value.running.count;
    }
  }

  return undefined;
}

function getMetricValueSum(histograms, name) {
  for (const value of histograms) {
    if (value.name === name && value.running !== undefined) {
      return value.running.sum;
    }
  }

  return undefined;
}

function getMetricValueMin(histograms, name) {
  for (const value of histograms) {
    if (value.name === name && value.running !== undefined) {
      return value.running.min;
    }
  }

  return undefined;
}

function getMetricValueAvg(histograms, name) {
  for (const value of histograms) {
    if (value.name === name && value.running !== undefined) {
      return value.running.mean;
    }
  }

  return undefined;
}

function getMetricValueMax(histograms, name) {
  for (const value of histograms) {
    if (value.name === name && value.running !== undefined) {
      return value.running.max;
    }
  }

  return undefined;
}

tr.b.unittest.testSuite(function() {
  test('powerMetric_computesChromeBoundsCorrectly', function() {
    // Tests if Chrome bounds are computed correctly when there
    // are both browser and renderer threads in the trace.
    const model = tr.c.TestUtils.newModel((model) => {
      const rendererProcess = model.getOrCreateProcess(1234);
      const rendererThread = rendererProcess.getOrCreateThread(1);
      rendererThread.name = 'CrRendererMain';
      const browserProcess = model.getOrCreateProcess(5678);
      const browserThread = browserProcess.getOrCreateThread(2);
      browserThread.name = 'CrBrowserMain';
      rendererThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 200.0,
        duration: 500.0,
        args: {frame: '0xdeadbeef'}
      }));
      browserThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000.0,
        duration: 500.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 2000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 0, 2000));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueMin(histograms, 'idle:power'), 200.0, .01);
    assert.closeTo(getMetricValueAvg(histograms, 'idle:power'), 849.5, .01);
    assert.closeTo(getMetricValueMax(histograms, 'idle:power'), 1499.0, .01);
  });

  test('powerMetric_noPowerSeries', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.lengthOf(histograms, 0);
  });

  test('powerMetric_emptyPowerSeries', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.lengthOf(histograms, 0);
  });

  test('powerMetric_noChromeTrace', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    // Only the whole trace power metric should contain data.
    assert(containsData(histograms, 'story:power'));
    assert(!containsData(histograms, 'load:energy'));
    assert(!containsData(histograms, 'after_load:power'));
  });

  test('powerMetric_emptyChromeTrace', function() {
    const histograms = new tr.v.HistogramSet();
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.LoadExpectation(
          model, tr.model.um.LOAD_SUBTYPE_NAMES.SUCCESSFUL, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 500));
    });
    tr.metrics.sh.powerMetric(histograms, model);

    assert(containsData(histograms, 'story:power'));
    assert(!containsData(histograms, 'load:energy'));
    assert(!containsData(histograms, 'after_load:power'));
  });

  test('powerMetric_powerSeriesStartsLate', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 300; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.LoadExpectation(
          model, tr.model.um.LOAD_SUBTYPE_NAMES.SUCCESSFUL, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 500));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert(containsData(histograms, 'story:power'));
    assert(!containsData(histograms, 'load:energy'));
    assert(!containsData(histograms, 'after_load:power'));
  });

  test('powerMetric_powerSeriesEndsEarly', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 700; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.LoadExpectation(
          model, tr.model.um.LOAD_SUBTYPE_NAMES.SUCCESSFUL, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 500));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert(containsData(histograms, 'story:power'));
    assert(!containsData(histograms, 'load:energy'));
    assert(!containsData(histograms, 'after_load:power'));
  });

  test('powerMetric_generic_oneStageEachType_irBeyondChrome', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.ResponseExpectation(
          model, tr.model.um.INITIATOR_TYPE.SCROLL, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 1500));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueSum(histograms,
        'scroll_response:energy'), 125, 0.5);
    assert.closeTo(getMetricValueAvg(histograms,
        'idle:power'), 750, 0.5);
    assert.closeTo(getMetricValueAvg(histograms,
        'story:power'), 500, 0.5);
  });

  test('powerMetric_story_minAvgMax', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.ResponseExpectation(
          model, tr.model.um.INITIATOR_TYPE.SCROLL, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 1500));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueMin(histograms, 'story:power'), 0, .01);
    assert.closeTo(getMetricValueAvg(histograms, 'story:power'), 500, .01);
    assert.closeTo(getMetricValueMax(histograms, 'story:power'), 1000, .01);
  });

  test('powerMetric_generic_oneUEBeforeChrome', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 500,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 0, 300));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 300, 1000));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueAvg(histograms,
        'idle:power'), 750, 0.5);
  });

  test('powerMetric_generic_multipleStagesEachType', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.ResponseExpectation(
            model, tr.model.um.INITIATOR_TYPE.SCROLL, 0, 200));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
            model, 200, 300));
      model.userModel.expectations.push(new tr.model.um.ResponseExpectation(
            model, tr.model.um.INITIATOR_TYPE.SCROLL, 500, 400));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
            model, 900, 100));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueSum(histograms,
        'scroll_response:energy'), 300, 0.6);
    assert.closeTo(getMetricValueAvg(histograms,
        'idle:power'), 500, 0.6);
    assert.strictEqual(getMetricValueCount(histograms,
        'scroll_response:energy'), 2);
    assert.strictEqual(getMetricValueCount(histograms,
        'idle:power'), 400);
  });

  test('powerMetric_loading_oneInterval_samplesBeyondChrome', function() {
    // Interval of load is [200, 15400].
    // Trace goes until 22150.
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1984);
      const mainThread = rendererProcess.getOrCreateThread(2);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 200,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      rendererProcess.objects.addSnapshot('ptr', 'loading', 'FrameLoader', 300,
          {isLoadingMainFrame: true, frame: {id_ref: '0xdeadbeef'},
            documentLoaderURL: 'http://example.com'});

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'loading',
        title: 'firstMeaningfulPaintCandidate',
        start: 9180,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'loading',
        title: 'firstMeaningfulPaintCandidate',
        start: 9200,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 9350,
        duration: 100,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 11150,
        duration: 100,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 12550,
        duration: 100,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 14950,
        duration: 500,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 22150,
        duration: 10,
      }));

      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 15400; i++) {
        model.device.powerSeries.addPowerSample(i, 20);
      }
      for (let i = 15401; i <= 22160; i++) {
        model.device.powerSeries.addPowerSample(i, 10);
      }
      for (let i = 22160; i <= 30000; i++) {
        model.device.powerSeries.addPowerSample(i, 10);
      }
    });

    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);
  // Energy for first load is 20 W * 15.2 s
  // (interval from 0.2 s to 15.4 s)
    assert.closeTo(
        getMetricValueAvg(histograms, 'load:energy'), 304, 0.1);
    assert.closeTo(
        getMetricValueAvg(histograms, 'after_load:power'), 10, 0.01);
  });

  test('powerMetric_loading_noMeaningfulPaint', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1984);
      const mainThread = rendererProcess.getOrCreateThread(2);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 200,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      rendererProcess.objects.addSnapshot('ptr', 'loading', 'FrameLoader', 300,
          {isLoadingMainFrame: true, frame: {id_ref: '0xdeadbeef'},
            documentLoaderURL: 'http://example.com'});

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 9350,
        duration: 100,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 11150,
        duration: 100,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 12550,
        duration: 100,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 14950,
        duration: 500,
      }));

      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'toplevel',
        title: 'TaskQueueManager::ProcessTaskFromWorkQueue',
        start: 22150,
        duration: 10,
      }));

      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 15400; i++) {
        model.device.powerSeries.addPowerSample(i, 20);
      }
      for (let i = 15401; i <= 22160; i++) {
        model.device.powerSeries.addPowerSample(i, 10);
      }
    });

    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);
    // Energy for first load is 20 W * 15.2 s
    // (interval from 0.2 s to 15.4 s)
    assert.isUndefined(getMetricValueCount(histograms, 'after_load:power'));
  });

  test('powerMetric_scroll_oneStageEachType', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.AnimationExpectation(
          model, tr.model.um.INITIATOR_TYPE.SCROLL, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 500));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueAvg(histograms,
        'scroll_animation:power'), 250, 0.5);
  });

  test('powerMetric_scroll_multipleStagesEachType', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.AnimationExpectation(
          model, tr.model.um.INITIATOR_TYPE.SCROLL, 0, 200));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 200, 300));
      model.userModel.expectations.push(new tr.model.um.AnimationExpectation(
          model, tr.model.um.INITIATOR_TYPE.SCROLL, 500, 200));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 700, 300));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueAvg(histograms,
        'scroll_animation:power'), 350, 0.6);
  });

  test('powerMetric_video_oneStageEachType', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.AnimationExpectation(
          model, tr.model.um.INITIATOR_TYPE.VIDEO, 0, 500));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 500, 500));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueAvg(histograms, 'video_animation:power'),
        250, 0.5);
  });

  test('powerMetric_video_multipleStagesEachType', function() {
    const model = tr.c.TestUtils.newModel(function(model) {
      const rendererProcess = model.getOrCreateProcess(1234);
      const mainThread = rendererProcess.getOrCreateThread(1);
      mainThread.name = 'CrRendererMain';
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 0,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      mainThread.sliceGroup.pushSlice(tr.c.TestUtils.newSliceEx({
        cat: 'blink.user_timing',
        title: 'navigationStart',
        start: 1000,
        duration: 0.0,
        args: {frame: '0xdeadbeef'}
      }));
      model.device.powerSeries = new tr.model.PowerSeries(model.device);
      for (let i = 0; i <= 1000; i++) {
        model.device.powerSeries.addPowerSample(i, i);
      }
      model.userModel.expectations.push(new tr.model.um.AnimationExpectation(
          model, tr.model.um.INITIATOR_TYPE.VIDEO, 0, 200));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 200, 300));
      model.userModel.expectations.push(new tr.model.um.AnimationExpectation(
          model, tr.model.um.INITIATOR_TYPE.VIDEO, 500, 200));
      model.userModel.expectations.push(new tr.model.um.IdleExpectation(
          model, 700, 300));
    });
    const histograms = new tr.v.HistogramSet();
    tr.metrics.sh.powerMetric(histograms, model);

    assert.closeTo(getMetricValueAvg(histograms, 'video_animation:power'),
        350, 0.6);
  });
});
</script>


If you have ever accidentally deleted contacts or lost your device without backing up your contacts, I suppose you know how hurting it can be.
Therefore, it is always a good idea to back up phone contacts to your Google account so you can retrieve them when you lose your phone or sim card.
This article will walk you through the process of backing up your contacts.
Then the second shows you how to back up phone contacts to your Google account.
5. A questionnaire/survey will pop up, correctly fill in your details, choose a Gmail name and password that you won't easily forget and there you have it.
Your Google account has been created.
Below are the steps you'll go through to back up phone contacts to your Google account.
Go to Contacts on your Android Phone, and tap on the utility/options button (marked with three dots), and tap on the Import/Export option that will show on the new small menu.
Note: In some phones, you'll notice differences, for instance, a Samsung device will show: 'Move device contacts to' while Mi phones will display: 'Move to another account'.
Another interface will pop up asking you where you want to 'Copy from'. You can select from the listed options (select service provider or phone contacts) and tap NEXT to proceed.
You will then see another interface asking you where you want to copy to. Select your Google account and click NEXT.
Select all the contacts you want to back up to your Google account and tap NEXT or DONE.
Now you will get a notification showing you how many contacts were copied successfully.
When you back up phone contacts to your Google account even if anything goes horribly wrong, you are sure that all your contacts are safely backed up and can be restored easily.


Q 37. Can composition scheme be availed if the taxable person effects inter-State supplies?
Previous articleQ 36. Will a taxable person be eligible to opt for composition scheme only for one out of 3 business verticals?
Next articleQ 169. What is Tax Collection at Source (TCS)?


With the aim of giving institutional investors an analytical edge, NASDAQ decided to embark on a project which supposedly is believed to predict the movement of crypto price.
As the name implies, "A Predicting Tool" means the tool might as well be wrong in some cases, and this technically means it is not in anyway a "financial advice" to use the tool as every single person that uses it, is responsible for anything that happens next.
An insider from the firm was actually the source of this information. He revealed that U.S. based stock exchange Nasdaq is currently in the process of building a tool that will allow institutional investors to track market sentiment across a variety of cryptocurrency assets.
First built in 2017, the Analytics Hub utilizes a combination of natural language processing and machine learning to extract, analyze and evaluate vast quantities of online sources (such as social media platforms) to ascertain investor sentiment in the wider market. The Hub is already in operation and currently supports a variety conventional financial assets.
The source also revealed that the innovative tracking tool will initially focus on 500 different cryptocurrency assets, whereby it will target three specific aspects to its analysis, including social media, capital flows through wallets and data extracted from exchanges. Moreover, the source claims that the tool is already going through the Beta stage of testing and that it could go live as early as November.
Security Token Trading To Be E..
The ICO Trial Conducted By The..