text:
Process networks in CHP do not have to be static. In fact, some of the more interesting examples are dynamic. To illustrate a dynamic process pipeline I will use the example task of generating prime numbers.
One way to find prime numbers is as follows. Start with an empty list of primes, and the integer 2. Check if the integer is divisible by any of the numbers in the list of primes. If yes, discard it. If no, add it to the list. Then try the next integer (i.e. add one), and continue indefinitely. A very simple, if inefficient algorithm. (This is not the Sieve of Eratosthenes — see this paper.)
Let's see how we can turn this algorithm into a CHP program. Every time we find a prime, we want to add it to our list of numbers to filter out in future. We can implement this list as a concurrent process pipeline — each process in the pipeline will be responsible for filtering out numbers divisible by a single prime. Such a process is quite straightforward:
filterDiv :: Integer -> Chanin Integer -> Chanout Integer -> CHP () filterDiv n input output = forever $ do x <- readChannel input when (x 'mod' n /= 0) $ writeChannel output x
Every time we find a prime, we need to add a new filterDiv process on to the end of our pipeline. This may sound difficult, but can be easily expressed with some concurrent recursion:
end :: Chanin Integer -> Chanout Integer -> CHP () end input output = do x <- readChannel input writeChannel output x (filterDiv x |->| end) input output
This process sits at the end of our pipeline and reads in a single value. Since our pipeline is filtering out all non-primes, any number that this "end" process receives must be prime. In response to receiving a prime, it sends it on (to whatever process is waiting beyond the prime pipeline to receive the primes). It then becomes the parallel composition of a new filterDiv process, connected to a new end process (the |->| operator expresses this composition). Thus every time a new prime comes out of the end of the pipeline, the pipeline grows by one more process. After the 100th prime, the pipeline will consist of 100 filterDiv processes executing concurrently, and one "end" process.
To complete our pipeline, we need a process at the beginning of the pipeline, supplying an ever-increasing stream of numbers on its output channel, starting at 2:
genStream :: Chanout Integer -> CHP () genStream output = mapM_ (writeChannel output) [2..]
We can now write a primes process that generates a list of prime numbers. Using another helpful operator from the CHP library, this is easy:
primes :: Chanout Integer -> CHP () primes = genStream ->| end
Observe that there is no mention of filterDiv. The pipeline starts out with the stream generator and an end process. All the filterDiv processes are added once the primes start coming out of the pipeline, beginning with 2, as shown in the diagram below:
Note also that the interface of primes is simply Chanout Integer -> CHP (); all the internal details of the expanding concurrent pipeline are hidden from the outside, leaving only an opaque box:
To make a complete program, we can compose this in parallel with a process responsible for printing the primes:
main :: IO () main = runCHP_ $ do c <- oneToOneChannel primes (writer c) <||> (forever $ readChannel (reader c) >>= (liftIO. putStrLn. show))
The expanding pipeline is not restricted to conceptual examples such as generating the primes, and the powerful idea of a process becoming the parallel composition of sub-processes is not restricted to pipelines — two things that I hope to explore in future.
A common feature of many Computer Science courses is the issue of sorting: you may recall the bubble sort, the insertion sort, the merge sort and the quick sort. You may also know their time complexity — bubble sort is O(N^2), meaning the time it takes is proportional to the square of the number of items involved. In contrast, quick sort can reach O(N*log N) in some cases, which — crucially — is better. These are all sequential algorithms though — what happens when we want to make a concurrent algorithm?
There is a parallel version of quicksort, where as you divide and conquer your list, you fork off the two divisions into separate threads, and there are probably other pure parallel sorting strategies too. With CHP we can approach the problem differently, using a concurrent sort pump. I want to explain the sort pump because I like its design, not because it is blazingly fast. We'll begin with a simple component process:
highest :: Ord a => Chanin a -> Chanout a -> CHP () highest input output = readChannel input >>= highest' where highest' x = do y <- readChannel input let (low, high) = if x < y then (x, y) else (y, x) writeChannel output low highest' high
This process starts by reading in a value to hold. Then it repeatedly reads in a new value, keeping the highest one and sending on the lowest one. So if you feed it a stream of values, it will keep hold of the highest value it has seen, and will pass on all lower values. Now let's consider what happens if you connect two of these processes together. The first process will keep the highest value, sending on all others. The second process will keep the highest value of these others — i.e. the second highest value of all of them. Connect three together, and the third will hold the third highest value. Connect N of these together, pass in N values, and the Mth process will hold the Mth highest value. Voila, a sort pump!
There is a problem with our sort pump though — it sorts the values, but we have no way of getting the result out! So we need to augment our component to permit the "flushing" of the pump:
data FlushOrNormal a = Flush [a] | Normal a highestFlush :: Ord a => Chanin (FlushOrNormal a) -> Chanout (FlushOrNormal a) -> CHP () highestFlush input output = empty where empty = do x <- readChannel input case x of Flush _ -> writeChannel output x >> empty Normal y -> full y full cur = do x <- readChannel input case x of Flush xs -> writeChannel output (Flush (cur:xs)) >> empty Normal new -> let (low, high) = if cur < new then (cur, new) else (new, cur) in writeChannel output (Normal low) >> full high
If the component receives a flush signal, it will prepend its currently held value to the list and send on the flush message. Because the first process has the highest value, and all processes prepend, the list ends up in ascending order. If a normal (non-flush) value is received, the component behaves as before. We can then wrap a pipeline of these processes in a tidy process that takes in a list of items, sorts them and sends them out again:
sorterFixedCapacity :: Ord a => Int -> Chanin [a] -> Chanout [a] -> CHP () sorterFixedCapacity n input output = do pumpIn <- oneToOneChannel pumpOut <- oneToOneChannel pipeline (replicate n highestFlush) (reader pumpIn) (writer pumpOut) <|*|> (forever $ do xs <- readChannel input mapM_ (writeChannel (writer pumpIn). Normal) xs writeChannel (writer pumpIn) $ Flush Flush xs' <- readChannel (reader pumpOut) writeChannel output xs')
This sort pump is fixed capacity — if you send the above process a list that is longer than its stated capacity, it won't work correctly. I will not go into the solutions in detail here, but there are are several — we could set-up and tear-down the list of processes each time if we wished, and we could also make the pump automatically expand.
Finally, let's think about the sort pump's time complexity. Each value will pass through half the pipeline on average (not counting the flush), so N/2 communications per item. This happens to N items, so N*N/2 communications (plus N for the flush, but that falls away) [Correction: this should be N*(N+1)/2 — see the comments below]. Each component will see on average N/2 items, and will thus perform N/2 comparisons, so N*N/2 comparisons [Correction: actually, this should be N*(N-1)/2, I think — see the comments]. Our time complexity is therefore O(N^2) overall, but importantly if you had N processors (and very fast communications), each process would run O(N) operations in parallel, and thus you would have an O(N) sorting algorithm. Although, as the corrections indicate, some of this can be a bit harder to calculate than it first appears!
While our theoretical bound is good, in practice the sort pump is only going to stand a chance of good performance if you have very few items that are very expensive to compare (so that the computation — i.e. the comparisons — outweigh the communications). The sort pump is really a concurrent version of the bubble sort, and shares many of its attributes: small, built on simple principles — but slow.


Vocabulary Builder
Vocabulary Builder
 Improve Your Writing
 - Boost your vocabulary
 - See words in the context of real sentences
 - Learn by association and by definition
 - Master a new lexicon!
