text:
Merchant Trade in Prehispanic Mesoamerica
The goal of my 2010 summer fellowship was to study the structure of intermediate scale trade in staple goods using archaeological and ethnohistoric sources. Its primary purpose was to broaden our understanding of how far staple goods that were the focus of trade by pochteca merchants actually moved across the Pre-Columbian landscape. The pochteca were a privilege class of traders who specialized in the purchase and movement of high value wealth goods and raw material used by artisans to produce craft goods for the state and its social elite. Instead of dealing with wealth goods, my project sought to identify
spheres of distribution for goods within the control of commoner households. Ethnohistoric sources indicate that commoners took both the crops they raised and the craft goods they produced to sell in regional marketplaces. The question was whether they also trafficked in these goods between regions. This project examined commercial behavior at the lower end of the merchant spectrum. Trade at local and inter-regional level was not a topic that Sahagun's pochteca informants discussed. Instead they chose to emphasize their valiant history of long distance trade and service to their Aztec overlords
The methodological approach employed was simple but appropriate for the task. The idea was to identify source areas for specific products and link them to the areas where these products were consumed. Producer and consumer locales were then entered into a GIS spatial database for depiction and pattern recognition. No attempt was made to plot the specific routes over which products moved. This will be a separate level of analysis and will be calculated using GIS techniques.


Stata The Stata listserver
RE: st: question on chow test
From Richard Williams <>
Subject RE: st: question on chow test
Date Sun, 20 Feb 2005 15:06:25 -0500
At 11:19 AM 2/20/2005 -0800, Daniel Schneider wrote:
If you say "testparm g2x1 g3x1 g4x1, equal" tests whether the effects of
x1 are the same in all groups, what is the difference to "testparm g2x1
g3x1 g4x1" which should test the same thing (at least that is what I
figured out and what you confirmed some lines above)?
No, the tests are different. -testparm g2x1 g3x1 g4x1- tests whether there are differences in the effects of x1 between any of the 4 groups. -testparm g2x1 g3x1 g4x1, equalallows the three groups to differ from the reference category; but it tests whether the effect of x1 is the same in groups 2, 3 and 4. For example, suppose your groups are white, black, other, with white as the reference category. The effect of x1 for blacks and others might significantly differ from the effect for white; but the effect of x1 may not be significantly differ between blacks and others. You might do things like this if you are trying to identify what the important contrasts are. Is it sufficient to simply distinguish between whites and non-whites, or are there differences among the subgroups of the non-whites?
Lets assume I have following coefficients:...
I also have a second group of coefficients:...
Again, differences among groups are statistically significant.
Can I make a meaningful discussion of the values of the differences
between the coefficents, for example claiming that the differences for
x2 are stronger because the differences are larger? I am personally feel
uncomfortable with just talking about statistical significance without
talking about effect strength and in this case the effect strength
should be buried in the difference, but I am not sure if it is correct
to really discuss the differences in this way.
Well (a) X1 and X2 have to be measured in the same metric of course, and (b) you'd still want to do significance tests as to whether, say, g4x2 really was larger than g4x1. Doesn't much appeal to me, but maybe if I knew what the variables were and the underlying theory I'd think differently.
> There are potentially zillions of tests you can be doing
> here, so you want
> to be careful you aren't just capitalizing on chance.
Sure, that's correct. My only problem is that I have four variables that
all could be different across groups, but don't have to (actually I have
more, but I am willing to hold the others constant based on theoretical
assumptions and my research interests).
Or is it better to run several separate regressions and leting only one
of the variables vary across groups while holding the others constant?
In that case I could use the simple testparm command as outlined in the
FAQ to test the differences of a specific variable.
I'd probably want to run the single regression. I'd also probably want to focus on the most critical contrasts, e.g. do the effects of x1-x4 differ across groups or don't they? If you do want to try out all the different possibilities, you should go for more stringent significant levels. But, the more complicated you make this, the more difficult it will be to interpret, and the more likely you are to come up with results that may be ideosyncratic to your data set. Just my opinion, others may disagree.
* For searches and help try:


Developer's Blog
Remember me? Register
Orb Walking - the Subtle Art
_TAG_. Introduction
_TAG_. What is orb-walking?
_TAG_. How to orb-walk
_TAG_. Defining orb spells
_TAG_. Who can orb-walk?
_TAG_. Orb-walk tactics
_TAG_) Why orb-walk?
_TAG_) When to orb-walk?
_TAG_. Comparing orb-walking and animation canceling/ani-cancel
_TAG_. Types of Orbs in DotA
_TAG_. Credits
_TAG_. Changelog
_TAG_. Introduction
Orb-walking, essential for harassing lane enemies and chasing them down for the kill later on. So, how do you do it, and more importantly, how do you abuse its potential as effectively as possible?
_TAG_. What is orb-walking?
It's manually casting orb spells while moving alongside the enemy hero. These spells must have zero cooldown, otherwise it is not possible to orbwalk, since you're waiting for your orb to cooldown while you're chasing. Only orb spells can be used to orb-walk.
_TAG_. How to orb-walk, then?
Manually cast your orb spell, then start moving [or issue any other command] once you see the attack projectile in the air [a trick known as animation cancel].
You should be within attack range still once your hero moves, so just repeat the process until you should back off, or until enemy hero dies.
_TAG_. What are orb spells and how do they differ from normal spells?
Orb spells [usually] have 0 cd, and they will add a visual effect to your normal attack projectile, as well as enhance your attack. Although the spells have 0 cd, they still cost mana to cast, and are still affected by Silences.
One of the major differences between normal spells and orb spells is their effects on Silencer's Curse of the Silent and Last Word, on Magic Stick/Wand as well as on Harbinger's Essence Aura.
Normal spells:
a) cause Curse of the Silent to be debuffed from the hero
b) cause the caster to be silenced by Last Word
c) add a charge to Magic Stick/Wand
d) trigger Essence Aura at its normal percentage.
On the other hand, orb spells:
a) will not debuff Curse of the Silent from hero
b) will not cause the caster to be silenced by Last Word
c) does not add charges to Magic Stick/Wand
d) triggers Essence Aura, but at a decreased percentage.
_TAG_. Who can orb-walk?
As will be mentioned below, there are only 7 heroes with skills at those shown levels who can orb-walk. For now, their icons should suffice.
_TAG_. Orb-walk tactics
_TAG_. Why orb-walk if you have autocast?
Orb-walking counts as casting a spell. This has 2 major effects on your gameplay.
1. It does not draw aggro from either creeps or towers. In other words, it does not attract enemy creeps or towers to attack you, so long as your hero is not the only thing they see.
2. Orb-walking heroes usually have a shorter casting animation compared to their attack animation. This helps in chasing, especially for Viper and Drow, who both have potent orb-based slows.
That being said, you don't have to orb-walk all game long. Once your IAS exceeds your casting animation speed, you can do without orb-walking, and proceed straight to autocasting your orbs.
_TAG_. When to orb-walk?
Orb-walk is used for harrassing to good effect, and is often the way to get first blood in orb-walker lanes [Huskar and Viper are potential candidates for this].
Reasoning for Huskar/Viper first bloods - DoT. Burning Spears and Poison Attack deal damage over time to their intended targets, so you can [sometimes] safely back off before your enemy falls. Huskar and Viper also have DPS boosting skills [Berserker's Blood/Nethertoxin] which will be very helpful in dishing out the damage.
So, when to orb-walk? During the laning phase, and when chasing, you'll find that orb-walk shines. Laning is for the harassing, and chasing is for when you don't want that enemy to get away. Cast orb -> move -> cast orb again -> move -> rinse and repeat until enemy dies, or until you should back off.
_TAG_. Orb-walking v Animation canceling/ani-cancel
It is mentioned above that orb-walking involves animation canceling. However, there are differences between normal animation cancel and orbwalking.
Orbwalking uses the spell cast animation. For all of the orb-walkers, they have a cast animation which is shorter than their normal attack animation. This gives them a slight advantage in terms of chasing, since they don't spend most of their time doing some funky animation which doesn't help you.
_TAG_. How many different types of orbs are there in DotA, and which of them can be used to orbwalk?
Item-based orbs [cannot be used to orb-walk]
Lifesteal - Mask of Death, Mask of Madness, Helm of the Dominator, Satanic
Chain Lightning - Maelstrom, Mjollinir
Greater and Lesser Maim - Sange and Yasha, Sange
Cold Attack - Eye of Skadi
Corruption - Desolator
Feedback - Diffusal Blade
Hero-specific orbs [can be used to orb-walk]
Bone Fletcher - Searing Arrows Level 3 onwards
Drow Ranger - Frost Arrows Level 1 onwards
Enchantress - Impetus Level 1 onwards
Netherdrake - Poison Attack Level 3 onwards
Obsidian Destroyer - Arcane Orb Level 4
Sacred Warrior - Burning Spears Level 1 onwards
Silencer - Glaives of Wisdom Level 4
_TAG_. Credits
dotaportal.com for the hero gifs, playdota.com for the skill icons, you for reading this guide and providing feedback.
_TAG_. Changelog
12/7/09 - submitted guide
17/7/09 - redid layout for guide
18/8/09 - after icing the guide for a while, redoing and retouching guide based on posters' suggestions, added section "orbwalking v ani-cancel" (incomp.)
Still to be added:
Misc guide
Author: crazy sheep
Map Vers.: 6.61b
Orb Walking - the Subtle Art
A brief guide to Orb-walking
Date Posted: 07/12/09
Last Comment:24/07/2009
Total Votes: 0
Current Rating: 0.00
Views: 33456
Login to post a comment


text:
Automatic topic identification of health-related messages in online health community using text classification
© Lu; licensee Springer. 2013
Received: 11 December 2012
Accepted: 11 June 2013
Published: 10 July 2013
To facilitate patient involvement in online health community and obtain informative support and emotional support they need, a topic identification approach was proposed in this paper for identifying automatically topics of the health-related messages in online health community, thus assisting patients in reaching the most relevant messages for their queries efficiently. Feature-based classification framework was presented for automatic topic identification in our study. We first collected the messages related to some predefined topics in a online health community. Then we combined three different types of features, n-gram-based features, domain-specific features and sentiment features to build four feature sets for health-related text representation. Finally, three different text classification techniques, C4.5, Naïve Bayes and SVM were adopted to evaluate our topic classification model. By comparing different feature sets and different classification techniques, we found that n-gram-based features, domain-specific features and sentiment features were all considered to be effective in distinguishing different types of health-related topics. In addition, feature reduction technique based on information gain was also effective to improve the topic classification performance. In terms of classification techniques, SVM outperformed C4.5 and Naïve Bayes significantly. The experimental results demonstrated that the proposed approach could identify the topics of online health-related messages efficiently.
Health issues are a primary concern for many people. Especially for the patients diagnosed with some serious diseases and their caregivers, they usually seek explanatory information about their disease or treatment. Traditionally, health professionals such as doctors are the primary source of medical information for patients. However, health professionals often fail to meet the patients' information needs fully. Many patients feel that doctors are too busy to answer their questions (Umefjord et al. 2003), or many doctors just tell their patients basic medical information but are not willing to take the time required to fully explain the details (Dickerson et al. 2006). This view was supported by the argument of Tyson (Tyson 2000), who suggested that there was a lack of attention to detail in the current doctor-patient relationship. Recently, the Internet is changing the way people experience life, including healthcare. Many studies on health communication have shown that patients are increasingly using the Internet for health information and support. A study of US-based cancer patients and their caregivers indicated that 80% of them were interested in health-related information on the Internet and 65% expressed an interest in online support groups (Monnier et al. 2002). Especially for those patients with chronic diseases, they would prefer to search online health information to be better informed about their illnesses (Bansil et al. 2006). In recent years, with the advent of some social media services, such as Wikipedia, FaceBook, online forums and medical Q&A, patients are more likely to obtain health information and share health experiences on these social media websites (Kinnane & Milne 2010). A recent survey showed that 34% of Internet users have read someone else's commentary or experience about health issues in online news group, website, or blog, and 24% of them have consulted online reviews of particular drugs or medical treatments (Fox & Jones 2009). These health-related social media services enable patients to take a more active role in making decisions about their health through the use of social support and the ability to explore treatment options (Gerber & Eiser 2001). In addition, convenience and anonymity are also important reasons why patients turning to the Internet, where patients could obtain health-related knowledge easily and quickly, and meanwhile they are not embarrassed to ask health professionals online or communicate with online members about their conditions (Anderson et al. 2003).
Although different types of social media applications can be used to obtain health-related information, online health community is among the most popular social media services. In online health community, patients and their caregivers can share their experiences and exchange interesting information. The emotional support and encouragement offered by community members is also important for patients suffering serious illness and help them cope with their diseases significantly better than those who address serious diseases by themselves.
Different participants sought different types of information and support. Some patients undergoing treatment for their diseases would prefer to talk of more treatment knowledge. Some survivors, even if their diseases have been permanently cured, were still willing to share their experiences and advice on how they deal with life's daily challenges through online health community. Moreover, some patients with serious illness often posted some messages with their blessing only to get mutual emotional support. So different participants have their own purpose and they only showed interest in some specific topics. However, currently in online health community, the messages that belong to the same topic scattered across many different threads, which makes it difficult for the participants to summarize and search their interesting messages quickly. An alternative solution is to classify these messages into different categories according to their topics, thus enables participants to obtain a sense of what online health community is, quickly find the issues they concerned about, become involved in online health community more easily, thereby gaining valuable information for their health self-education, self-care and self-management. In addition, for the websites that provide health-related social media services, topic identification and categorization could assist the web designers and developers into optimizing the human-computer interface, providing personalized tools and functions such as topic tags to facilitate the users to search their interesting topics quickly. However, with the explosion of online messages, it is becoming impractical to classify the messages manually. To address this issue, we proposed a topic identification approach based on text classification technique for identifying automatically topics of the health-related messages in online health community.
Over the recent years, text classification techniques have been widely used for topic identification of online text. In terms of medical informatics, some previous studies primarily focused on medical literature and clinical narratives. Take the example of MEDLINE biomedical database. It is well known that the MEDLINE medical literature contains millions of references to biomedical journal articles, making it very hard for researchers to efficiently reach the most relevant documents by searching. To address this issue, many studies attempted to design text classification system for classifying MEDLINE documents automatically (Yetisgen-Yildiz & Pratt 2005). In addition, text classification techniques were also often applied into clinical narratives to distinguish different types of patients, so that personalized medical services could be provided for them. For example, researchers have proposed a topic modeling for matching patient education materials to patients clinical notes so that relevant education articles could be recommended automatically to the patients and help patients find appropriate patient educational materials (Kandula et al. 2011). However, these studies mainly focused on professionally written medical text, which differed significantly from user-generated medical text in online health community. Few studies have attempted to apply text classification techniques into topic identification of these user-generated medical text.
In the data collection step, we first focused on an online health community and collected all the web pages by using the Web crawler software Offline Explorer. Then we parsed the pages to extract available health-related messages, meanwhile tagged these messages with their given topic category. Next, some noisy and unreliable data are filtered by text preprocessing, including stop words removal and word stemming.
Feature set generation
N-gram-based features. As mentioned above, current text classification techniques are predominantly based on BOW model, that is, identifying terms with all the words occurring in the document and performing classification based mainly on the presence or absence of these words. Some researchers have used different classification techniques but the results demonstrated that various classification techniques produced similar results for BOW-based features. After that, some researchers attempted to improve the BOW-based text representation and their research results demonstrated that the addition of word n-grams (sequences of words of length n) to the BOW-based text representation indeed improved performance. However, sequences of length n > 3 were shown to be not useful and might decrease the performance. So in this study, n-gram-based features(n<=3) were incorporated into feature set.
- (2)Domain-specific features. Studies have found that integrating domain-specific knowledge into textual feature representation could improve classification performance (Zhu et al. 2009). Since health-related messages in online community contain much medical knowledge, incorporating the medical domain-specific features could enhance the performance of topic identification significantly. So medical domain-specific features were introduced in this study as an additional feature dimension. In some previous studies, UMLS Metathesaurus as the world's largest repository of biomedical concepts, were widely used to extract medical terminology from medical text. So we also used UMLS to extract health-related medical terminology as domain-specific features. UMLS Metathesaurus consists of 1.7 million biomedical concepts where each concept is assigned to at least one of the 134 semantic types and the health-related semantic types used in our study were listed in Table 1.Table 1
The UMLS semantic types used
Amino acid, peptide, or protein
Injury or poisoning
Mental or behavioral dysfunction
Body location or region
Biomedical occupation or discipline
Body part, organ, or organ component
Disease or syndrome
Sign or symptom
Therapeutic or preventive procedure
Sentiment features. In addition to obtaining healthcare knowledge and medical information regarding disease-related symptoms, medication and treatments, patients involved in health online community also expect to obtain emotional support from other community members. Particularly for the patients diagnosed with cancers and chronic diseases, they usually posted some messages to vent their frustration, seek sympathetic encouragement and show compassion or empathy for others. So these messages usually contained many sentiment words with high sentiment polarity and these sentiment words could be used to measure effectively whether health-related messages provide informative support or emotional support, thus helpful to improve topic identification performance. In order to

source: openbmb/Ultra-FineWeb


Home / Homework Tags / Paraphrase
Intersection with cars, trucks, and buses
The graph below shows vehicles counted at an intersection over a 4-minute span of time.
First, describe the information in the graph. What does it tell you?
Then talk about why it might be important to have this data. Who might want to know? How would they use it?
[Graph by Jimmie via Flickr]
Word cloud of UN article about global protests
Above is a Wordle™ * of a news article. Summarize the article by interpreting the words and frequencies shown.
*A Wordle™ takes all the words in a text and arranges them randomly. The size of the word shows the frequency with which it appears—larger words appear more often.
Older man reading a book with stacks of books in the background
Tell us about your favourite book. What's so great about it? What is it about? Summarize the story and talk about the characters. Does it have a special message? What is it?
Subscribe to Paraphrase


text:
MasterMindsHRSG Management Consulting, is recruiting on behalf of its client who operates in the Energy industry, to fill the position below:
Job Position: Sales Officer
Job Location: Lagos
- The marketing representative will be responsible for planning and executing marketing campaigns to generate new prospects and improve client retention.
- Plan, organize, and execute sales and marketing activities.
- Market company, its products and business opportunity
- Liaising and networking with a range of stakeholders including customers, colleagues, suppliers and partner organisations;
- Communicating with target audiences and managing customer relationships;
- Arranging the effective distribution of marketing materials;
- Maintaining and updating customer databases;
- Excellent customer service delivered to the customers and prospects
- Generate leads and drive sales through various marketing activities such as telemarketing, direct marketing, and customer/prospect visit.
- Conducting market research, for example using customer questionnaires and focus groups;
- Contributing to, and developing, marketing plans and strategies;
- Managing budgets;
- Evaluating marketing campaigns;
- Monitoring competitor activity
- Willing to be trained.
- Track market and company sales performance.
Qualifications and Requirements
- Personal quality of integrity, credibility, and commitment
- Minimum of two years in Marketing
- Should have a good command of spoken English
- Degree in Marketing or a Business-related course
- Excellent interpersonal and communication skills
- Sales skills.
- Excellent interpersonal skills.
- Social media.
- Analytic Skills.
- Strong negotiation skills and ability to convince.


You are in site section: Collections
All that he surveys
All that he surveys
This surveyor's plane table frame belonged to Captain James Cook. The frame held paper firmly on the top of the plane table, a level surface used for surveying with an alidade (sighting rule) and compass. Cook adapted this land surveying method to rapidly chart Pacific coastlines as a continuous running survey from the deck of a moving ship.
Before leaving for the Pacific in 1768, Cook wrote to the British Admiralty requesting a set of instruments, including a plane table, that would enable him to survey lands touched on during the voyage. Cook's charts of the coasts of New Zealand and New Holland (Australia) were drawn up in sections using the plane table method, which required Cook to sail the Endeavour close to shore.
A honey-coloured wooden folding frame used in map-making and geographical surveys. The frame is seen being folded in four images in a horizontal strip. The far left image shows the frame fully unfolded; it forms a rectangle with the horizontal sides slightly longer than the vertical sides. The next image to the right shows the frame starting to fold. Hinges halfway along the vertical sides allow these sides to fold inwardly. The next image to the right shows the folding still in progress. The last image to the right shows the frame fully folded. The vertical sides have collapsed upon themselves and the horizontal sides sit above and below them. A small space is left in the middle between the horizontal sides. In all four images, the frame is seen against a plain white background.
Demonstration of how the plane table folds down for easy storage and transport.
Photo: George Serras.
Related link
Find out more about Captain Cook's navigational instruments


text:
In the Northwest Territories Health Education, media literacy outcomes for are included under the broader categories of Mental and Emotional Well Being; Nutrition; Safety; Responsibilty; Family Life; and Alcohol and Other Drugs.
Click on a grade level under Health Education for a list of media-related outcomes and links to supporting resources from the MediaSmarts site. (Note: as many of our lessons can be adapted to suit different grade levels, specific lessons may be listed for more than one grade. Teachers should also note that individual lessons often satisfy a number of learning outcomes.)
The Northwest Territories has developed a Tobacco Education Program that teachers can integrate into their Health curriculum in Grades 3 to 9. The program makes grade specific correlations to tobacco education and includes lessons and resources for teachers to use in the classroom. MediaSmarts has an extensive collection of tobacco related lessons and resources that complement the Tobacco Education Program. Teachers can access these resources in the lesson library by searching by either subject (tobacco) or grade.
Interested in supporting MediaSmarts?Charitable Registration No. 89018 1092 RR0001
Find out how you can get involved.Learn more

source: HuggingFaceFW/fineweb-edu


text:
- Enter a word for the dictionary definition.
From The Collaborative International Dictionary of English v.0.48:
Graph \Graph\ (gr[.a]f), n. [See -graph.] (Math.) 1. A curve or surface, the locus of a point whose coordinates are the variables in the equation of the locus; as, a graph of the exponential function. [Webster 1913 Suppl.] 2. A diagram symbolizing a system of interrelations of variable quantities using points represented by spots, or by lines to represent the relations of continuous variables. More than one set of interrelations may be presented on one graph, in which case the spots or lines are typically distinguishable from each other, as by color, shape, thickness, continuity, etc. A diagram in which relationships between variables are represented by other visual means is sometimes called a graph, as in a bar graph, but may also be called a chart. [Webster 1913 Suppl. +PJC]


text:
Full color reproduction of Giovanni Leardo's 1452 Mappamundi.
Notecard Size: 5 x 7 in.
Price: Individual card with envelope, $2.00.
Packet of six with envelopes, $10.00.
Text on Back: "Perhaps the finest example of a medieval world map, or mappamundi, preserved in the Western Hemisphere, the Leardo map of the world is the oldest original map in the AGS Library. Dating from 1452, this manuscript map on vellum is one of only three extant world maps by the 15th century Venetian cartographer Giovanni Leardo. Following cartographic conventions of the time, Jerusalem is shown as the center of the world, and the map is "oriented" with east at the top. A series of concentric rings around the circular map comprises an elaborate calendar, a feature common to all of Leardo's maps.
University of Wisconsin-Milwaukee, Golda Meir Library
Printed at no cost to the taxpayers of Wisconsin."


text:
Table 4 shows the control requirements for process management system calls. In it, the control requirements for each system call are specified, where each control requirement is described by the class, permission, source SID, and target SID used in a permission check. Since multiple calls may have the same requirements, more than one call may be listed in the leftmost column of a single table entry. In this case, all of the requirements in that table entry apply to all of the calls. In the table, the path target SID indicates that the permission check should be applied to each directory in the path prefix, and the directory class is abbreviated by dir.
The execve system call is the most complicated process management call to control. There are two relevant file system permission checks, the search check between the process SID and SID of each component of the pathname to verify that the program can be accessed and the execute check between the current process SID and new program's SID to verify that the program can be initiated by a process with that SID. The file system controls are described in Section 6.1. A process execute check between the new process SID and the new program SID is done to verify that the new process image can execute in the security context of the process.
Since Linux supports a variety of binary formats that must be handled during the execve system call, not only must access to the program that is to be executed be controlled, but access to whatever programs are used to support the execution of that program must also be controlled. An example of this is that when a script is executed, access to the script must be checked as well as access to the interpreter of the script. Similarly, execute checks for shared libraries are needed. In addition, execution checks will be placed in the Linux-specific system call, uselib, to control a process' ability to specify a particular shared library during execution.
The ability of a process to change its SID must be carefully controlled. This is done during the execve processing since this is the only place where a process' SID may change. Whether the new SID is specified or results from a default transition, the transition permission is checked between the old and new SIDs, and the entrypoint permission is checked between the new SID and the program SID. SID transitions on executable scripts are not prevented as is currently done in Linux with setuid transitions. Transitions are prevented, however, if the process is sharing parts of the process state, such as the file descriptor table or signal handlers, as could be the case when certain values for the flags are supplied to clone. If the process is being traced, then the ptrace permission is checked between the parent process and the new SID.
When a SID transition does occur it is also necessary to revalidate any descriptors. The need to control file descriptors is further discussed in section 6.1. The inherit permission for file descriptors is checked for each open descriptor. Any descriptor that does not pass the check will be closed. One consequence of this is that it is quite possible that stdin, stdout, and stderr could be unexpectedly closed on an execve. This is only an inconvenience except in the construction of command pipelines. Several options to minimize this impact exist. It may be possible to address this solely within the current framework with correct policy specification. It may prove worthwhile to control these descriptors separately from the rest. It may also be practical to modify the shell or construct special wrapper programs to handle descriptor inheritance and security transitions properly. The issue is still being studied.
The sigkill, sigstop, sigchld and signal permissions were added to control whether particular signals may be sent to a process with a given SID. As signals are only generated from within the kernel or local processes, permission checking will only be done when the signal is sent and will not be required when it is received. Before a signal can be delivered the appropriate permission is checked between the sender and receiver SIDs. Because the fcntl call can be used to set the recipient of a signals generated from asynchronous I/O, the SID of the process must be saved in the description to allow appropriate signal checking to be done when the kernel generates the signal.
The ability of one process to wait on another needs to be controlled because information can be passed with the exit status. Originally, the design called for a process wait permission. It was planned that whenever a security context transition was to occur, this permission would be checked to determine if the parent process would be able to wait on the child. If so, then normal processing could proceed. However, if the parent was to be forbidden to wait on the child, the child would have been reparented to the init process and the parent awakened with an appropriate error status. This approach had to be abandoned because it proved difficult to guarantee the process group semantics of Linux.
The same effect can be more cleanly achieved with the signal permissions. When the wait system call is executed, the process will only be allowed to wait if there is a child process that matches the argument to the call that is permitted to send its exit signal to the process. This exit signal is set during process creation and can not be changed. If the permission check fails and no other matching children processes that can send their exit signal to the parent exist, the calling process is given an error message indicating that no child was found.
When a process undergoes a SID transition, it is possible that the policy will no longer permit a signal to be delivered to any processes waiting on that process when the transformed process terminates. To ensure that a waiting process is not left waiting in such situations, SID transitions cause waiting processes to be awakened. Waiting will continue only if it is in accordance with the policy.
Control of the exit system call is not required. The two issues associated with it, receiving exit status information and being signaled by a child process, are handled by the checking done for the wait call and signal mechanism. A side effect of this decision is that a zombie process may be retained in the process table until its parent dies since its parent may be prevented from reaping it. In that case, the zombied process will have to be reparented to the init process for reaping, a mechanism already present in Linux. To make this design work properly, it must be possible for all processes, regardless of their security domain, to signal the init process to ensure that it will be able to reap orphaned processes. This could be guaranteed using the security policy mechanism or through code modifications to the signal mechanism.
An additional ramification of using signal controls to handle wait and exit notifications comes as a result of a POSIX requirement (POSIX 18.104.22.168) to signal any process group with stopped jobs which becomes orphaned as a result of an exit. If a process has undergone a SID transition after it has done one or more forks, its death will cause a signal to be sent to those children even though the policy might prohibit it.
Linux presents an additional issue with regard to signals and exiting. It is possible for a process to set the signal that it will receive when its parent exits. The checking in the signal mechanism will determine if this signal can be delivered, but it may be desirable to control the ability to use the prctl system call which sets this signal. This issue is still being explored.
Because SID transitions do not occur during the fork system call, most security policies would not require the explicit control of this call. Some policies, however, may have a need to restrict a process' ability to create a new process. The fork permission was added to support such policies. It is checked during calls to fork and its Linux-specific generalization clone.
The ptrace call is controlled using the ptrace permission. This permission is initially checked upon a PTRACE_ATTACH or PTRACE_TRACEME request. In the case of PTRACE_TRACEME, the permission is checked between the parent process and the calling process. Otherwise, it is checked between the calling process and the target process. The permission is also revalidated on the other ptrace requests since the calling process may have changed its SID or the policy may have changed. As described earlier, the ptrace permission is also checked during execve if the SID of a traced process changes. Finally, the ptrace permission is checked when a process attempts to access the mem file of another process in the procfs file system.
The getpriority, sched_getscheduler, and sched_getparam calls are controlled using the getsched permission. The setpriority, sched_setscheduler, and sched_setparam calls are controlled using the setsched permission. The getsid, getpgid, and setpgid calls are controlled using the getsession, getpgid, and setpgid permissions, respectively. The capget and capset calls are controlled using the getcap and setcap permissions, respectively. These permissions are checked between the calling process and the target process if they differ.
Most system calls that require superuser privileges to run should also be controlled by the policy. For these calls, it may only be necessary to assign a permission that determines if a process with a given SID can execute the call. Since the Linux capability mechanism already controls many of these calls, the capability permissions are used to make them subject to the central security policy. The source and target SIDS used in the capability permission checking are both that of the current process. Capabilities are discussed further in Section 10.
System calls that only permit a process to observe its own private state or to modify its own unprivileged private state typically do not require controls. Some of these calls are listed in Table 5. Other process management system calls may need to be controlled by the policy. A review of the system call interface to determine the set of calls that need additional controls is described in Section 10.


10 Reasons Why An Internship In China Is Good For You
People may not understand it still but internships are crucial role in the laboring or working world. You can observe that what features of business specifically takes your imagination before you perform to a full time job, by doing an internship. Internships are better for the student of the college.
There is much advantage of doing such an internship in China. You not only get the work or job experience, but also the experience of living and working in a foreign culture of countries like China. You can get a large amount of knowledge and information by doing internship in a country like China.
internship in china
Below are 10 reasons why Internship in China is good for you.
 1. 1. Internships in China are ready at any time
You can get the internship in China at any time throughout the year which is suitable for you. It is feasible for an individual to attain an important experience also when he or she is restricted by money, time or other duties.
 1. 2. Learn convenient skills to help in future career
Nowadays, companies want individuals who can use their earlier work experiences or practice and implement them to the existing job. The regular day working in China will challenge you with problem solving, cultural clashes, and time management and communication challenges. All these skills are valuable in modern and fresh work place.
 1. 3. Expand your global network
The famous maxim about global network is that your network is your net worth. It is an extreme part of culture in China and not important which company you wind up in.
 1. 4. Improve your language skills
On your CV, language always shines. And also language of China is one of those languages that make your CV better. It is advantageous for you if you are a Westerner. You can easily get a great job there.
 1. 5. Get in with the Internship
By getting the internship with a reputable company of China, it is very much easier to gain a career in Multinational Companies.
 1. 6. Enhance your global understanding
You will be able to observe the world and work from diverse viewpoint from an internship in China. You can also learn various new things and technologies by internship in China as this is a country of latest technology.
 1. 7. Gain lifelong friends
You will meet some excellent people during your time in China. You will make lifelong friendships and share adventures with them.
 1. 8. Have an experience of a lifetime
China is the land of various cultures and custom. The land of the China is very vast. You can watch something exciting, new and fresh everyday in China that provide you great and memorable experience in life.
 1. 9. Companies look for great talent
Great companies in China pay stipends and other companies provide excellent manual work experience, all of these things attract the appropriate talent. Every company wants the best employees for their company and internship in China is the good process to find talent.
 1. 10. Internship assist companies test new ideas
Companies prefer to test latest ideas and methods on interns. Employers utilize the program of internship to study program in an effective manner. Companies in China can attain useful feedback and insights on many processes at low prices by using interns.
Pin It
Comments are closed.


text:
Browsing Laboratorio de Neurociencia by Subject "Geometría"
Now showing items 1-2 of 2
Producing or reproducing reasoning? Socratic dialog is very effective, but only for a few (2017-03-23)Successful communication between a teacher and a student is at the core of pedagogy. A well known example of a pedagogical dialog is 'Meno', a socratic lesson of geometry in which a student learns (or 'discovers') how...


Description of the painting by Kazimir Malevich "Aviator"
Description of the painting by Kazimir Malevich Aviator
Malevich is a Russian avant-gardist whose paintings continue to be deciphered to this day. "Black Square" – his most famous work – is currently causing debate, someone considers it absolutely meaningless, someone sees in it subtle symbolism and a prophecy about the end of art. These are all his works, even not so famous. It is difficult and not always possible to interpret them from the standpoint of reason; on the contrary, the language of Malevich is a language of associations and symbols, difficult to understand if you try to decipher it in words.
The language of Malevich is a mockery of the inertia and narrow-mindedness of even the creative thinking of society, which sets the framework for everyone, even the artists. Malevich is a reformist who sought to reshape people's perceptions, to show them that beauty does not depend at all on logical meaning and its explanation from the standpoint of reason.
"Aviator" – one of his paintings, puzzles, which everyone is free to interpret, as you like. If you want, you can link it with biblical motifs and images, you can, on the contrary, see ardent communism in it. In fact, this is a picture of a puzzle, which seems to have nothing to do with its name.
The man on it is torn out from the familiar world, placed in the world of flat forms, fancy inscriptions, meaningless, strange abstractions. He looks like a spectator who is trying to understand Malevich's ideas, a cylinder emitting light on him, he is crossed by white fish that literally glows with whiteness. And he clearly does not understand where he was.
He has a peak ace in his hand, around something vague and not carrying meaning. He seems to be flying in shining nowhere, like a pilot, lost between heaven and earth. Everyone is free to come up with his own explanation and to associate it with his ideas, because each person is free and can perceive any picture as he personally wants.
If you look closely, "Aviator" tells the story of freedom.


text:
Comparing motor-vehicle crash risk of EU and US vehicles
Artikel i vetenskaplig tidskrift, 2018
Objective: This study examined the hypotheses that passenger vehicles meeting European Union (EU) safety standards have similar crashworthiness to United States (US) -regulated vehicles in the US driving environment, and vice versa. Methods: The first step involved identifying appropriate databases of US and EU crashes that include in-depth crash information, such as estimation of crash severity using Delta-V and injury outcome based on medical records. The next step was to harmonize variable definitions and sampling criteria so that the EU data could be combined and compared to the US data using the same or equivalent parameters. Logistic regression models of the risk of a Maximum injury according to the Abbreviated Injury Scale of 3 or greater, or fatality (MAIS3+F) in EU-regulated and US-regulated vehicles were constructed. The injury risk predictions of the EU model and the US model were each applied to both the US and EU standard crash populations. Frontal, near-side, and far-side crashes were analyzed together (termed "front/side crashes") and a separate model was developed for rollover crashes. Results: For the front/side model applied to the US standard population, the mean estimated risk for the US-vehicle model is 0.035 (sd = 0.012), and the mean estimated risk for the EU-vehicle model is 0.023 (sd = 0.016). When applied to the EU front/side population, the US model predicted a 0.065 risk (sd = 0.027), and the EU model predicted a 0.052 risk (sd = 0.025). For the rollover model applied to the US standard population, the US model predicted a risk of 0.071 (sd = 0.024), and the EU model predicted 0.128 risk (sd = 0.057). When applied to the EU rollover standard population, the US model predicted a 0.067 risk (sd = 0.024), and the EU model predicted 0.103 risk (sd = 0.040). Conclusions: The results based on these methods indicate that EU vehicles most likely have a lower risk of MAIS3+F injury in front/side impacts, while US vehicles most likely have a lower risk of MAIS3+F injury in llroovers. These results should be interpreted with an understanding of the uncertainty of the estimates, the study limitations, and our recommendations for further study detailed in the report.


Awesome Open Source
Awesome Open Source
Build Build status
NuGet NuGet Status
 - 2020 june 7: published a couple of new releases. They are based on just four PRs but because of semver they came out as three separate releases.
 - 2.1.3 with a small fix to allow case insensitive style in wmts.
 - 2.2.0 in which HttpTileSource.PersistentCache now has a setter.
 - 3.0.0 which has two breaking changes.
 - In MbTiles there is a change in the default behavior that some users might notice. Zoom levels are not calculated from the 'tiles' table by default.
 - The TileIndex.Level is now int instead of string. Most users will not notice this unless you write logic around tiling itself.
BruTile is a.NET Standard 1.1 library to access tile services like OpenStreetMap and Bing. Such tile services store pre-rendered tiles for a certain area and for various levels of detail. BruTile helps to determine which tiles to fetch for a certain viewport of a map. BruTile returns tiles as raw image streams and has no dependency on a specific client platform. BruTile does not display those tiles. You need to use a mapping library like SharpMap, ArcBruTile or Mapsui or write your own code to display tiles.
What BruTile does is:
 1. Helps to construct a tile source, an object that has all information about a tile service.
 2. Helps to calculate which tiles you need, given a certain map extent and a map resolution (units per pixel).
 3. Helps you fetch those tiles.
BruTile is a.NET Standard library
BruTile V4 consists of 2 nugets that support.NET Standard 2.0.
Library Targeted Framework
BruTile.NET Standard 2.0
BruTile.MbTiles.NET Standard 2.0
 - Support for.NET Framework 4.5 has been removed (also the samples and tests have moved to.NET Core).
 - BruTile.Desktop and BruTile.Desktop.DbCache have been deleted and their content has moved to the BruTile nuget.
BruTile V3 supports.NET Standard. The Profiles by NuGet package:
Library Targeted Framework
BruTile.NET Standard 1.1
BruTile.MbTiles.NET Standard 1.1
BruTile.Desktop.NET Standard 1.6
BruTile.Desktop.DbCache.NET Standard 2.0
All the above libraries additionally target.Net Framework 4.5
For a demo showing various data sources download the source code and run BruTile.Demo in the Samples folder
Getting Started
1) Create an app and add the BruTile NuGet package
Create a.NET Console app in Visual Studio. The the BruTile NuGet package. Use the package manager tools in Visual Studio or add it from the package manager console:
PM> install-package BruTile
2) Create a tile source
// This is an example that creates the OpenStreetMap tile source:
var tileSource = new HttpTileSource(new GlobalSphericalMercator(0, 18),
 new[] {"a", "b", "c"}, "OSM");