Get Started Below
Vocabulary Word
Word: rightful
Definition: legally correct; Ex. rightful owner
Sentences Containing 'rightful'
After the assassination of Francisco Pizarro, in retaliation for his father's execution in 1538, Diego de Almagro II, "El Mozo", continued to press claims as the rightful ruler of Peru and as leader of his father's supporters.
Although later Carolingian historians cast her as a concubine, she was during her time the rightful wife of Charles.
As a result, he opposes his enemies not only because he finds their actions evil, but also because they have usurped the rightful authority of the crown.
At the age of twelve, their eldest son, Andrew, became the rightful heir to the family title, Baron Castle Stewart, passed down from Andrew's uncle.
Because list MPs gain their positions by virtue of being on a party list, rather than by winning votes personally, some contend that the party, not the MP, is the rightful "owner" of the seat.
By 1938, the only use the Germans had for the A.G.N.A. was to threaten to renounce the treaty as a way of pressuring London to accept continental Europe as Germany's rightful sphere of influence.
Dawoodi Bohra believe that after Muhammad, Ali had been the rightful "wasi", Imam and caliph, but the actual Caliphate was usurped by Ẓāhirī ("literalist") caliphs.
Furthermore he noted that as Kazembe was the rightful owner of Msiri's country, the Kazembe treaty effectively gave them all the 'Lunda country' (by which he included Msiri's territory comprising the south-east of present-day Katanga).
George Sinclair of Keiss, who was considered the rightful heir, stormed the castle in 1679, an action which led to the Battle of Altimarlech in 1680, in which the Campbells were victorious.
He is compelled to send a telepathic message to his twin C'tair (who is hiding on Tleilaxu-conquered Ix) that his own heighliner carries rightful Ixian ruler Rhombur Vernius, on his way to free the planet.
Her home also became a focal point for young society women, though she was never able to take her rightful place in society due to the scandals surrounding her husband.
His eldest son and rightful heir was Koretsune.
If police agencies are not able to return the stolen merchandise to the rightful owners, by law they must sell seized, recovered, found, and unclaimed personal property at public auction.
In 1949, the museum was among the first to return a work that had been looted by the Nazis, when it returned Claude Monet's "The Seine at Asnières" to its rightful owner.
In 1973, several episodes of the series were compiled together as an overseas theatrical release entitled "Call Me By My Rightful Name".
In 1996, Rodney King sued Burris and two other attorneys, accusing them of trying to defraud King out of his rightful share of recovery from a multi-million-dollar jury verdict against Los Angeles; a court ruled that King's suit was not brought within the statute of limitations.
In March 2011, when asked if he was the rightful heir, Idris said a family council would decide who would be king, not an heir.
Isis could not stand by and let this happen because her son was the rightful ruler.
Later, Vortigern is deposed by the rightful King of the Britons, Aurelius Ambrosius (the historical Ambrosius Aurelianus) and Hengist is captured and later executed.
Like the Provisional IRA before it, the RIRA sees itself as the only rightful successor to the original Irish Republican Army and styles itself as simply "the Irish Republican Army" in English or "Óglaigh na hÉireann" (Volunteers of Ireland) in Irish.
Mediaeval sources describe the Rhinegrave as the village's and municipal area's highest "Vogt" and rightful chief justice.
Paul's Cathedral declaring Edward's children bastards and Richard the rightful king.
Princess Alexa enters, and wonders why the marriage must take place at all, since Melissa is the rightful heir.
Since then the two sons and their respective followers have been feuding over who is the rightful successor of Moshe, with the followers of Aaron attempting to gain control of approximately $372 million worth of Satmar buildings and land (including its synagogues) in Williamsburg and elsewhere.
The Amboy Conference was the setting of the official "re-organization" of the Church of Jesus Christ of Latter Day Saints into the Latter Day Saint denomination now known as the Community of Christ. Held on April 6, 1860, this conference recognized movement founder, Joseph Smith, Jr's eldest son, Joseph Smith III as his rightful successor and sustained the young Joseph as President of the Church.
The Golden Gate Yacht Club (GGYC) filed its own challenge for the Cup and then filed a court case asking that CNEV be removed as Challenger of Record as being unqualified under the Deed of Gift. GGYC also asked that it be named as the rightful Challenger of Record, being the first club to file a conforming challenge.
The merchandise is only auction after the police has attempted to return the items to the rightful owner and the merchandise is no longer needed in any police investigation.
The rightful heir was believed to be Edward Berkeley Philipps (later Mansel), son of Courtenay Philipps, son of Richard Mansel, younger brother of the tenth Baronet.
The story is mainly about the sorceress Gudrun, who rules the Jarl's people through fear; the power struggle between her and her son, her very reflection and one weakness; and the small, motley band of outlaws who join him in the fight to restore the land to its rightful leader.
The younger one initially claims to be the true heir of the Duke of Bilgewater, and the older one the lost son of Louis the XVI and the rightful king of France.
There followed a long and acrimonious legal battle, with the New York Court of Appeals finally deciding on April 2, 2009, that CNEV did not qualify as valid challenger, and that the GGYC was thus the rightful Challenger of Record. Dispute.
When Dom Miguel returned and seized power from the rightful heir, his niece Maria II, and proclaimed himself 'Absolute King', Travassos Valdez held out in Madeira until his defence of the island was overwhelmed by an expeditionary force despatched from Portugal. As Miguel had given orders that Travassos Valdez should be hanged if captured, he was forced to flee the Portuguese realms and, with his wife, brother, and six children, sailed to England under the protection of the British Royal Navy in September 1828.
Yahya believed that as the next oldest son, he was next in line to be Ottoman Sultan and felt cheated out of his rightful destiny.
More Vocab Words
::: cantankerous - ill-humored; irritable
::: disclose - reveal; N. disclosure
::: obsequy - funeral ceremony


text:
|Definition - A word, phrase, or clause that both follows a copula and modifies the subject of the sentence.|
The moon was a ghostly galleon.
(In the above, was is a copula which links the subject complement ghostly galleon to the subject moon.)
Oxford English Dictionary - The term's first citation is from 1939:
"A certain number of adverbs may be used as *subject-complements, i.e. as complements to … verbs of incomplete predication."
(H. E. Palmer Gram. Spoken Eng. (ed. 2) ii. 80)

source: HuggingFaceFW/fineweb-edu


Grace (photograph)
From Wikipedia, the free encyclopedia
Jump to: navigation, search
Grace is a photograph by Eric Enstrom. It depicts an elderly man with hands folded, saying a prayer over a table with a simple meal. In 2002, an act of the Minnesota State Legislature established it as the state photograph.[1]
History and background[edit]
The original photograph was taken in Bovey, Minnesota at Enstrom's photography studio. Most sources note the year as 1918, though Enstrom's daughter Rhoda, born in 1917, claimed to remember being present when the photograph was taken, and it may have been taken closer to 1920. The man in the photograph, Charles Wilden, was a Swedish immigrant who lived in nearby Grand Rapids, Minnesota earning a meager living as a peddler and living in a sod house. While the photograph conveys a sense of piety, the book shown in the photo is in fact a dictionary, not the Bible, and local stories about Wilden "centered more around drinking and not accomplishing very much."[2]
What happened to Wilden after the photograph is unclear. In 1926 he was paid $5 by Enstrom in return for waiving his rights to the photograph; he disappeared thereafter. After the photograph became popular Enstrom attempted to track Wilden down but was unsuccessful. Various family members and local historians have also attempted to determine what became of Wilden but have not been able to locate definitive evidence.[2]
Enstrom first licensed the photograph to Augsburg Fortress in 1930. In the 1940s his daughter, Rhoda Nyberg, colorized the photo by hand. This version was used in prints produced in the 1940s onward and became the more widespread and popularly known version of the photo.[3]
Enstrom earned a modest sum from the photograph for the remainder of his life. He died in 1968. Rhoda Nyberg died in 2012.[2][3]
Photograph with window light added to original.
Colorized version.
 1. ^ "Grace, official state photograph". State of Minnesota. Retrieved Feb 25, 2014.
 2. ^ a b c Lee, Stephen J. (27 February 2012). "Man in famous 'Grace' photo mystifies historians". Grand Folks Herald.
 3. ^ a b Walsh, Paul (27 February 2012). "Iron Range artist brought 'Grace' photo to fame". Minneapolis Star-Tribune.
External links[edit]


text:
Plastic Equivalent Air Depths Table
This chart allows you to quickly calculate what percentage of your total oxygen exposure limits you have consumed on each dive. Time values in this chart are based on the NOAA Oxygen Exposure Time Limits for Working Divers. Fractional percentage values have been rounded to the nearest whole number, with a minimum value of one percent. Susceptibility to decompression sickness and oxygen toxicity can vary from person to person, and from day to day. No dive table, computer or planning device can guarantee (even if used correctly) you will not suffer from one or both of these problems. Therefore, the used must assume all risks associated with the use of this product. This item is made from a flexible, water-proof, plastic.

source: openbmb/Ultra-FineWeb


text:
The long-awaited online training program Smart Driver for Forestry Trucks is finally live, and you can watch it from the convenience of your home.
Reducing fuel consumption and operating costs are two constant challenges for forest truck drivers. For years, drivers working in forestry operations have been asking for guidelines and efficient driving techniques that save fuel and ensure safety and environmental sustainability.
This is exactly why the Office of Energy Efficiency of Natural Resources Canada and FPInnovations designed this interactive training program. The program provides the needed guidelines and techniques and presents all the economic, environmental and safety benefits of professional driving.
The training program includes videos and quizzes, and includes these five modules:
- Smart driver in the forest industry
- Principles of defensive driving
- Effective driving
- Choice of truck components
- Basic maintenance knowledge
Who is this training intend for?
- Professional drivers
- Fleet owners
To register, go to, _URL_ and enter this key name: drive-smarter.


text:
Background: Previous studies identifying patients with inflammatory bowel disease using administrative codes have yielded inconsistent results. Our objective was to develop a robust electronic medical record–based model for classification of inflammatory bowel disease leveraging the combination of codified data and information from clinical text notes using natural language processing.
Methods: Using the electronic medical records of 2 large academic centers, we created data marts for Crohn's disease (CD) and ulcerative colitis (UC) comprising patients with ≥1 International Classification of Diseases, 9th edition, code for each disease. We used codified (i.e., International Classification of Diseases, 9th edition codes, electronic prescriptions) and narrative data from clinical notes to develop our classification model. Model development and validation was performed in a training set of 600 randomly selected patients for each disease with medical record review as the gold standard. Logistic regression with the adaptive LASSO penalty was used to select informative variables.
Results: We confirmed 399 CD cases (67%) in the CD training set and 378 UC cases (63%) in the UC training set. For both, a combined model including narrative and codified data had better accuracy (area under the curve for CD 0.95; UC 0.94) than models using only disease International Classification of Diseases, 9th edition codes (area under the curve 0.89 for CD; 0.86 for UC). Addition of natural language processing narrative terms to our final model resulted in classification of 6% to 12% more subjects with the same accuracy.
Conclusions: Inclusion of narrative concepts identified using natural language processing improves the accuracy of electronic medical records case definition for CD and UC while simultaneously identifying more subjects compared with models using codified data alone.


How to Send a Message on Nextdoor
As you most likely already know, Nextdoor is a social network made for neighborhoods. It gives you a chance to get to know your neighbors better, assuming that they're also using the app. Besides posting public posts, you can send private messages to people, just like on most other social networks. Here's how to do this from a computer, an Android smartphone, and an iPhone.
Sending a Message from Your Computer
If you're in front of a computer screen, you can send a message using your web browser:
 1. Open the Nextdoor website. Make sure that you're logged in.
 2. Near the bottom of the navigation menu, there's a "Directory" button. Click on it.
 3. A list of people in your neighborhood will appear. Next to each person, there's a "Message" button to the right. Click on that button to proceed.
 4. A new pop-up window will appear, prompting you to enter the message subject and text.
 5. When you're done, click on the "Send" button.
You can also send a message to someone from the Newsfeed if you've come across a post of theirs:
 1. Find the post in question and then click on the post author's name.
 2. Choose "Message."
 3. Enter the message subject and text. When you're done, click on "Send."