3) Calculate which tiles you need
// the extent of the visible map changes but lets start with the whole world
var extent = new Extent(-20037508, -20037508, 20037508, 20037508);
var screenWidthInPixels = 400; // The width of the map on screen in pixels
var resolution = extent.Width / screenWidthInPixels;
var tileInfos = tileSource.Schema.GetTileInfos(extent, resolution);
4) Fetch the tiles from the service
Console.WriteLine("Show tile info");
foreach (var tileInfo in tileInfos)
 var tile = tileSource.GetTile(tileInfo);
 $"tile col: {tileInfo.Index.Col}, " +
 $"tile row: {tileInfo.Index.Row}, " +
 $"tile level: {tileInfo.Index.Level}, " +
 $"tile size {tile.Length}");
 tile col: 0, tile row: 0, tile level: 1, tile size 11276
 tile col: 0, tile row: 1, tile level: 1, tile size 3260
 tile col: 1, tile row: 0, tile level: 1, tile size 10679
 tile col: 1, tile row: 1, tile level: 1, tile size 4009
5) Try some of the known tile sources
// You can easily create an ITileSource for a number of predefined tile servers
// with single line statements like:
var tileSource1 = KnownTileSources.Create(); // The default is OpenStreetMap
var tileSource2 = KnownTileSources.Create(KnownTileSource.BingAerial);
var tileSource3 = KnownTileSources.Create(KnownTileSource.BingHybrid);
var tileSource4 = KnownTileSources.Create(KnownTileSource.StamenTonerLite);
var tileSource5 = KnownTileSources.Create(KnownTileSource.EsriWorldShadedRelief);
The predefined tile sources are defined in a single file. Take a look at that file here to learn how you could create any tile source.
6) Use MBTiles, the sqlite format for tile data, to work with tiles stored on your device.
var mbtilesTilesource = new MbTilesTileSource(new SQLiteConnectionString("Resources/world.mbtiles", false));
var mbTilesTile = mbtilesTilesource.GetTile(new TileInfo { Index = new TileIndex(0, 0, 0) });
Console.WriteLine($"This is a byte array of an image file loaded from MBTiles with size: {mbTilesTile.Length}");
This is a byte array of an image file loaded from MBTiles with size: 27412
The above code can also be found in the BruTile sample called BruTile.GettingStarted in the Samples folder of this repository.
Supported tile service protocols:
 - Stability is currently our primary focus.
Projects that use BruTile
Apache 2.0
Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c-sharp (11,959
map (227
mapping (132
osm (40
tiling (18
wms (15
Find Open Source By Browsing 7,000 Topics Across 59 Categories


You are in site section: Collections
The Vergulde Draeck wreck, 1656
The Vergulde Draeck wreck, 1656
A jug, silver coins, cannon ball and ballast brick.
Photos: George Serras.
This jug, ballast brick, cannon ball and silver coinage were excavated from the wreck of the Dutch trading ship, Vergulde Draeck (Gilt Dragon), which struck a reef off the coast of western Australia in 1656.
On its second spice-trading voyage to Batavia (Jakarta) in 1656 the Draeck sailed too far east and struck a reef off the coast of western Australia. Seventy three survivors (from a crew of 193 people) reached the shore in two small boats. Seven men made the voyage to Java nearly 2600 km to the north and raised the alarm, but numerous rescue missions could find no trace of the castaways.
The wreck of the Vergulde Draeck was eventually found in 1963 by 16-year-old Graeme Henderson who was accompanied at the time by his father Jim, brother Alan, John Cowan and Ellis Alan Robinson. When the contents of the ship were finally raised, the items shown were given as a gift to Prime Minister Robert Menzies.
A diver under water holding an astrolabe.
Diver Geoff Kimpton with an astrolabe from the Vergulde Draeck shipwreck during the Western Australian Museum's investigation of the site.
Courtesy: Western Australian Museum.


Community Patrol Groups
Three men facing the mountains and glorious landscape
Local people take an active role in many ZSL projects, patrolling their local forests or seas. We help ensure that these patrol groups have the training, resources and ongoing support they need for success. Community patrols are helping protect tigers and pangolins in Nepal; African elephants, western gorillas and chimpanzees in Cameroon; and endangered seahorses, sharks and rays in the reefs and mangroves of the Philippines.
Why does ZSL support community-based patrol groups?
Conservation can only be sustainable long-term if local communities not only support this, but take a lead role in protecting local wildlife. Local people have immense knowledge of their own environment, with a rich understanding of their landscape, its wildlife, and the threats it faces.
In many countries where ZSL works, local people have legal rights to benefit from resources in or around protected areas, so they have a particular interest in protecting these from illegal use. Some patrol groups aim to protect resources such as forest plants or mushrooms, while others discourage poaching for the illegal wildlife trade. Community patrols typically coordinate with park rangers, so that they can learn from each other, with rangers understanding local needs and perspectives, while reducing risks for local patrols.
ZSL projects often combine community-based patrolling with other mechanisms to benefit local people, such as sustainable livelihoods support and community-managed conservation areas, whether on land or sea.
Tiger in long green grass
We're working for a world where wildlife thrives
With your support we can bring wildlife back from the brink of extinction.
Nepal has strong national legislation that provides mechanisms for people to benefit sustainably from resources in national park buffer zones and Community Forests. These long-standing rights provide an incentive for community patrol groups to ensure that rules are followed and neither residents nor outsiders exploit resources illegally. At ZSL, we partner with Nepali communities that are actively engaged in combatting the illegal wildlife trade. We support community-based anti-poaching patrols that are protecting Nepal's tigers and elephants, pangolins, and gharials.
Tiger in long green grass
The Philippines
Since 1995, we have helped establish 54 community-managed marine protected areas in the Philippines. Community patrols are key to their success, enforcing spatial access restrictions (such as no-take zones), which allow fish and marine invertebrates space to grow and reproduce. Our partner communities recognise the benefits of protecting their areas, and invest in patrols and guardhouses.
The forests of the Dja conservation complex covers almost 2 million hectares, home to elephants, gorillas and chimpanzees. This vast area is targeted by criminal gangs linked to international wildlife trafficking and the bushmeat trade.
Putting indigenous Baka communities at the forefront of patrolling would create unacceptable risks, so instead we support communities to collect information on illegal activities and share this safely with rangers, who are trained and equipped with our support. The communities also monitor enforcement activities to ensure laws are applied fairly, and benefit from investments in sustainable livelihoods.
Photo - A group of trainee guards at the edge of a forest, using hand-held monitoring devices
We are supporting community management of a new local protected area (the Khoid Mogoin gol-Teel), part of our pioneering work to enable communities to take a lead role in recovery of Mongolia's fragile forest-steppe ecosystem. This includes training local herders to patrol the forests and use SMART (Spatial Monitoring and Reporting Tool) to discourage illegal logging, harvesting of non-timber forest products, and recording of other illegal activities within the protected area.
two rhinos in long green grass
We're working for a world where wildlife thrives


Emergency Custody MD Lawyer How To File Rockville
A parent or a related part can file for an emergency petition for child custody in Maryland if the child's well being and security is in jeopardy. Unlike the procedure of normal custody, emergency custody hearings can happen faster, between a time span of days to just hours. This is due to the minor's life being in danger and courts of the state of Maryland always rule in the best interest of the minor.
An emergency guardianship order is supposed to remove the minor from the harmful and damaging environment and place him or her in a safer one to prevent further child abuse or neglect. The emergency minor guardianship order is temporary, to provide a secure environment until a minor guardianship petition is filed and a permanent minor guardianship order is obtained.
There are several steps that a person must go through when filing for a petition for urgent custody in the state of Maryland.
Some of those steps are mentioned below:
 1. Obtain a form for emergency guardianship from the clerk of the court in Maryland and fill the form with the information that is required.
 2. Specify the danger and harmful conditions that the minor is currently in, for instance, if the minor is being sexually or physically abused by his or her custodial parent, or if the minor is residing with a custodial parent whom is involved in illegal business and thus endangering the minor.
 3. Provide the court with any witnesses that verify your allegation, so that a court order for emergency guardianship is obtained.
 4. State in the form that "unless an emergency guardianship order is issued, the child's life will be at risk"
 5. Sign the petition form of the emergency guardianship with the presence of a lawyer. The hired lawyer is required to take an oath that confirms the claims that were specified in the form by the party applying for emergency guardianship are correct to his or her knowledge and awareness.
 6. File the form filed with the court of the state of Maryland and send a copy of the form to the custodial parent and non-custodial parent. The aim of the sent copy of the form is for the parents of the child to be aware of what is going on with the child's life.
 7. Find out who the judge that is handling your petition the day that you arrive in the courthouse.
 8. Go to the judge that is responsible of your motion and present to him or her, your copy of the motion.
 9. Display your emergency guardianship case to the judge. If the judge believes that the child is indeed in a danger circumstance, an issue will be ordered and will grant you temporary emergency custody of the child, and instruct law enforcement to retrieve your child from the harmful environment. The judge will also schedule a custody hearing on the issue within a couple of days during the meeting.
If you need a Maryland minor guardianship lawyer to help you with your child custody case in Maryland, call us at _PHONE_. Our Maryland child custody attorneys can help you. C


text:
🙋🏼 Before starting, please connect an Arduino Board with Mini GaussSense and upload the Arduino firmware to the board 👉🏼 Head First Mini GaussSense.
Please set up your GaussSense Desktop and Mini GaussSense following First Steps with GaussSense Desktop
After connecting Mini GaussSense, GaussSense Desktop would start a WebSocket server (port:
5100) to send the sensor data.
Simply include GaussSense.js in to receive data from Mini GaussSense.
Then use the
var gs = new GaussSense();
After that, let's start a new project or explore a lot of web projects on 👉 GaussSense Playground
Live Demo on JS Bin: Example using GaussSense.js and p5.js
A p5.js project contains two main functions:
setup() block runs once, and is typically used for initialization. The
draw() block runs repeatedly to refresh the canvas element, and is used for animation.
We could access the north/south point and the bipolar midpoint of Mini GaussSense with a GaussSense object.
|Get the north point object. Attributes: x, y, intensity|
|Get the south point object. Attributes: x, y, intensity|
|Get the bipolar midpoint object. Attributes: x, y, intensity, angle, pitch|
x and y lies within the interval [0, 1] and would be -1 when the intensity of magnetic field is 0.Back to Tutorials


text:
Marketing your franchise is an essential part of success, but many franchisors are lost when it comes to marketing. And when there is no system at the top for marketing a franchise – to franchisees or to customers – failure is more likely. What are some of the things you can do to improve your franchise marketing and how can Accurate Franchising, Inc. help?
1. Importance of Collaboration
First, it is important to understand the importance of collaboration, between the franchisor and the franchisee. It is essential there be an open line of communication and that franchisors and franchisees be able to share data and discuss decisions right from the start. We will help you identify and fill marketing communication gaps, so everyone involved in your franchise is able to function and deal with information effectively.
2. Balance Between Franchise Marketing and Franchise Consistency
Next, we will help you strike a balance between local franchise marketing and franchise consistency. It is important franchisees target their local audience, but it is also important there be consistency in your brand. There is a successful way to give some autonomy to franchisees without sacrificing the overall concept behind your marketing.
3. System for Managing Data
We also find it helpful to create a system for managing data. These systems help you gain insight into marketing performance at each location, so you are able to see what is working and what is not. Then you can use that information to coach your franchisees. When you and your franchisees are viewing the same data, it is easier to have clear and effective discussions about the status of a franchise and goals for the future.
This also helps you adopt tools and strategies that are being used throughout your franchise. If something is successful at one location, there is a good chance it could work elsewhere. There is no reason to be alarmed if a franchisee wants to try something or be unique, and in the long run, it could help everyone involved. You just need to have a system in place for franchise marketing so you can monitor the actions of your franchisees and implement what works at all of the franchise locations.
Want to learn more? We will help you get a system in place for marketing your franchise.


beginning of a pattern, and, as well as with '/' and '$', cannot be grouped inside parentheses. A '^' which does not occur at the beginning of a rule or a '$' which does not occur at the end of a rule loses its special properties and is treated as a normal character.
The following are illegal:
foo/bar$ foobar
Note that the first of these, can be written "foo/bar .
The following will result in '$' or '^' being treated as a normal character:
foo|(bar$) foo|^bar
If what's wanted is a "foo" or a bar-followed-by-a-newline, the following could be used (the special '|' action is explained below):
foo | bar$ /* action goes here */
A similar trick will work for matching a foo or a bar-at-the-beginning-of-a-line.
The advantage of %array is that you can then modify yytext to your heart's content, and calls to unput() do not destroy yytext (see below). Furthermore, existing lex programs sometimes access yytext externally using declarations of the form:
 extern char yytext[];
%% "zap me"
%% [ \t]+ putchar('' ); [ \t]+$ /* ignore this token */
If the action contains a '{', then the action spans till the balancing '}' is found, and the action may cross multiple lines. flex knows about C strings and comments and won't be fooled by braces found within them, but also allows actions to begin with %{ and will consider the action to be all the text up to the next %} (regardless of ordinary braces inside the action).
- ECHO copies yytext to the scanner's output.
- REJECT directs the scanner to proceed on to the "second best" rule which matched the input (or a prefix of the input). The rule is chosen as described above in "How the Input is Matched", and yytext and yyleng set up appropriately. It may either be one which matched as much text as the originally chosen rule but came later in the flex input file, or one which matched less text. For example, the following will both count the words in the input and call the routine special() whenever "frob" is seen:
int word_count = 0; %%
frob special(); REJECT; [^ \t + ++word_count;
%% a | ab | abc | abcd ECHO; REJECT;.| /* eat up any unmatched character */
- yymore() tells the scanner that the next time it matches a rule, the corresponding token should be appended onto the current value of yytext rather than replacing it. For example, given the input "mega-kludge" the following will write "mega-mega-kludge" to the output:
%% megaECHO; yymore(); kludge ECHO;
First "mega-" is matched and echoed to the output. Then "kludge" is matched, but the previous "mega-" is still hanging around at the beginning of yytext so the ECHO for the "kludge" rule will actually write "mega-kludge".
%% foobar ECHO; yyless(3); [a-z]+ ECHO;
{ int i; /* Copy yytext because unput() trashes yytext */ char *yycopy = strdup( yytext ); unput( ')' ); for ( i = yyleng - 1; i >= 0; --i ) unput( yycopy[i] ); unput( '(' ); free( yycopy ); }
An important potential problem when using unput() is that if you are using %pointer (the default), a call to unput() destroys the contents of yytext, starting with its rightmost character and devouring one character to the left with each call. If you need the value of yytext preserved after a call to unput() (as in the above example), you must either first copy it elsewhere, or build your scanner using %array instead (see How The Input Is Matched).
Finally, note that you cannot put back EOF to attempt to mark the input stream with an end-of-file.
- input() reads the next character from the input stream. For example, the following is one way to eat up C comments:
%% "/*" { int c;
for ( ; ; ) { while ( (c = input())!= '*' && c!= EOF ) ; /* eat up text of comment */
if ( c == '*' ) { while ( (c = input()) == '*' ) ; if ( c == '/' ) break; /* found the end */ }
if ( c == EOF ) { error( "EOF in comment" ); break; } } }
- YY_FLUSH_BUFFER flushes the scanner's internal buffer so that the next time the scanner attempts to match a token, it will first refill the buffer using YY_INPUT (see The Generated Scanner, below). This action is a special case of the more general yy_flush_buffer() function, described below in the section Multiple Input Buffers.
- yyterminate() can be used in lieu of a return statement in an action. It terminates the scanner and returns a 0 to the scanner's caller, indicating "all done". By default, yyterminate() is also called when an end-of-file is encountered. It is a macro and may be redefined.
int yylex() {... various definitions and the actions in here... }
%{ _TAG_ YY_INPUT(buf,result,max_size) \ { \ int c = getchar(); \ result = (c == EOF)? YY_NULL : (buf[0] = c, 1); \ } %}
If you do not supply your own version of yywrap(), then you must either use %option noyywrap (in which case the scanner behaves as though yywrap() returned 1), or you must link with -ll to obtain the default version of the routine, which always returns 1.
[^"]* { /* eat up the string body... */... }
\. { /* handle an escape... */... }
%s example %%
foo do_something();
bar something_else();
is equivalent to
%x example %%
foo do_something();
bar something_else();
Without the qualifier, the bar pattern in the second example wouldn't be active (i.e., couldn't match) when in start condition example. If we just used to qualify bar, though, then it would only be active in example and not in INITIAL, while in the first example it's active in both, because in the first example the example start condition is an inclusive (%s) start condition.
Also note that the special start-condition specifier <*> matches every start condition. Thus, the above example could also have been written;
%x example %%
foo do_something();
<*>bar something_else();
<*>.| ECHO;
BEGIN(0) returns to the original state where only the rules with no start conditions are active. This state can also be referred to as the start-condition "INITIAL", so BEGIN(INITIAL) is equivalent to BEGIN(0). (The parentheses around the start condition name are not required but are considered good style.)
int enter_special;
%x SPECIAL %% if ( enter_special ) BEGIN(SPECIAL);
blahblahblah...more rules follow...
%{ _TAG_ %} %s expect
%% expect-floats BEGIN(expect);
[0-9]+"."[0-9]+ { printf( "found a float, = %f , atof( yytext ) ); } { /* that's the end of the line, so * we need another "expect-number" * before we'll recognize any more * numbers */ BEGIN(INITIAL); }
[0-9]+ { printf( "found an integer, = %d , atoi( yytext ) ); }
"." printf( "found a dot );
%x comment %% int line_num = 1;
"/*" BEGIN(comment);
[^* * /* eat anything that's not a '*' */ "*"+[^*/ * /* eat up '*'s not followed by '/'s */ ++line_num; "*"+"/" BEGIN(INITIAL);
%x comment foo %% int line_num = 1; int comment_caller;
"/*" { comment_caller = INITIAL; BEGIN(comment); }
"/*" { comment_caller = foo; BEGIN(comment); }
comment_caller = YY_START;
%x str
%% char string_buf[MAX_STR_CONST]; char *string_buf_ptr;
\" string_buf_ptr = string_buf; BEGIN(str);
\" { /* saw closing quote - all done */ BEGIN(INITIAL); *string_buf_ptr = '\0'; /* return string constant token type and * value to parser */ }
 { /* error - unterminated string constant */ /* generate error message */ }
\\[0-7]{1,3} { /* octal escape sequence */ int result;
if ( result > 0xff ) /* error, constant is out-of-bounds */
*string_buf_ptr++ = result; }
\\[0-9]+ { /* generate error - bad escape sequence; something * like '\48' or '\_PHONE_' */ }
nbsp; *string_buf_ptr++ = ' ; \\t *string_buf_ptr++ = '\t'; \\r *string_buf


text:
Simply begin typing or use the editing tools above to add to this article.
Once you are finished and click submit, your modifications will be sent to our editors for review.
possession of mana
...possess it. Derived from a root term that has aristocratic connotations, mana corresponds to Polynesian social classifications. The ariki, or alii, the nobility of Polynesia, have more mana than commoners, and both their land and the insignia...
traditional Maori social structure
...( iwi) recognized a common ancestry (which might be traced through either or both parents) and common allegiance to a chief or chiefs ( ariki). Traditionally, at the day-to-day level, the most important social groups were the hapuu (subtribe), which was the primary landholding group...
What made you want to look up "arika"? Please share what surprised you most...


text: Doctors without borders are on the frontline of the current Syrian refugees situation. The escalating tension between local government and Syrians finally in the last hours break out into violent clashes between refugees and police forces. The tension was caused by a domino of border shutdowns across the Balkans that cut off any route to central and western Europe. Today, 300 refugees received treatment by the charity volunteers. Unsurprisingly the situation had actually been predicted by the DWB, which has ground knowledge of the situation. While committing resources and effort on their difficult mission, they also managed to adopt an effective policy of accountability, updating constantly through social media donors and public about not just the situation, but also their humanitarian efforts. Using in particular YouTube as preferred platform, through short, clear and poignant videos they are demonstrating how "transparency", as the value to connect with stakeholders and public, can have a bigger and more effective meaning that just spending budgets. Here is Angelique, a Doctors Without Borders logistician, reflection before three days of the clash that happened on Sunday.


text:
Change management in information systems projects for public organizations
Interdisciplinary Journal of Information, Knowledge, and Management • Volume 10 • 2015 • pp. 047-062
It can be argued that public organizations, in order to provide the public with sufficient services in the current, highly competitive and continuously evolving environment, require changes. The changes that become necessary are often related to the implementation of information systems (IS). Moreover, when organizations are faced with changes, a change management (CM) process needs to be put in place. CM theories that are currently available to practitioners and academics are often contradictory; they mostly lack empirical evidence and are supported by unchallenged hypotheses concerning the nature of the contemporary CM. The aim of this paper is, therefore, to identify critical success factors (CFSs) for CM in IS projects. In order to reach this aim an explanation of changes in public organizations and the nature of CM are presented. Following this, a framework of CFSs for CM in IS projects are identified based on the literature review. The paper also examines two IS projects and uses them to demonstrate CFSs influencing CM in IS projects in Polish pubic organizations. A discussion of the research findings is provided and the paper concludes with a presentation of the study's contributions and limitations as well as the stream of future work.
project management, change management, public organizations, information systems, IS, critical success factors, CSF
332 total downloads


Go Down
Topic: FileLogger (Read 14015 times) previous topic - next topic
I've created a new library for Arduino to append data to files in microSD memory cards. It is based on previous work by David Cuartiello, and it has been used in GPSLogger by Raúl Hevia.
This project focus in just one simple functionality: logging data to a file in SD cards from Arduino boards.
We are trying to get it 1) fast and 2) small, so this library can be used in other projects based on arduino with little impact on memory resources and performance.
By now, it takes about 175 mSecs to append 512 bytes to the file, so transfer rate is about 2925 bytes per second.
The library memory footprint is:
 * 3764 bytes in program memory (Flash)
 * 542 bytes in data memory (SRAM)
The library has been contributed as OpenSource unde GPL license, you can find source code here:
Does the SD card need to be prepared in any fashion, does it need to be formatted a certain way, before using it with this library?
Does the card need to have a file created, with a particular label, before using it with the library?
Can data be added to more than one file on the SD card?
Using FileLogger, where would data be entered on the arduino board (which pin, or pins)?
My Hardware/Libraries already has an MMC folder, I'm assuming that it will be different from MMC folder that the FileLogger requires, which would result in a conflict. (I'm assuming)
Hi prakat,
yes, the SD card need to be formated with FAT16.
You need to create a file in the root folder, the name is not important as you will give the name of the file when you call the function append(). In fact you can log to more than one file specifying differente file names. The only restriction for the files is that the size must not be zero (at least one character must be written before using the liberay).
This library has been tested with the microSD shield by Libelium: _URL_
Anyway I guess this should work with any SPI aware shield.
There should be no conflict with mmc library, as I didn't modify it.
Hope this help
Thanks edugarcia!
I am looking forward to trying this out.
So far, I can't get the example to compile. I get:
In function 'void loop()':
error: 'File_logger' was not declared in this scope
The 3.o files were created when I started the IDE. Am I missing something?
~ Clifford Stoll
try to update from subversion, I changed the example some days ago and forgot to change the example code. The point is that from now on you should use FileLogger::append() instead of File_logger.append().
sorry about it,
How is data read from the SD card?
Can data be entered directly to a PC from the card via USB?
Thank you for your previous information. :)
yes, data can be read directly from PC. You can open the file with any text editor (i.e. notepad).
What's your experience regarding when you can pull the card? Must power be off?
~ Clifford Stoll
in my experience you can pull the card anytime, I haven't had any special care about it and never lost data.
Anyway, I have found from time to time (maybe 1 in 20 times) that the system doesn't recognise the card after inserting it, so write fails (the function append() returns!= 0). A friend has proposed a workaround: to write some header in the file before writing the real data. If this write fails, the led blinks five times to inform, so you should remove and re-insert the card. It isn't a perfect solution, but it works.
I've uploaded a new release of the library, V05.
I have removed from MMC the SPI related code, and I have coupled MMC to the Arduino SPI Library instead, as some of you have reported having problems with SPI and this library.
By the way, if you are using SPI in your projects, you can remove Spi.cpp from FileLogger library, it will work.
Together with some small changes in code, we have won 163 bytes in Flash memory in this release, so total size is 3601 bytes now.
Enjoy it,
Eduardo García.
Will this library tolerate the following scenario?
1 - I write several lines to the SD Card
2 - I remove the SD card and re-insert it
3 - I write more lines to the SD Card
I am trying it with your example code, and I get file errors when I try to write after re-inserting the card. The only way to fix it seems to be resetting the Arduino.
I guess there is some conflict with the monitor serial libraries that I'm using to read keystrokes and write messages, so from time to time I have found such errors, but I think if you use fileLogger in a standalone application, with no monitor, it will work fine.
Anyway, there is a workaround: anytime you find errors writing after re-inserting the card, close and reopen the serial line (click on the icon at the upper right). This will not reset Arduino, only the serial line.
_USER_, I had the same problem (I am using the SD card socket from Sparkfun, not MicroSD, with a Panasonic card). Also, mine is running on solar and if the voltage dropped and then came back up, the card would stop working.
I made a change in nanofat.cpp (this is a TOTAL hack, but I may go through it again when I have time). Basically it was erroring out in locateFileStart when it called mmc::readSector. I added code to line 183, after the second-to-last closing bracket in the function:
Code: [Select]
} [glow]else {
 return false;
So it will still return false to show it had an error, but it will reinitialize the card and usually works on the next write, although sometimes it take 2 writes to kick it back on.
I anybody with better coding skillz wants to improve on my hack, feel free. :D
I'm using FileLogger lib.
I would like to create a function for logging info bat i have a problem with variables:
my code:
Code: [Select]
void write_log(char msg[]){
 byte buffer[length];
 buffer = msg;
 FileLogger::append(FILE_LOG, buffer, length);
on my loop:
Code: [Select]
write_log("test 123 prova 123");
but error generated
Code: [Select]
In function 'void write_log(char*)':
error: incompatible types in assignment of 'char*' to 'byte [(((unsigned int)(((int)length) + -0x000000001)) + 1)]
please help me?
Go Up
Please enter a valid email to subscribe
Confirm your email address
We need to confirm your email address.
Thank you for subscribing!
via Egeo 16
Torino, 10131


Funding and Support
Alberta Metallic Silhouette Association
The Alberta Metallic Silhouette Association was founded in September of 1977, to assist rifle clubs in Alberta to set-up silhouette ranges, unify rules used to coordinate matches in and outside of the province and assist silhouette shooters however possible.
What is Metallic Silhouette Shooting all about?
Metallic Silhouette began in Mexico as a rifle shooting game where live animals were used as targets atop a high ridgeline to offer an outline or "silhouette." In the early '70's the American Shooters discovered metallic silhouette and brought it north of the border. Initially individuals fired only with high-powered rifles and were hampered by the need for rifle ranges which had the required 500-meter distance. Popularity increased dramatically in the 1970's when the National Rifle Association incorporated it into their competition schedule and created smallbore and air rifle classes that allowed the course of fire to be shot on smaller ranges.
Watch a video about our sport and organization below!
Alberta Metallic Silhouette Association AMSA Logo
Silhouette Rifle Association of Canada


Streamline Chub (Erimystax dissimilis)
The Streamline Chub is found in several disjunct populations in the Ohio River Drainage from Alabama to New York, including the Tennessee and Cumberland river drainages. They are found in riffles and runs of large streams and rivers over rock and gravel bottoms. As the common name suggests, Streamline Chubs have a "streamline" body shape that is long and slender to help maintain their position in swift water. They are disappearing throughout their range due to reservoir construction and siltation.


Warning over 'DPD' scam text - here's what to do if you receive a fake delivery tracking message
Wednesday, 21st July 2021, 4:48 pm
What you need to know about the scam text (Photo: Shutterstock)
Over the course of the Covid-19 pandemic, shoppers across the country became more dependent on parcel delivery services such as Royal Mail, DPD and Hermes while we stayed indoors.
However, this change in shopping behaviour has resulted in a new wave of scams thought up by criminals, with the latest warnings advising shoppers to be wary of fake delivery emails and texts from DPD.
Action Fraud says that by December 2020, £242k was lost to fake DPD emails and texts.
This is what you need to know.
What's the scam?
The scam entails sending a text that claims that DPD attempted to deliver a package to you, but was unable - and there therefore is an outstanding fee to pay for arranging a redelivery.
The message then usually contains a link that instructs victims on how to set up a redelivery for their parcel, and how to pay the outstanding fee.
If you go ahead and make the payment, you'll then receive a phone call a few days later from someone claiming to be from your bank to inform you of suspicious transactions on your account.
Criminals undertaking this scam are able to use something called "spoofing" to make it seem like the text or phone call is genuinely coming from the bank.
The victim is then told that their bank account could be compromised, and are instructed to transfer their money into what they think is a secure alternative account to prevent further loss.
However, in reality, the victim has transferred their money into an account which is under the fraudsters control.
In some cases, criminals are able to gain enough personal information and security details during the phone call with the unsuspecting victim that they are actually able to take out a loan in the victim's name - and then, again, transfer the loan to an account that they control.
How can I spot a scam text?
DPD says you can spot a fake text by looking at the following characteristics:
 - Poor language - keep an eye out for badly written sentences with spelling or grammatical mistakes
 - Lack of personal salutation - rather than using your name, you will be addressed as "customer" or "sir/madam"
 - Obscure links - always be wary of links in texts that urge you to click on them, and you should always double check where the link will be sending you
If you're unsure about a text for whatever reason, it's always best to err on the side of caution.
Don't click any links and instead visit the DPD website to get help regarding the delivery status of your parcel.
A DPD spokesperson said that DPD would never "get consumers to send money for parcels to be redirected or re-delivered" and that it would never "ask consumers to give us their bank details".
What should I do if I get a fake text?
If you've received a scam text, do not click any links or follow any instructions contained within the message.
Action Fraud says that if you've received a scam text, you can forward the message to 7726, which spells SPAM on your keypad.
What should I do if I've clicked a link or paid money?
If you acted upon the message sent to you that you think might be a scam, you should contact your bank immediately to let them know what has happened and discuss your next steps.
You can also report it to Action Fraud online, or by calling 0300 _PHONE_ as soon as possible.
For those in Scotland, you can report the scam to Citizens Advice and you can call the police on 101 if you've transferred money in the last 24 hours.


text:
Dermoscopy of Atypical Nevi Structural Component Definitions
Reticular type: The reticular type is the most common pattern and is characterized by a pigment network with thin uniform lines and regular meshes. The pigment network is usually evenly distributed throughout the lesion and fades at the periphery.
Globular type: The globular type is characterized by dots and globules of variable size and shape (oval, round or rectangular) more or less evenly distributed throughout the lesion. The combination of the globular and reticular types is common. A common presentation of this combined pattern is a lesion with dots/globules located at the periphery an a regular reticulated pattern in the center.
Homogeneous types: The homogeneous pattern is the least common. There is diffuse pigmentation of various shades of brown and white with isolated reticular and/or globular areas.


Operational FAQs
Why is my process hanging when I try to start it in the background?
The first question that needs to be asked is whether or not you have previously run a multi-node cluster using the same data directory. If you haven't, then you should check out our Cluster Setup Troubleshooting docs. If you have previously started and stopped a multi-node cluster and are now trying to bring it back up, you're in the right place.
In order to keep your data consistent, CockroachDB only works when at least a majority of its nodes are running. This means that if only one node of a three node cluster is running, that one node will not be able to do anything. The --background flag of cockroach start causes the start command to wait until the node has fully initialized and is able to start serving queries.
Together, these two facts mean that the --background flag will cause cockroach start to hang until a majority of nodes are running. In order to restart your cluster, you should either use multiple terminals so that you can start multiple nodes at once or start each node in the background using your shell's functionality (e.g., cockroach start &) instead of the --background flag.
Why is memory usage increasing despite lack of traffic?
Like most databases, CockroachDB caches the most recently accessed data in memory so that it can provide faster reads, and its periodic writes of timeseries data cause that cache size to increase until it hits its configured limit. For information about manually controlling the cache size, see Recommended Production Settings.
Why is disk usage increasing despite lack of writes?
The timeseries data used to power the graphs in the Admin UI is stored within the cluster and accumulates for 30 days before it starts getting truncated. As a result, for the first 30 days or so of a cluster's life, you will see a steady increase in disk usage and the number of ranges even if you aren't writing data to the cluster yourself.
Can I reduce or disable the storage of timeseries data?
Yes. By default, CockroachDB stores timeseries data for the last 30 days for display in the Admin UI, but you can reduce the interval for timeseries storage or disable timeseries storage entirely.
After reducing or disabling timeseries storage, it can take up to 24 hours for timeseries data to be deleted and for the change to be reflected in Admin UI metrics.
Reduce the interval for timeseries storage
To reduce the interval for storage of timeseries data, change the timeseries.storage.resolution_10s.ttl cluster setting to an INTERVAL value less than 720h0m0s (30 days). For example, to store timeseries data for the last 15 days, run the following SET CLUSTER SETTING command:
> SET CLUSTER SETTING timeseries.storage.resolution_10s.ttl = '360h0m0s';
> SHOW CLUSTER SETTING timeseries.storage.resolution_10s.ttl;
(1 row)
Disable timeseries storage entirely
Disabling timeseries storage is recommended only if you exclusively use a third-party tool such as Prometheus for timeseries monitoring. Prometheus and other such tools do not rely on CockroachDB-stored timeseries data; instead, they ingest metrics exported by CockroachDB from memory and then store the data themselves.
To disable the storage of timeseries data entirely, run the following command:
> SET CLUSTER SETTING timeseries.storage.enabled = false;
> SHOW CLUSTER SETTING timeseries.storage.enabled;
(1 row)
If you want all existing timeseries data to be deleted, change the timeseries.storage.resolution_10s.ttl cluster setting as well:
> SET CLUSTER SETTING timeseries.storage.resolution_10s.ttl = '0s';
What happens when a node runs out of disk space?
When a node runs out of disk space, it shuts down and cannot be restarted until space is freed up. To prepare for this case, place a ballast file in each node's storage directory that can be deleted to free up enough space to be able to restart the node. If you did not create a ballast file, look for other files that can be deleted, such as log files.
In addition to using ballast files, it is important to actively monitor remaining disk space.
Why would increasing the number of nodes not result in more operations per second?
If queries operate on different data, then increasing the number of nodes should improve the overall throughput (transactions/second or QPS).
However, if your queries operate on the same data, you may be observing transaction contention. See Understanding and Avoiding Transaction Contention for more details.
Why does CockroachDB collect anonymized cluster usage details by default?
Collecting information about CockroachDB's real world usage helps us prioritize the development of product features. We choose our default as "opt-in" to strengthen the information we receive from our collection efforts, but we also make a careful effort to send only anonymous, aggregate usage statistics. See Diagnostics Reporting for a detailed look at what information is sent and how to opt-out.
What happens when node clocks are not properly synchronized?
CockroachDB requires moderate levels of clock synchronization to preserve data consistency. For this reason, when a node detects that its clock is out of sync with at least half of the other nodes in the cluster by 80% of the maximum offset allowed (500ms by default), it spontaneously shuts down. While serializable consistency is maintained regardless of clock skew, skew outside the configured clock offset bounds can result in violations of single-key linearizability between causally dependent transactions. It's therefore important to prevent clocks from drifting too far by running NTP or other clock synchronization software on each node.
The one rare case to note is when a node's clock suddenly jumps beyond the maximum offset before the node detects it. Although extremely unlikely, this could occur, for example, when running CockroachDB inside a VM and the VM hypervisor decides to migrate the VM to different hardware with a different time. In this case, there can be a small window of time between when the node's clock becomes unsynchronized and when the node spontaneously shuts down. During this window, it would be possible for a client to read stale data and write data derived from stale reads. To protect against this, we recommend using the server.clock.forward_jump_check_enabled and server.clock.persist_upper_bound_interval cluster settings.
When setting up clock synchronization:
 - All nodes in the cluster must be synced to the same time source, or to different sources that implement leap second smearing in the same way. For example, Google and Amazon have time sources that are compatible with each other (they implement leap second smearing in the same way), but are incompatible with the default NTP pool (which does not implement leap second smearing).
 - For nodes running in AWS, we recommend Amazon Time Sync Service. For nodes running in GCP, we recommend Google's internal NTP service. For nodes running elsewhere, we recommend Google Public NTP. Note that the Google and Amazon time services can be mixed with each other, but they cannot be mixed with other time services (unless you have verified leap second behavior). Either all of your nodes should use the Google and Amazon services, or none of them should.
 - If you do not want to use the Google or Amazon time sources, you can use chrony and enable client-side leap smearing, unless the time source you're using already does server-side smearing. In most cases, we recommend the Google Public NTP time source because it handles smearing the leap second. If you use a different NTP time source that doesn't smear the leap second, you must configure client-side smearing manually and do so in the same way on each machine.
 - Do not run more than one clock sync service on VMs where cockroach is running.
For guidance on synchronizing clocks, see the tutorial for your deployment environment:
Environment Featured Approach
On-Premises Use NTP with Google's external NTP service.
AWS Use the Amazon Time Sync Service.
Azure Disable Hyper-V time synchronization and use NTP with Google's external NTP service.
Digital Ocean Use NTP with Google's external NTP service.
GCE Use NTP with Google's internal NTP service.
How can I tell how well node clocks are synchronized?
As explained in more detail in our monitoring documentation, each CockroachDB node exports a wide variety of metrics at http://:/_status/vars in the format used by the popular Prometheus timeseries database. Two of these metrics export how close each node's clock is to the clock of all other nodes:
Metric Definition
clock_offset_meannanos The mean difference between the node's clock and other nodes' clocks in nanoseconds
clock_offset_stddevnanos The standard deviation of the difference between the node's clock and other nodes' clocks in nanoseconds
As described in the above answer, a node will shut down if the mean offset of its clock from the other nodes' clocks exceeds 80% of the maximum offset allowed. It's recommended to monitor the clock_offset_meannanos metric and alert if it's approaching the 80% threshold of your cluster's configured max offset.
You can also see these metrics in the Clock Offset graph on the Admin UI's Runtime dashboard.
How do I prepare for planned node maintenance?
> SET CLUSTER SETTING server.time_until_store_dead = '15m0s';
> RESET CLUSTER SETTING server.time_until_store_dead;
 > SET CLUSTER SETTING server.shutdown.drain_wait = '10s';
See also
YesYes NoNo