Sending a Message from Your Android Phone
Make sure that you have the "Nextdoor for Android" app and that you're logged in here. If you don't have it, you can download it for free from the Play Store. After you've done that and you've logged in, follow these steps:
 1. In the bottom-right corner of the screen, there should be a round green button with a white plus inside. Tap on it.
 2. Choose "Private Message."
 3. The app will then take you to the list of your neighbors. Find and select the person that you would like to message.
 4. Tap on the "Next" button.
 5. Write your message. Tap on the "Send" button after you're finished.
To send a message to a person from a post on the "Newsfeed," here are the steps you should take on the Android app:
 1. Find the post on the "Newsfeed" if you haven't done so already.
 2. Look for the profile picture of the post author and tap on it.
 3. Select "Send private message."
 4. Write your message. When done, tap "Send."
Sending a Message from Your iPhone
Again, whichever smartphone you're using, you need to have their corresponding apps installed. If you don't have the "Nextdoor for iPhone" app installed, you can download it from the App Store. Here's how to send Nextdoor messages from your iPhone, provided you have opened the app and logged in already:
 1. At the bottom of your screen, there will a button that only has two conversation bubbles. Give it a tap.
 2. Choose the "Compose" option. It's located in the top-right corner.
 3. Look for the neighbor you're planning to message.
 4. After you have found your person, select "Next."
 5. Write your message, then tap on the "Send" button when done.
To directly message someone through their Newsfeed post:
 1. Find the message or post in the Newsfeed.
 2. Tap on the profile picture of the post author.
 3. Proceed with "Send private message."
 4. Compose your message. After that, tap on "Send."
Staying Connected
Since Nextdoor is a social network, the ease of sending messages on it doesn't come as a surprise. Why not go ahead and get to know your new neighbors better? There's no reason to put it off.
Are you happy with your current neighborhood? Have you been using some form of social media to keep in touch with your neighbors? Let us know in the comments below.
One thought on "How to Send a Message on Nextdoor"
Avatar Jerry Wallker says:
I need some help in finishing up installation of Rainbird drip irrigation system in my garden. If you would like to do some light work, call _PHONE_.
Leave a Reply
Todays Highlights
Zoom How to Change Name
chkdsk windows 10


Skip to main content
Advertisement
StanXY: standard curve app for Android
Abstract
StanXY is a free standalone native Android application. It is developed to provide convenience and efficiency to graph plotting. By simply downloading the application, StanXY provides the portability to easily plot graphs on the go as compared to manual plotting and desktop graphing software. The StanXY generates a best fit line based on a set of coordinates entered by the user. The equation of the line (y = mx + c) and its coefficient of determination (R2) are calculated and displayed. With the generated line of best fit, the application allows users to enter a known X or Y coordinate to determine the corresponding unknown Y or X value. Its customisable features include 2 graph colour display and line thickness. The StanXY application allows plotting graphs and calculating unknown values on-the-go in a convenient and efficient way.
Introduction
Line graphs are indispensable visual representations of linear relationships between variables. Commonly used in science to quantify unknown concentrations in samples from known standards, it plays an integral role in biomolecule/chemical quantification (e.g. Bradford assay for proteins). It is also used to display trends and data changes, or even extrapolated to predict outcomes. As such, its use extends beyond experimental sciences and statistics to school education. While computers can do the graph plotting accurately, much improvement remains for its portability and accessibility. This is particularly useful for outdoor field tests (e.g. environmental monitoring) where desktop access are limited. Thus StanXY is an efficient and portable solution that speeds up the graphing process and reduces human error.
Smartphone applications making data gathering and analysis easier have become increasingly popular in research (_URL_ They can be exploited to plot graphs quickly with full portability, thus boosting productivity. Other examples of apps that improves research productivity include DNAApp (Nguyen et al. 2014), GelApp (Sim et al. 2015), the latter transforms the smartphone into a Gel-Documentation equipment and improves accuracy of experiments (Ling et al. 2015). These applications are not only used for on spot graphing analysis by scientists and engineers, but also applicable in educational institutes for science students.
Riding on the smartphone and mobile devices, StanXY conveniently, efficiently and accurately plots graphs with a minimalist user interface. Users need to only key in the known X and Y coordinates and the unit labels for both axes and press the "Tabulate graph" button. StanXY will plot the points and generate a straight line graph (Fig. 1). Users can zoom in and out by pinching in and out on the graph. Unknown values can then be keyed in and the unknown determined immediately. Both the equation and coefficient of determination of the line of best fit are also provided for reports, all within a few seconds. For better visualization, users can customise the graph by changing the thickness of the line and the background colour of the graph based on the 2 available themes (default/contrast). This can then be captured using the screenshot function of the mobile devices and be included in reports.
Fig. 1
figure1
Entering chart values (left) and the graph with the line of best fit (right)
To ensure functionality regardless of internet connectivity, these features are all built into the app without the need for a mobile network/WIFI or access to multiple websites.
Material and methods
StanXY for Android was developed using version 4.2 of the Eclipse Integrated Development Environment, Juno, and 'AChartEngine, developed by 4ViewSoft (_URL_ 'AChartEngine' is licensed under the Code Project Open License ((CPOL) 1.02).
The coefficient of determination (R2) is calculated based on the formula:
$$ {\left(\mathrm{n}\Sigma \mathrm{x}\mathrm{y}\ \hbox{--}\ \left(\Sigma \mathrm{x}\right)\left(\ \Sigma \mathrm{y}\right)\ /\ \left(\surd \mathrm{n}\kern0.5em {\Sigma \mathrm{y}}^2\right)\ \left(\surd \mathrm{n}\ {\Sigma \mathrm{x}}^2\right)\right)}^2 $$
Σx:
Summation of all the X values
Σy:
Summation of all the Y values
n:
Number of X/Y values
Line Equation and R2 values
With the generated line of best fit, it is possible to determine the unknown Y value by entering its corresponding X value and vice versa (Fig. 2). The unknown value is plotted on the graph in a different colour. The application also calculates the equation of the line and coefficient of determination (R2) of the graph which is shown by tapping on the top right "Statistics" button. The equation of the straight line is shown in the form of y = mx + c where "m" is the gradient/slope and "c" is the y-intercept. R2 has a value between "0" and "1", and shows how well the line of best fit fits the coordinates. The closer the value is to "1" indicates that the standard coordinate fall well within the line of best fit.
Fig. 2
figure2
A graph with a calculated unknown X value, a new point is plotted on the graph in dark green
Customizable features
The graph generated by StanXY is customisable based on the user's preferences. Users can easily change the colour scheme of the graph (default/contrast). The thickness of the points and line of the graph can also be adjusted with the slide bar (Fig. 3).
Fig. 3
figure3
Default graph (left), increased thickness of points and line (middle) and graph with the contrast theme (right)
Uses and Applications
StanXY can be used with common biomedical and chemical lab quantification experiments that require plotting of standard curves. These includes Enzyme-linked immunosorbent (ELISA), Bradford, Folin-Lowry and many others. The app can be used in schools in science classes and also as a guide for plotting lines of best fit.
Conclusion
StanXY is a standalone Android application that brings convenience, efficiency and accuracy to graph plotting. It does not require internet connectivity to support its features and allows users to easily plot graphs on the go without the expense of accuracy and time.
Availability and Resources
The StanXY application is developed for the Android platform and is freely available on the Google Play Store. More details on the app can be found at _URL_ _URL_
The StanXY user guide is available at _URL_ and a video tutorial is also available on the Google Play Store.
References
 1. Nguyen P-V, Verma CS, Gan SK-E. DNAApp: a mobile application for sequencing data analysis. Bioinformatics. 2014;30(22):3270–1.
 2. Sim J-Z, Nguyen P-V, Lee HK, and Gan SK-E, "GelApp: Mobile gel electrophoresis analyser," Nat. Methods App Notes. 2015. doi:10.1038/an9643.
 3. Ling W-L, Lua W-H, Gan SK-E. "Fast reversible single-step method for enhanced band contrast of polyacrylamide gels for automated detection." Electrophoresis. 2015;36(9-10):1224.
Download references
Funding
This work is funded by the Joint Council Office, Agency for Science, Technology, and Research, Singapore.
We thank Mr. Dillon Lim for his help in this app note preparation.
Author information
Correspondence to Samuel Ken-En Gan.
Additional information
Competing interests
The authors declare that they have no competing interests.
Authors' contributions
IH and CF wrote the codes underlying the app. PV provided assistance in the implementation of the graph. SKE conceived the idea and directed the design of the app. All authors read and approved the final manuscript.
Ian-Hartono Budianto and Chun-Foong Wong contributed equally to this work.
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (_URL_ which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
Reprints and Permissions
About this article
Verify currency and authenticity via CrossMark
Cite this article
Budianto, I., Wong, C., Nguyen, P. et al. StanXY: standard curve app for Android. Sci Phone Appl Mob Devices 1, 2 (2015) doi:10.1186/s41070-_PHONE_-0
Download citation
Keywords
 - Line Graph
 - Android
 - Internet Connectivity
 - Android Application
 - Integrate Development Environment


text:
Audio Description Performance
What is audio description?
Audio description is a verbal commentary that tells visually impaired theatre-goers what is happening on the stage during the parts of the performance where there is no dialogue (i.e. during fight scenes). The description does not interfere with the performance but fills in the gaps, describing facial expressions, costume, scenery and action sequences so that anyone with a sight problem can follow the plot fully and independently. Many visually impaired theatre-goers are enthusiastic about audio description.
How does audio description work?
The trained describer sits in a soundproof booth or box in the theatre and explains what is happening on the stage. Usually, the describer has seen the performance three or four times before and is well prepared to describe the performance. Visually impaired theatre-goers are equipped with a headset or earpiece before the performance and the description is relayed from the booth to the headset/ear-piece via an infrared or radio sound system.
Can theatre-goers sit in any seat in the theatre?
No, specific seats are allocated in the theatre, mostly in the Stalls or Dress Circle, so there is clear transmission between the describer and the headsets.


text:
Here's a sample of our volunteer opportunities:VIEW AS
Senior Medicare Patrol ( SMP ) helps Medicare beneficiaries, their families and caregivers who have questions about billing issues or believe they may be a victim of healthcare fraud or scams. SMP empowers and assist Medicare beneficiaries, their families, and caregivers to prevent, detect, and report health care fraud, errors, and abuse through outreach, counseling, and education.
Did You Know?
- $68 billion taxdollars are lost annually to Medicare fraud, errors, and abuse each year?
- Billing errors are common and can easily be corrected.
- You can help! Medicare Beneficiaries are the first line of defense against healthcare fraud. Learning how to protect personal information, detect fraud, errors and abuse, and reporting suspicious activities can help save taxdollars from criminals.
What is Healthcare Fraud?
Medicare fraud happens when Medicare is billed for services or supplies you never got or didn't need. Errors and abuse occur when questionable practices result in unnecessary costs to Medicare.
How Does the SMP Program Help Stop Healthcare Fraud?
SMP staff and volunteers visit seniors wherever they gather, at senior centers, housing complexes, churches, and health fairs and talk about what they can do to prevent, detect and report Medicare fraud. You can help us to do that by learning about Medicare and either visiting groups of seniors to train them on what Medicare fraud is or by attending community events like health fairs to meet people and distribute information.
- Protect, Detect, Report: We teach beneficiaries how to protect personal information, detect fraud, errors and abuse, and report suspicious activity.
- The SMP Matters Newsletter is sent to over 4,000 senior citizens in almost every county in Kentucky.
- Our Presentation Menu lists topics that may be of interest to a senior group in your area.
- Medicare Bingo: We have a variety of educational Bingo games that share important Medicare information to seniors in a fun way! Call us to learn more!


Export (0) Print
Expand All
1 out of 2 rated this helpful - Rate this topic
Quick Filing Dialog Box Interfaces (OneNote 2010)
Office 2010
This topic describes the interfaces that you can use to programmatically customize the Quick Filing dialog box in Microsoft OneNote 2010.
The Quick Filing dialog box in OneNote 2010 is a customizable dialog box that allows users to select a location within the OneNote hierarchy structure. Selectable locations include notebooks, section groups, sections, pages, and subpages. The dialog box is used both within the OneNote application and by external applications through the OneNote 2010 API. Figure 1 shows the Quick Filing dialog box in its default state.
Figure 1. Quick Filing dialog box without customizations
Quick Filing dialog box without customizations
Within the dialog box, users can navigate the All Notebooks hierarchy to look for specific locations or search the OneNote tree structure by typing into the text box. Aspects of the dialog box that can be customized include the title, description, recent results list, check box text and state (shown in Figure 2), tree depth, buttons, and selectable location types.
Figure 2. Quick Filing dialog box check box
Quick Filing dialog box check box
You can access the Quick Filing dialog box functionality through two OneNote 2010 interfaces. The IQuickFilingDialog interface allows users to instantiate, set up, and run the dialog box. The IQuickFilingDialogCallback interface is called after the dialog box is closed. The dialog box is run in the OneNote process, so a mechanism is needed to keep the dialog box's thread running and then to capture the user's selection and the state of the dialog box when it is closed.
This interface allows the user to customize and run the dialog box. The user can instantiate a dialog box through the Application class by using the Application.QuickFilingDialog method. The method returns an instance of the dialog box. Once the properties of the dialog box are set, the IQuickFilingDialog.Run method is used to run the dialog box. This method runs the dialog box on a new thread.
Properties
Name
Type
Description
Title
string
Gets or sets the title text that appears in the title bar of the dialog box window.
Description
string
Gets or sets the text description to instruct the user about what to select. This value can be multiple-line text.
CheckboxText
string
Gets or sets the text that follows the check box. If this value is set to a non-empty string, a check box appears in the dialog box. If the value is an empty string, no check box appears.
CheckboxState
bool
Gets or sets the state of the check box. If value is set to false, the check box is cleared when the dialog box is started. If the value is set to true, the check box is selected when the dialog box is started as long as CheckboxText is a non-empty string.
WindowHandle
ulong
Gets the handle ID of the Quick Filing dialog box window.
TreeDepth
HierarchyElement
Gets or sets how deep the OneNote tree should be displayed in the All Notebooks section. By default, the tree is displayed up to the sections. This property does not affect what type of elements can be selected.
If TreeDepth is set to an element lower in the OneNote hierarchy than can be selected by any of the buttons, the displayed tree depth will be the lowest possible selectable element. That is, if tree depth is set to display down to pages, but the lowest selectable element is a section, the tree is displayed down to sections.
ParentWindowHandle
ulong
Gets or sets the handle ID of the parent window of the dialog box. If this property is set, the Quick Filing dialog box will be modal to the assigned parent window when the dialog box opens. That is, a user will not be able to access the parent window until the Quick Filing dialog box is closed.
Position
tagPOINT
Gets or sets the position of the window in relation to the screen. By default, the dialog box appears in the middle of the parent window or the desktop.
SelectedItem
string
Gets the object ID of the OneNote location selected by the user when the dialog box is closed. If the user clicks the Cancel button, the object is set to null.
PressedButton
ulong
Gets which button was clicked when the dialog box was closed. If the Cancel button was clicked, this property returns a value of -1. All other buttons are assigned integer values from 0, incremented by 1 for each button added to the dialog box. The integer value of the default OK button is 0.
Methods
SetRecentResults
Description
Sets what recent result list will be displayed in the Quick Filing dialog box, and indicates whether to include some special filing locations in the list. Users can select a recent result list from the RecentResultType enumeration. Users can also choose to add the following options to the list: Current Section, Current Page, or Unfiled Notes. If RecentResultType.rrtNone is selected, no recent result list is shown.
Syntax
HRESULT SetRecentResults (
 [in]RecentResultType recentResults,
 [in]VARIANT_BOOL fShowCurrentSection,
 [in]VARIANT_BOOL fShowCurrentPage,
 [in]VARIANT_BOOL fShowUnfiledNotes);
Parameters
 - recentResults—An object of type RecentResultType that indicates which recent result list, if any, should appear. If rrtNone is selected, no recent result list appears in the dialog box.
 - fShowCurrentSection—A Boolean value that indicates whether the current section should be included in the recent result list.
 - fShowCurrentPage—A Boolean value that indicates whether the current page should be included in the recent result list.
 - fShowUnfiledNotes—A Boolean value that indicates whether the Unfiled Notes section should be included in the recent result list.
Note Note
If a special filing location cannot be selected by using any of the buttons in the dialog box, it is not shown in the list. If no selectable item in the recent results list is found, no recent result list is displayed.
The following example uses the SetRecentResults method to display the current section, current page, and the Unfiled Notes section in the recent result list.
 static void Main(string[] args)
 {
 Microsoft.Office.Interop.OneNote.Application app =
 new Microsoft.Office.Interop.OneNote.Application();
 ...
 // RECENT RESULTS
 qfDialog.SetRecentResults(RecentResultType.rrtFiling,
 /*Current Section*/ true,
 /*Current Page*/ true,
 /*Unfiled Notes*/ true);
 ...
 }
AddButton
Description
Allows users to add and customize buttons in the dialog box. Users can specify the text on the buttons and what elements of the OneNote hierarchy can be selected by each button.
Syntax
HRESULT AddButton (
 [in]BSTR bstrText,
 [in]HierarchyElement allowedElements,
 [in]HierarchyElement allowedReadOnlyElements,
 [in]VARIANT_BOOL fDefault);
Parameters
 - bstrText—A string that specifies the text to appear on the button. To customize the default OK button, pass in a null value as bstrText.
 - allowedElements—A HierarchyElement that indicates what non-read-only OneNote hierarchy elements a user is allowed to select by using the button. For selecting multiple items, the user should pass in the OR operator for all the uint equivalent values of the HierarchyElement types allowed as a HierarchyElement.
 - allowedReadOnlyElements—A HierarchyElement that indicates what OneNote read-only hierarchy elements a user is allowed to select by using the button. For selecting multiple items, the user should pass in the OR operator for all the uint equivalents values of the HierarchyElement types allowed as a HierarchyElement.
 - fDefault—A Boolean value that specifies whether this button should be the default button. If multiple buttons are set as default, the last specified button becomes the default button.
The following example adds three buttons to the Quick Filing dialog box. The first one, All, can be selected by all elements in the OneNote hierarchy tree. The others, Notebooks and Pages, can be selected only if their corresponding elements, Notebooks and Pages, are selected.
 static void Main(string[] args)
 {
 Microsoft.Office.Interop.OneNote.Application app =
 new Microsoft.Office.Interop.OneNote.Application();
 ...

 // BUTTONS
 HierarchyElement heAll = (HierarchyElement)
 ((uint)HierarchyElement.heNotebooks |
 (uint)HierarchyElement.heSectionGroups |
 (uint)HierarchyElement.heSections |
 (uint)HierarchyElement.hePages);

 qfDialog.AddButton("All", heAll, heAll, true);
 qfDialog.AddButton("Notebooks", HierarchyElement.heNotebooks,
 HierarchyElement.heNotebooks, false);
 qfDialog.AddBu


×
zbMATH — the first resource for mathematics
Cores of hyperbolic 3-manifolds and limits of Kleinian groups. (English) Zbl 0863.30048
In this work, the relationship between algebraic and geometric limits of Kleinian groups is studied. Previously Jorgensen, Thurston, Kerckhoff and Ohshika found examples of groups where the former is a proper subgroup of the latter. When the geometric limit is finite, a detailed study was done by Jorgensen and Marden. Here the general situation is discussed and the criteria for both limits to be equal are given. It is proven that algebraic limit is the fundamental group of a compact submanifold of the quotient of the geometric limit under some restrictions. When the algebraic limit has non-empty domain of discontinuity, connected limit set and no accidental parabolic elements, it is a precisely embedded subgroup of the geometric limit and therefore will be either a degenerate group or a generalized web group. Combining all these, it is obtained that algebraic limit corresponds to a compact submanifold of the geometric limit. Also shown that any precisely embedded web subgroup of a torsion-free Kleinian group \(\Gamma\) is a summand of a Klein-Maskit decomposition of \(\Gamma\). The relations between these limits and the cores of hyperbolic 3-manifolds are established.
MSC:
30F40 Kleinian groups (aspects of compact Riemann surfaces and uniformization)
PDF BibTeX Cite
Full Text: DOI Link arXiv


What Do Yellow, Red, Blue, and Green Lines Mean on the iPhone Weather App or Widget?
Checking the weather has become a relatively easy process since modern smartphones have come into existence. You can now simply open an app and access the weather information of your city or another from anywhere on the planet. iOS 15 makes knowing the weather around much easier to understand and interpret as it not only notifies you about upcoming weather conditions but also gives you a glimpse of what to expect throughout the day in terms of temperature.
If you're wondering why you're using seeing bars colored in yellow, red, blue, or green inside the Weather app, we'll help you understand what they are, what those colors mean individually, and more in the post below.
Why do you see Yellow, Red, Blue, and Green lines on the Weather app/widget?
iOS 15 brings a whole new redesign to the Weather app and the latest update to the service has brought a new visual way to show you the temperature of the place you're in. If you're seeing a bar next to today's weather colored in yellow, red, blue, or green lines, it essentially tells you the temperature range for the day.
Weather app in iOS 15 DB2
You should also be able to see similar bars corresponding to tomorrow's weather info and a few subsequent days by checking out the 10-day weather forecast and the 4×4 Weather widget.
This is a welcome change to iPhone users who can now get an idea of the whole day's forecast instead of just being shown the highest and lowest temperatures for the day.
Weather Widget in iOS 15 DB1
Related: iOS 15: How To Print to PDF on your iPhone and iPad
What does every color mean?
In case you're wondering what is the temperature range for a particular day in your region, you need to first understand what range each of the colors indicated inside the Weather app corresponds to.
 - Dark Blue: Extremely Cold (less than 0°C)
 - Light Blue: Cold (0°C to 15°C)
 - Green: Slightly Cold (15°C to 20°C)
 - Yellow: Slightly Warm(20°C to 25°C)
 - Orange: Warm(25°C to 30°C)
 - Red: Extremely Hot (30°C and above)
An overview of these color codes will also appear when you open a location's Temperature Index. Here's what it looks like:
Why do I see different colors in the same line?
Depending on the weather in your region, you may see a single-colored or multi-colored line adjacent to a particular day inside the weather app.
If you only see a single line, you can expect the temperature range to remain the same throughout the day.
If you see multiple colors in the same bar, then you can expect the temperature to vary significantly between the start and end of the day. When you see multiple colors, they will be stacked in the same manner as they're listed above.
For example, if you live in a moderately warm region but expect rainfall, you may see today's weather show you a line with a combination of Orange/Yellow/Green colors.
Related: iOS 15: How To Drag and Drop Pictures, Files, Texts, Links, and More Between Apps
Why are some colored lines shorter than others?
If you're looking at the temperature range of your region for the next few days, you may notice that some colored lines are longer or shorter than the rest of them. Some lines may cover the whole length of the bar while some will have empty spaces on the left or right sides. Why is that, you ask?
The colored bars do not only show you various temperate ranges but also indicate the minimum and maximum temperatures for a particular day. To help you understand what the weather is going to be like for the upcoming days, the Weather app shows the minimum and maximum temperatures on the left and right sides of the colored bar respectively for the next 10 days.
If a day's minimum temperature matches with the 10-day forecast's minimum value, then its bar will start from the extreme left.
If a day's maximum temperature matches with the 10-day forecast's maximum temperature, then its bar will end on the extreme right side.
For days where the temperature range is shorter than the range expected for the next 10 days, their bars will be shorter.
For example, let's take a look at Copenhagen's 10-day forecast.
As you can see from Today's forecast above, the colored bar changes from green to yellow to orange to indicate the transition from 14°C to 24°C throughout the day. You will also notice that Today's forecast occupies the whole bar leaving no empty space behind. This means the maximum and minimum temperatures for the day are the same as what's expected in the next 10 days.
When you compare today's forecast to that of Thursday, you will notice that the colored bar is shorter than the one shown for today. That's because, the minimum temperature for Thursday is 16°C, which is 2°C higher than today; that's why the temperature bar shift slightly (2/10 portion; since 14-24°C is the total size of the bar) to the right side.
Similarly, Thursday's maximum temperature (21°C) is also lower than the maximum value (24°C) for the 10-day forecast and that's why its temperature bar ends 3 spaces shorter the whole size of the bar.
Depending on the weather in your region, you may see different-sized bars for different days if you're expecting significant changes in the climate.
How do you get it?
The new temperature range bars are available in the Weather app on iOS 15 Developer Beta 2 (DB2) that released last week for iPhones. If you're already on the first Developer beta of iOS 15, you can update your device to DB2 by going to Settings > General > Software Update and then installing the latest version that's available.
The new temperature bars are an exclusive feature on iOS 15 only, so if you're running iOS 14 or an older operating system, you will need to wait till this fall when Apple releases the stable version of iOS 15 to the public.
Where can you see colored temperature bars?
The colored bars that indicate the temperature range for a particular day can be seen in two different ways:
 - Inside the Weather app: You can see the temperature range for today and all subsequent days under the '10-Day Forecast' section when you view a weather card after opening the Weather app.
 - Inside the Weather app's 4×4 widget: Temperature range bars are also available when you use the 'Large' size Weather widget. However, instead of a 10-day forecast, you will only see the colored bars for the next 5 days. You won't see the temperature range in a line for today's forecast as well. Instead, you will be greeted with a periodic layout of estimated temperature for the next few hours.
I'm on iOS 15 beta. Why do I not see this?
If you're already on iOS 15 beta and you're not seeing the new temperature range inside either the Weather app or widget, then it means you're not on the newest version of iOS 15 beta. As we have mentioned above, the colored temperature bars are only visible inside the Weather app if your iPhone is running the latest iOS 15 Developer Beta 2 (DB2) that Apple released last week. You can update your device to the latest beta by going to Settings > General > Software Update.
If you're on iOS 15 DB2 but you're facing issues with the Weather app, you need to accept that you may have run into a bug that's expected from such early developmental updates. You can expect these bugs to be ironed out in future beta releases or when iOS 15 rolls out to the public. If you're facing an issue inside the Weather app, you can open the Feedback app to report it to Apple so they resolve it in the next version.
That's all there is to know about colored lines/bars in the Weather app on iOS 15.
Posted by
Leave a Reply


text:
Why has the fertility rate risen over the last decade in England and Wales?
17-Jun-2013The fertility rate peaked in 2010 with the highest total fertility rate since 1973
Babies born in England and Wales had a father with an average age of 32.6 in 2011
12-Jun-2013Fathers tend to be older than mothers
170 Years of Industrial Change across England and Wales
05-Jun-2013This story looks at 170 years of industrial change across England and Wales and some of the factors driving it. It draws on data from censuses since 1841 and shows that much of this change has been in the last 100 years.
After 170 years of labour market change, now only 1% of workers are in agriculture
05-Jun-2013Census data to look at how the proportions of people employed in different industries has changed since 1841
Video Summary: 170 years of industrial change in England and Wales
05-Jun-2013Short video from the ONS looking at 170 years of industrial change in England and Wales. First it looks at which industries people worked in in 1841 and compared it to 2011, as well as, looking at the patterns of change across the whole period. Next it covers the key developments that have had an impact on the main industries in England and Wales, including the steam locamotive, electric telegraph, nuclear power and the world wide web. Lastly it focuses on 2011 and looks at the gender breakdown across the main industries in England and Wales.
Summary: Providing unpaid care may have an adverse affect on young carers' general health
04-Jun-2013A summary of unpaid care by 5 to 17-year-olds in England and Wales
2001 vs 2011 Census - Country of birth comparison tool
Compare the age-sex structures of countries of birth for usual residents in England and Wales


text:
Browse the Template Center to find a pre-made template or create templates from your most frequently-used items.
What you'll need
- Templates are available on every plan.
- Guests can access Doc, task, view, checklist, and Whiteboard templates.
Create a template
Save tasks, Docs, and views as templates to apply an established format to new Workspace items.
Use the Template Center
The Template Center is a library of both pre-made templates and templates you've saved! You can also find templates created by members of your Workspace or the ClickUp community.
Customize a template
Customize an existing template to keep your workflows current.
Create and apply tags to organize your templates. You can filter the Template Center by tags to find a specific template.
You can also filter templates by department or creator. In the upper-right corner of the Template Center, click the Departments or Create By dropdown to filter.
Add a preview image to a template
You can add preview images to templates that are in your Template Center library to give your teammates a clue about the template's use case.
To add a preview image:
- Open a template.
- Click browse and select a file or drag and drop a file into the preview area.
Set a default task template for a List
Remap dates when applying templates
When you create a Space, Folder, or List template, you can choose to save their tasks' start and due dates when setting the template Import options.
When you apply the template, you can choose to use the original task start and due dates or remap them. Instead of manually updating every task, all your tasks will be updated when the template is applied.
Remap subtask due dates
Enable the Remap Subtask Due Dates ClickApp to automatically change subtask due dates by the same amount their parent task is changed.
For example, if you move the parent task due date back five days, all subtask dates will also be moved back five days.
Template Center Activity Log
View the templates you have created, merged, and applied in your Workspace.
Templates are merged when applied to an existing task.
To access the Activity log, from the Template Center:
- In the left sidebar, click Activity Log.
- Browse the templates you've created, merged, and applied throughout your Workspace.
To find specific template activity, from the Activity Log:
- Click the column headings to sort template activity.
- Search for specific templates using the Filter at the top right.
To troubleshoot templates using the Activity Log:
- Hover over error in the status column to see why the template wasn't created, merged, or applied.
- Hover over the date & time value for each item in the Activity Log to see how long it took to create, merge, or apply the template.
- The first timestamp is when the activity started, and the second timestamp is when the activity was completed.


text:
Caplan Foundation for Early Childhood: Early Childhood Grants
Deadline: Letter of Intent Due September 30, 2022
Category: Children; Development; Education; Nutrition,
The Caplan Foundation for Early Childhood supports promising research and development projects that appear likely to improve the welfare of young children, from infancy through 7 years, in the United States. Welfare is broadly defined to include physical and mental health, safety, nutrition, education, play, familial support, acculturation, societal integration and childcare.
Grants are only made if a successful project outcome will likely be of significant interest to other professionals, within the grantee's field of endeavor, and would have a direct benefit and potential national application. The Foundation's goal is to provide seed money to implement those imaginative proposals that exhibit the greatest chance of improving the lives of young children, on a national scale.
Grants are made in the areas of:
- Early childhood welfare
- Early childhood education and play
- Parenting education
Please contact Daniel Hadley if you are interested in applying to this opportunity.


text:
Database has large amounts of unused space (SharePoint Foundation 2010)
Published: November 15, 2011
Rule Name: Database has large amounts of unused space.
Summary: The database has large amounts of unused space allocated on the disk. This database uses a large amount of space on the file system unless it is shrunk down to a small size. This event occurs if the unused space is more than 20% of the disk space and the unused space is greater than the auto-growth size plus 50 megabytes (MB).
Cause: Many activities can create unused space in the database. These activities include running the Windows PowerShell Move-SPSite command, and deleting documents, document libraries, lists, list items, and sites.
Resolution: Ignore this event, or shrink the database if you have to.
Normally you can safely ignore this event. You shrink a database only if it proves absolutely necessary — for example, when you have performed an operation that removes a very large quantity of data from a database, and the free space is not expected to be used again. You can shrink the database by using the DBCC ShrinkDatabase command or SQL Server Management Studio. For more information, see DBCC SHRINKDATABASE (Transact-SQL) (_URL_ and How to: Shrink a Database (SQL Server Management Studio) (_URL_
The white paper Database Maintenance for Microsoft SharePoint 2010 Products (_URL_ provides very important guidelines for shrinking a database. We strongly recommend that you read this white paper before you shrink a database.
November 15, 2011


Environment Variables
1. Shared State
This feature is only available on macOS 10.15+. Prior to macOS 10.15, it might be crashed.
It's possible to share states from the onRequest() and the onResponse() from different scripts when the script is executed with the global object: sharedState
 - The sharedState is a JS Object (Dictionary), so you can assign any keys and values from onRequest(), then receiving it on the onResponse() or from different script.
The following code demonstrates:
 - Get the global counter and increase it as soon as the script is executed
 - Share data between Request and Response
function onRequest(context, url, request) {
// Save some state to sharedState
sharedState.url = url;
sharedState.data = "custom";
sharedState.info = {"username": "Proxyman"};
// Increase the global counter
var count = sharedState.count?? 0;
count += 1;
sharedState.count = count;
// Log
return request;
function onResponse(context, url, request, response) {
// Receive it
console.log("Custom data = " + sharedState.dataa);
console.log("sharedState.count = " + sharedState.count);
// Done
return response;
From Proxyman 2.25.0+, the sharedState is available across different scripts. It is only released when quitting Proxyman app or using 'clearSharedState()' function.
Prior to Proxyman 2.24.0, the sharedState is only alive on the current flow that executes the script and it's released when the script is run over.
To clear all data, please consider using 'clearSharedState' function.
// Clear all data from sharedState object
2. Environment Variables
Plan to support soon.


text:
Before Christmas, Bluebirds enjoyed reading the poem "The Night Before Christmas" and looked at the layout and rhyming couplets.
They also investigated the meaning of unknown words as this poem is quite old fashioned in places! Since returning to school, Bluebirds have been looking at the features in the poem "January Brings the Snow" and have made a recording of it for you to hear. Again this poem has some dated language which initiated lots of chat and investigation into unfamiliar language. Boys and girls took it in turn to read a verse each and tried hard to perform in unison.


text:
GeekDad Puzzle of the Week Answer: How to Bullseye a Womp Rat
- 5:30 AM
Get ready for some serious puzzling. Basically this week's puzzle asked you to calculate the probability of success of Luke's shot at the Death Star exhaust port. First he had to survive the surface run. Then he had to survive long enough in the trench with Vader on his tail to get off a clean shot. Then he had to pull the trigger within the very short time that a photon torpedo would enter the exhaust port instead of simply exploding on the surface — i.e. Luke once he was in position, Luke had to bullseye the womp rat (which sounds a bit like an euphemism you might use with your significant other when the kids are listening).
In any case, Andy and independently Blaine and Felicia sent spectacular and correct answers to this important conundrum: From the time Luke found himself in the sky around the Death Star, he had a 0.0168% or a 1-in-5946 chance of success.
Here is Andy's excellent explanation:
Okay, so let's break this down into three components:
P_s: the probability that Luke survives the surface run
P_t: the probability that he survives in the trench long enough to get a shot off (given that survived the surface run)
P_h: the probability that he actually hits the exhaust port (given that he survived the trench run)
Then, the overall probability of success is simply P_s * P_t * P_h.
Now let's figure out what the values for each of those components are.
P_s is easy, because it was given to us.P_s = 10% = 0.1
P_t is determined by an exponential decay function:P_t = P_0 * e(-kt)
where:P_0 = the probability of surviving until the start of the trench run = 1 (because P_t is already conditioned on surviving the surface run)
k = the decay constant = 1.15 (given)
t = time (in minutes) that Luke has to survive in the trench
Of course, now we need to calculate t:
t = d / s
where:d = distance traveled (in km)
s = speed = 1050 km/h (given) = 17.5 km/min
Now, we need to calculate d:
d = (1/8)C = (1/8)*2πr = (1/4)*πr
where:C = circumference of the midhemisphere trench (in km)
r = radius of the midhemisphere trench (in km)
As illustrated in the above picture, because the Death Star has a radius of 80 km, r is given by:
r = sin(45°) * 80 km = 40*sqrt(2) km ≈ 56.569 km
Plugging that into the equation for d, we get:
d ≈ (1/4)*π*56.569 km ≈ 44.429 km
Plugging that into the equation for t, we get:
t ≈ 44.429 / 17.5 ≈ 2.539 min
Finally, plugging that into our original equation, we get:
P_t ≈ 1 * e(-1.15 * 2.539) ≈ 0.0540
So, assuming Luke makes it to the start of the trench, he has around a 5.4% chance of making it to the end.
Finally, let's figure out the likelihood of Luke's shot hitting the target:P_h = t_p / t_r
where:t_p = the amount of time the exhaust port is in the target zone (in seconds)
t_r = Luke's reaction time = 0.22 s (given)
We can calculate t_p using the following equation:
t_p = l_p / s
where:l_p = length of the exhaust port = 2 m (given)
s = Luke's speed = 1050 km/h (given) = _PHONE_ m/h ≈ 291.667 m/s
Plugging those values into the equation for t_p gives us:
t_p ≈ 2 / 291.667 ≈ 0.00686 s
Plugging that into the equation for P_h gives us:
P_h ≈ 0.00686 / 0.22 ≈ 0.0312
So. assuming Luke survives long enough to get a shot off, he has a little better than 3% chance of hitting the port.
Putting this all together, the overall probability that Luke makes it to the trench, survives the trench run, and manages to hit the exhaust port (starting a chain reaction that should destroy the station), is given by:P ≈ 0.1 * 0.0540 * 0.0312 ≈ 0.000168
Luke has around 0.0168% chance of success, a little better than your chances of flipping 13 heads in a row with a fair coin. So, unlikely, but nowhere near winning-the-lottery-unlikely.
The second part of the puzzle asked entrants to pontificate about the role of the Force in guiding Luke's shot. Again, I defer to Andy:
Now then, we have to consider what effect the influence of the Force would have on his chances of success. I would argue that the Force does not preordain that Luke should succeed. The Force does not care whether Luke succeeds or fails. It is simply an energy field that surrounds and permeates all living things. However, it does significantly improve Luke's awareness of his surroundings and his reaction time, and therefore his likelihood of success in each of the three stages listed above. As seen in the prequels, Jedis have little difficulty surviving barrages of blaster fire in the midst of heated battles. They are able to dodge, deflect, and even redirect incoming shots to hit their opponents. It is difficult to estimate the reaction time necessary to accomplish these feats, but according to the analysis on this page, blaster shots travel around 78 mph, which is why even non-Jedis are often able to dodge them. 78 mph is a reasonable speed for a major league curveball, which gives us a good frame of reference. A reasonably skilled professional baseball player would have a chance of hitting a curveball, but it is not a certainty, and no normal human could hit a curveball into a human sized target while simultaneously dodging 10 or so other curveballs. Let's estimate that in order to regularly be able to pull off those kinds of stunts, a Jedi would need to be able to react around 20 times faster than a normal human. (This clearly involves a bit of hand waving, but say 10x for the number of incoming shots involved, with an additional 2x for the difficulty of deflecting the shot back into a foe.) Of course, Luke is not a full Jedi – so let's say that the Force only makes him 10x faster/more aware of his surroundings than an average human.A 10x reaction speed translates directly into a 10x likelihood of firing his shot at the right time, which raises P_h to around 31.2%. Let's say it also reduces his chance of being hit on the surface run by 10x, so instead of a 90% chance of failure, he has a 9% chance, or in other words, a 91% chance of success. The trench run is a little trickier, because there is so much less room to maneuver, so let's say his chance of failure is only cut by 5x, from around 95% to around 19%, giving him an 81% chance of success (ignoring the Captain Solo effect). Putting this all together, with the influence of the Force, Luke has around a 22.7% chance of success, around 1350x what his chances are without the Force. Not bad for a hokey religion!
And the winner of this week's puzzle and the $50 ThinkGeek gift certificate is, of course, Andy. Congratulations! Don't forget to tune in Monday for another installment of POTW!


Generate numbered list in vim
Today I accidentally discovered that using CTRL+X in VIM command mode will decrement the number under the cursor and CTRL+A will increment a number. While sharing this with a colleague at work he mentioned that perhaps this could be used to generate a numbered list automatically. And then while we were looking this up in the vim docs we found a recipe for doing exactly that using a macro.
Excerpt from _URL_
Example: Use the following
steps to make a numbered list.
1. Create the first list entry, make sure it starts with a number.
2. qa - start recording into register 'a'
3. Y - yank the entry
4. p - put a copy of the entry below the first one
5. CTRL-A - increment the number
6. q - stop recording
7. <count>@a - repeat the yank, put and increment <count> times
And of course some minor modifications would be required to correctly handle more than one digits correctly.
vim_power
Advertisements
Leave a Reply
Fill in your details below or click an icon to log in:
WordPress.com Logo
You are commenting using your WordPress.com account. Log Out / Change )
Twitter picture
You are commenting using your Twitter account. Log Out / Change )
Facebook photo
You are commenting using your Facebook account. Log Out / Change )
Google+ photo
You are commenting using your Google+ account. Log Out / Change )
Connecting to %s


text:
What is ice cream? It's a typical Christmas sweet of Andalusian pastries. The origin of this delight is found in Estepa, specifically in the Convent of Santa Clara. It is known that the first recipe for mantecado was born here because estimates dating from 1780 are preserved in which the nuns commission a neighbor, Juan Borrego, to buy them several arrobas of sugar, bushels of cocoa and pounds of cinnamon.
Estepa, located in the southeast of the province of Seville, concentrates all the industries that are dedicated to the production and packaging of polvorones and mantecados included in the Protected Geographical Indication, "Polvorones de Estepa" and " Estepa Mantecados ".
The secret of our mantecados are centered on three fundamental pillars: the quality of our raw materials, respect for the recipes of our ancestors and the human team in charge of turning the above into exquisite products that satisfy the most demanding palates.
What do the mantecados contain
The mass of the mantecados is obtained from a mixture of wheat flour, lard, and icing sugar . They do not have almonds and its characteristic coverage, especially in homeowners, is usually the sesame (Sesame seeds). In the case of the "Mantecados de Estepa" made from olive oil, the butter will be replaced by olive oil. extra virgin olive .
Unlike polvorones, mantecados usually complement their main ingredients with others, thus giving rise to mantecados of different flavors : chocolate, lemon, cinnamon, coconut …
Where to buy Estepa mantecados
Our factory and store is located in: Avenida Andalucia 227, 41560, Estepa . Working since 1955 to offer our customers products of great quality and flavor.
One of our added values is the human team behind the development of each of our products. its professionalism and dedication coupled with the use of top quality raw materials and the artisanal elaboration , make Dulces La Ponderosa products a snack with a traditional aroma and incomparable flavor.
At Dulces La Ponderosa the important thing is our customers, that is why we adapt to the new times with our Online store, where we sell the traditional Estepa ice cream , in addition to other products. We bring the best homemade mantecados from Estepa to your home. We also have experience of selling abroad, so you can enjoy this delicious Christmas sweet anywhere in the world.

source: m-a-p/FineFineWeb


Recover Missing Photos Windows 10 All Pictures Gone
Losing all your photos on Windows 10 can be a frustrating experience. Whether it's due to accidental deletion, a software glitch, or another issue, finding a solution to recover missing photos is crucial. In this article, we will explore methods to retrieve your precious pictures and prevent future data loss.
Check your recycle bin or trash folder to see if the photos were accidentally deleted.
Understanding Why Your Photos Vanished
If your photos have vanished from your Windows 10 computer, it could be due to a few different reasons. One common reason is accidental deletion, either by yourself or someone else using the computer. Another possibility is that the files were moved to a different location within the computer, or even to the recycling bin.
It's also possible that a software glitch or update may have caused the photos to disappear. In some cases, a virus or malware could be the culprit. Additionally, issues with the hard drive or storage space could result in missing photos.
To start recovering your missing photos, it's important to first determine the reason for their disappearance. This will help guide your next steps in the recovery process.
Memories may fade, but photographs are forever.
Locating Missing Pictures on Your Computer
If your pictures are missing from your Windows 10 computer, first check the Recycle Bin and use the search function in File Explorer. If that doesn't work, try using the Backup and Restore feature in Control Panel or check OneDrive for automatic photo backup. If all else fails, consider using a data recovery tool to scan your hard drive for the missing photos. Avoid using your computer for other tasks to prevent overwriting the missing files. With patience and the right tools, you can hopefully recover your lost pictures.
Recovering Photos from the Recycle Bin
To recover photos from the recycle bin in Windows 10, open the Recycle Bin, select the photos, and choose "Restore." If the photos are not in the Recycle Bin, use a data recovery tool or check your backup and restore settings.
Restoring Deleted Photos with File History
If you have accidentally deleted photos on Windows 10, you may be able to restore them using File History.
To begin, open File Explorer and navigate to the folder where the photos were located. Right-click on the folder and select "Restore previous versions" from the context menu.
A new window will open, showing you a list of previous versions of the folder. Select the version that contains the photos you want to restore and click "Restore."
If you don't see the "Restore previous versions" option, you may need to enable File History in the Control Panel.
Once enabled, File History will automatically back up your files, making it easier to recover missing photos in the future.
Retrieving Lost Photos via Previous Versions
To retrieve lost photos in Windows 10, use the "Restore previous versions" feature by right-clicking on the folder where the photos were located and selecting the version that contains the photos you want to recover. If this feature is not available, consider using data recovery software to scan your hard drive for the missing photos, but act quickly and avoid saving new files to increase the chances of successful recovery.
Using Backup and Restore for Deleted Pictures
If you have accidentally deleted pictures on your Windows 10 computer, you may be able to recover them using the Backup and Restore feature. To begin, go to the Control Panel and select "Backup and Restore (Windows 7)" from the options. Then, click on "Restore my files" and follow the prompts to restore the deleted pictures from a previous backup.
If you have been using OneDrive to back up your files, you can also check there for any missing pictures. Simply log in to your OneDrive account and navigate to the folder where the pictures were located. You may be able to restore them from the recycle bin or from an earlier version of the folder.
Utilizing Data Recovery Software for Lost Images
If you've lost images on Windows 10 and need to recover them, utilizing data recovery software can be a lifesaver. One of the most effective tools for this task is EaseUS Data Recovery Wizard.
First, download and install the software on your computer. Next, launch the program and select the location where your photos were stored, such as your hard drive or external storage device. Then, initiate the scan and wait for the software to search for and display the recoverable images.
Once the scan is complete, preview the found photos and select the ones you want to recover. Finally, choose a safe location to save the recovered images, such as a different drive or external storage.
Scroll to Top


text:
|A Debate Dashboard to Support the Adoption of Online Knowledge Mapping Tools
This event took place on 31st March 2010 at 11:30am (10:30 GMT)
Knowledge Media Institute, Berrill Building, The Open University, Milton Keynes, United Kingdom, MK7 6AA
Several web tools, also known as argument mapping tools, have been developed so far, which apply an organizational and visualization approach based on argument mapping. An argument map is a representation of reasoning in which the evidential relationships among claims are made wholly explicit using graphical or other non-verbal techniques. Argument mapping provides a logical rather than time-based debate representation of users' contributions. This representation model has proved to provide users with several advantages, such as: i. encouraging evidence-based reasoning and critical thinking; ii. improving the understanding of wide amount of knowledge; iii. driving conversation toward effective deliberation; iv. expanding our capacity to grasp more complex discussions. Nevertheless those technologies still do not have widespread diffusion and the level of adoption is low.
The aim of my PhD thesis is to investigate new technological solutions to support the adoption of argument mapping tools. The main barrier to the adoption of mapping tools is the existence of constraints to the conversation that force users to respect pre-established communication formats and rules. Moreover, the literature suggests that the loss of information and feedback during conversation represents another important barrier to the adoption of mapping tools. Therefore, the loss of immediacy, due to the formalization, coupled with the lack of information about users, interaction processes, and generated content, entails the users a higher cognitive effort and time consuming to learn how to use the tool. This makes the benefit/cost ratio too low for the average user, thus causing limited adoption (Davis, 1989). To tackle this problem, we propose a Debate dashboard in order to provide users with visual feedback about the interaction between users and the content generated by them. This feedback aims at reducing cognitive efforts and making the benefits associated with using of arguments maps more evident. The dashboard will be composed of visualization tools which deliver such feedback.
The webcast was open to 100 users
| Click below to play the event (5 minutes)|
|Apologies for the occasional audio artifact in the recording.|


Question: There are many running shoes on the market of varying
There are many running shoes on the market of varying degrees of quality. Long-distance runners require a shoe that provides a significant reduction in impact shock compared to the standard running shoe intended for weekend joggers. A runners' magazine commissioned a study to evaluate three brands of shoes that claim to provide a reduction in impact shock. Ten experienced long-distance runners were selected to participate in the study. The study would consist of placing sensors in the runners' shoes to measure impact forces as the runner ran on a treadmill set at a speed of 4 meters per second. Because the impact force is very dependent on the weight and individual stride of the runner, each of the 10 runners will be observed while using all three brands and a widely sold brand that will serve as a control. The runners were evaluated wearing the four brands in a random order with sufficient time between evaluations to allow the runners to be well rested prior to each evaluation. The impact forces (in Newtons) are presented in the following table with the following notation: BC = control brand and B1, B2, and B3 = three new brands.
a. Is there significant (a 5 0.05) evidence of a difference in the four brands of shoes with respect to their mean peak force?
b. How many runners would be needed to conduct this study as a completely randomized experiment? What would be the gains and losses in conducting the study as a completely randomized design?
c. What conditions are necessary in order for the test conducted in part ( a) to pro-vide valid p-values?
d. What is the population to which the results of this study can be validly applied? 18.5 Crossover Designs
$1.99
Sales0
Views18
Comments
 - CreatedNovember 21, 2015
 - Files Included
Post your question
5000


[][src]Crate google_customsearch1
This documentation was generated from customsearch crate version 1.0.10+20181001, where 20181001 is the exact revision of the customsearch:v1 schema built by the mako code generator v1.0.10.
Everything else about the customsearch v1 API can be found at the official documentation site. The original source code is on github.
Features
Handle the following Resources with ease from the central hub ...
Not what you are looking for ? Find all other Google APIs in their Rust documentation index.
Structure of this Library
The API is structured into the following primary items:
 - Hub
 - a central object to maintain state and allow accessing all Activities
 - creates Method Builders which in turn allow access to individual Call Builders
 - Resources
 - primary types that you can apply Activities to
 - a collection of properties and Parts
 - Parts
 - a collection of properties
 - never directly used in Activities
 - Activities
 - operations to apply to Resources
All structures are marked with applicable traits to further categorize them and ease browsing.
Generally speaking, you can invoke Activities like this:
let r = hub.resource().activity(...).doit()
Or specifically ...
This example is not tested
let r = hub.cse().siterestrict_list(...).doit()
let r = hub.cse().list(...).doit()
The resource() and activity(...) calls create builders. The second one dealing with Activities supports various methods to configure the impending operation (not shown here). It is made such that all required arguments have to be specified right away (i.e. (...)), whereas all optional ones can be build up as desired. The doit() method performs the actual communication with the server and returns the respective result.
Usage
Setting up your Project
To use this library, you would put the following lines into your Cargo.toml file:
[dependencies]
google-customsearch1 = "*"
# This project intentionally uses an old version of Hyper. See
# _URL_ for more
# information.
hyper = "^0.10"
hyper-rustls = "^0.6"
serde = "^1.0"
serde_json = "^1.0"
yup-oauth2 = "^1.0"
A complete example
extern crate hyper;
extern crate hyper_rustls;
extern crate yup_oauth2 as oauth2;
extern crate google_customsearch1 as customsearch1;
use customsearch1::{Result, Error};
use std::default::Default;
use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
use customsearch1::Customsearch;

// Get an ApplicationSecret instance by some means. It contains the 'client_id' and
// 'client_secret', among other things.
let secret: ApplicationSecret = Default::default();
// Instantiate the authenticator. It will choose a suitable authentication flow for you,
// unless you replace 'None' with the desired Flow.
// Provide your own 'AuthenticatorDelegate' to adjust the way it operates and get feedback about
// what's going on. You probably want to bring in your own 'TokenStorage' to persist tokens and
// retrieve them from storage.
let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
 hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
 <MemoryStorage as Default>::default(), None);
let mut hub = Customsearch::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
// You can configure optional parameters by calling the respective setters at will, and
// execute the final call using 'doit()'.
// Values shown here are possibly random and not representative !
let result = hub.cse().siterestrict_list("q")
 .start(46)
 .sort("eos")
 .site_search_filter("erat")
 .site_search("sadipscing")
 .search_type("dolor")
 .safe("eirmod")
 .rights("elitr")
 .related_site("amet")
 .or_terms("no")
 .num(65)
 .lr("eirmod")
 .low_range("dolore")
 .link_site("invidunt")
 .img_type("aliquyam")
 .img_size("accusam")
 .img_dominant_color("Lorem")
 .img_color_type("sea")
 .hq("et")
 .hl("duo")
 .high_range("et")
 .googlehost("eirmod")
 .gl("sanctus")
 .filter("et")
 .file_type("amet")
 .exclude_terms("et")
 .exact_terms("consetetur")
 .date_restrict("ut")
 .cx("ea")
 .cr("sed")
 .c2coff("dolor")
 .doit();

match result {
 Err(e) => match e {
 // The Error enum provides details about what exactly happened.
 // You can also just use its 'Debug', 'Display' or 'Error' traits
 Error::HttpError(_)
 |Error::MissingAPIKey
 |Error::MissingToken(_)
 |Error::Cancelled
 |Error::UploadSizeLimitExceeded(_, _)
 |Error::Failure(_)
 |Error::BadRequest(_)
 |Error::FieldClash(_)
 |Error::JsonDecodeError(_, _) => println!("{}", e),
 },
 Ok(res) => println!("Success: {:?}", res),
}
Handling Errors
All errors produced by the system are provided either as Result enumeration as return value of the doit() methods, or handed as possibly intermediate results to either the Hub Delegate, or the Authenticator Delegate.
When delegates handle errors or intermediate values, they may have a chance to instruct the system to retry. This makes the system potentially resilient to all kinds of errors.
Uploads and Downloads
If a method supports downloads, the response body, which is part of the Result, should be read by you to obtain the media. If such a method also supports a Response Result, it will return that by default. You can see it as meta-data for the actual media. To trigger a media download, you will have to set up the builder by making this call: .param("alt", "media").
Methods supporting uploads can do so using up to 2 different protocols: simple and resumable. The distinctiveness of each is represented by customized doit(...) methods, which are then named upload(...) and upload_resumable(...) respectively.
Customization and Callbacks
You may alter the way an doit() method is called by providing a delegate to the Method Builder before making the final doit() call. Respective methods will be called to provide progress information, as well as determine whether the system should retry on failure.
The delegate trait is default-implemented, allowing you to customize it with minimal effort.
Optional Parts in Server-Requests
All structures provided by this library are made to be enocodable and decodable via json. Optionals are used to indicate that partial requests are responses are valid. Most optionals are are considered Parts which are identifiable by name, which will be sent to the server to indicate either the set parts of the request or the desired parts in the response.
Builder Arguments
Using method builders, you are able to prepare an action call by repeatedly calling it's methods. These will always take a single argument, for which the following statements are true.
Arguments will always be copied or cloned into the builder, to make them independent of their original life times.
Structs
Chunk
ContentRange
Implements the Content-Range header, for serialization only
Context
There is no detailed description.
ContextFacets
There is no detailed description.
CseListCall
Returns metadata about the search performed, metadata about the custom search engine used for the search, and the search results.
CseMethods
A builder providing access to all methods supported on cse resources. It is not used directly, but through the Customsearch hub.
CseSiterestrictListCall


text:
Arzina Zaver was working in complementary education when she conducted her study focused on recreating a third space in a religious education classroom in Vancouver, Canada. Her understanding of third space largely draws on the ideas of the literary theorist Homi Bhabha but has been re-defined within the context of this study to refer to a space of dialogue for Shia Ismaili Muslim adolescents
Alice Pascoe Hale is a Key Stage 2 teacher and Head of Learning and Teaching in an inner-London primary school. She conducted her research after becoming increasingly aware that the children she was teaching found it difficult to select books that they wanted to read, and to concentrate on reading. Many expressed negative attitudes towards reading, and in particular, towards reading at school. She began to think that the way we teach children to read and relate to books in England has gone badly wrong. The aim of the research was to better understand, from the point of view of the children, how they experienced learning to read at school. To do this, she created a Photographic Instrument, which enabled children to tell their own story of reading and the process of learning to read, from their own point of view.


Skip To Main Content
useLogin
useLogin is a React hook that facilitates login to your headless WordPress site without having to leave your Faust app.
API
The useLogin exports, defined as a TypeScript type:
type UseLogin = {
 loading: boolean;
 login: (
 usernameEmail: string,
 password: string,
 redirectUrl?: string,
 ) => void;
 data:
 | {
 generateAuthorizationCode: {
 code?: string;
 error?: string;
 };
 }
 | undefined;
 error: ApolloError | undefined;
};Code language: JavaScript (javascript)
Loading: A boolean flag that indicates whether the request for login is still in flight.
Login: The login request callback. It's function that you need to call with the following parameters: usernameEmail is the user email. password is the user password and redirectUrl is the redirect path when the login request is successful.
Data: the login response data. It's an object with the following attributes: generateAuthorizationCode is an object that contains either the code or an error message of the login attempt. You need to check these fields to see if the login request was valid or not (see Usage example for more context).
Error: if the login request has failed, it will return an instance of ApolloError.
Usage
Below is a full example of login to your WordPress site without leaving your Faust app. Upon a successful login, you will be redirected to /dashboard:
import { useLogin } from '@faustwp/core';
import { useState } from 'react';
export default function Login() {
 const [usernameEmail, setUsernameEmail] = useState('');
 const [password, setPassword] = useState('');
 const { login, loading, data, error } = useLogin();
 return (
 <form
 onSubmit={(e) => {
 e.preventDefault();
 login(usernameEmail, password, '/dashboard');
 }}>
 <fieldset>
 Username or Email
 <input
 id="usernameEmail"
 type="text"
 disabled={loading === true}
 value={usernameEmail}
 onChange={(e) => setUsernameEmail(e.target.value)}
 />
 </fieldset>
 <fieldset>
 Password
 <input
 id="password"
 type="password"
 disabled={loading === true}
 value={password}
 onChange={(e) => setPassword(e.target.value)}
 />
 </fieldset>
 {data?.generateAuthorizationCode.error && (

 )}
 <fieldset>
 <button type="submit">Login</button>
 </fieldset>
 </form>
 );
}
Code language: JavaScript (javascript)
It create some state values to keep track of the user email and password fields. It then uses the useLogin hook and extracts the return values. Based on the return values, it will either disable some fields when loading=true or return an error message when data.generateAuthorizationCode.error is not empty.