Animates a number of AVS x format image files stored in memory or on disk.
module AVSImagePlayer < src_file="ximg_ply.cxx", build_dir="xp_comm_proj/ximg_ply", out_src_file="gen.cxx", out_hdr_file="gen.hxx", cxx_name="xImgPlay", cxx_members="private: friend void AVSImagePlayer_LoopFuncTmp(char *arg); void LoopFunc(void); int ReadImages(void); int ReadImage(int image_no, int data_array_index, char *module_name); ", cxx_hdr_files="fld/Xfld.h"> { ImagePlayerParams+read+write+req &ImagePlayerParams; int trigger_run ; int trigger_stop ; int+read+req data_array_size = 1; Data_Array+write+nonotify+nosave Data_Array[data_array_size] { veclen = 4; id = 669; values+byte; null_value+byte; min+byte; max+byte; min_vec+byte; max_vec+byte; }; int node_data_index => switch((ImagePlayerParams.access_mode + 1),0,ImagePlayerParams.count); Mesh_Unif+Node_Data+write+nonotify out { ndim = 2; nspace = 2; points => { {0,0}, {(dims[0] - 1),(dims[1] - 1)} }; nnode_data = 1; &node_data => Data_Array[node_data_index]; }; GDM.DataObject DataObject { in => out; Obj ; }; cxxmethod+req image_player_run( trigger_run+read+notify+req ); cxxmethod+req image_player_stop( trigger_stop+read+notify+req ); };
AVSImagePlayer is a low level module that is able to read in image files in the AVS x format and then animate them from either memory or by loading each image as it is required. The image filenames are specified by using a C-style format-string and a number of parameters. The module is also able to control the rate at which the images are animated, whether the animation runs forward or backwards and whether the animation cycles continously. The images are output as both a uniform mesh with colours represented by node data, and a renderable DataObject that is generated from the uniform mesh.
trigger_run
When updated this parameters triggers the start of the animation. The animation then runs until the trigger_stop parameter is updated, or until all images have been displayed if the animation is not cycling. When updated the parameter triggers the loading of image files into memory, should this be necessary.
trigger_stop
When updated this parameter halts the animation. The animation stops at the current frame. This parameter does not reset the animation to either the first or last frames.
&ImagePlayerParams
Reference to the parameter block, which contains real instances of the parameters for the AVSImagePlayer function.
ImagePlayerParams.file_format
Filename formatting string that specifies the filenames of the image files that are to be loaded. The parameter is of type string. This parameter uses a C-style formatting expression to generate indexed filenames.
Therefore setting file_format to "Imag%d.x" will generate filenames of the form "Image0.x" with no leading characters; whilst setting the parameter to "Image%04d.x" will generate filenames which are padded with zeros to be 8 characters long (i.e. "Imag0001.x"). More information can be found in any C reference book.
ImagePlayerParams.nb_images
Total number of images that are to be animated. This parameter is of type int. The animation will stop or repeat as appropriate when this many frames have been displayed.
ImagePlayerParams.first_image
Index number of first image to be animated. This parameter is of type int.
ImagePlayerParams.step
Value that the index number should be incremented by during each iteration of the animation loop. This parameter is of type int.
ImagePlayerParams.access_mode
Specifies whether images should be animated from memory or from disk. This parameter is of type int. Setting the parameter to 0 specifies that each image should be read from disk immediately before it is displayed. Setting the parameter to 1 specifies that all the images should be loaded into memory before the animation begins and displayed directly from memory.
ImagePlayerParams.run_mode
Specifies how the animation should be performed. This parameter is of type int. There are four possible values for this parameter:-
ImagePlayerParams.fps
Number of frames per second that the images should be animated at. This parameter is of type float. This is the ideal number of frames per second, if the system is unable to achieve this value then the animation will run at a lower rate.
ImagePlayerParams.nsec_before
Specifies the number of seconds that the animation should wait at the starting frame before the animation is restarted. This parameter only applies when the animation is cycling. The parameter is of type int.
ImagePlayerParams.nsec_after
Specifies the number of seconds that the animation should wait at the ending frame before the animation returns to the starting frame. This parameter only applies when the animation is cycling. The parameter is of type int.
ImagePlayerParams.count
The index number of the currently displayed image. This parameter is of type int. Setting this parameter will cause the currently displayed image to change immediately.
ImagePlayerParams.real_fps
Number of frames per second that the animation is actually running at. This parameter is of type string. The parameter is intended for display only and to ease display the number of frames per second is included along with an appropriate message by the module.
out
Field data containing the currently displayed image. The image is represented by a uniform mesh. The colour of each pixel is represented by a vector of length 4 (i.e. alpha, red, green, blue) at each node data point.
obj
The directly renderable output field of the AVSImagePlayer module. This contains a DataObject object that can be rendered by the standard data viewers. The DataObject is generated directly from the field data created from the currently displayed image.
The low-level AVSImagePlayer module is used in the User Macro imagePlayer. Additionally, this macro also uses the ImagePlayerParams parameter block group object, as does the ImagePlayerUI UI Macro.
An example application AVSImagePlayerEg is provided, which uses the animation module to display a sequence of images generated for a Meteorological Office presentation on global warming.
xp_comm_proj/ximg_ply/iplymods.v contains the ImagePlayerParams group and the AVSImagePlayer module V definitions.
The low-level AVSImagePlayerMods library containing the module AVSImagePlayer does not specify a process. By default the express process will be used.
Fernand Alcatrao
Andrew Dodd
ImagePlayerParams, ImagePlayerUI, imagePlayer


Statistical relational learning
25 Nov 2019 Logic Probability LearningStatistical relational learning (Koller et al., 2007) is a branch of artificial intelligence (AI) devoted to integrate research in probability theory, statistics, logics and relational learning. Its main purpose is to develop learning models that handle uncertain information extracted from real world scenarios, and produce structured representations that describe objects, attributes and their relations.
Relational structures are able to provide complex models that describe objects in terms of attributes and relations. However, treatment of noisy, erroneous, duplicate and missing information is a common problem for relational learning systems due to their crisp representation of the domain.
During recent years, the machine learning (ML) community focused on statistical techniques (e.g. decision trees, support vector machines, neural networks, clustering, dimentionality reduction, reinforcement learning, and so on) that provided high prediction accuracy in many domains such as economics, bioinformatics, game playing, advertising, computer vision, speech recognition, natural language processing, recommendation systems just to name a few. These statistical models are inherently capable of dealing with uncertain information, though often at the expense of an interpretable model of the domain’s concepts.
Among the strong motivations for using a relational model is its ability to model dependencies between related instances. Intuitively, we would like to use our information about one object to help us reach conclusions about other, related objects. For example, in web data, we should be able to propagate information about the topic of a document to documents it has links to and documents that link to it.
Common problems
There are some classical problems in statistical relational learning systems (Koller et al., 2007):
- Relational feature construction between a model’s random variables and statistical predicate invention.
- Relational feature aggregation: because describing the influence of neightbors towards an object might be infeasible, aggregates provide a solution for defining relational neightborhood.
- Structural uncertainty: when there are many logical interpretation for the set of random variables. Namely, when the identity, attributes or domain itself are uncertain.
Existing work
Some approaches in the literature include (Koller et al., 2007):
- Inductive logic programming (ILP): learning logical rules from set of examples and background knowledge (Muggleton & De Raedt, 1994).
- Conditional random fields (CRF): (Sutton et al., 2012).
- Frame-based approaches:
- Probabilistic relational models (PRM): (Getoor et al., 2007).
- Relational markov networks (RMN): (Taskar et al., 2007).
- Probabilistic entity-relation models (PER) (Heckerman et al., 2004).
- Relational dependency networks (RDN): (Neville & Jensen, 2007).
- Logic-based approaches:
- Probabilistic knowledge bases.
- Probabilistic logic programming.
- Bayesian logic programming (BLP).
- Stochastic logic programming (SLP).
- Markov logic networks (MLN).
- Bayesian logic (BLOG) system, a language that defines probability distributions over outcomes with varying sets of objects. Which does not make the assumptions of unique names, requiring that the symbols or terms of the language all refer to distinct objects, and domain closure, requiring that no objects exist besides the ones referred to by terms in the language.
- Integrated Bayesian Agent Language (IBAL) system: a functional programming language for probabilistic AI.
- Lifted First-Order Probabilistic Inference.
- Structured generalized linear regression (SGLR).
- Reinforcement Learning in Relational Domains.
Canonical tasks
A number of canonical tasks are associated with statistical relational learning, the most common ones being:
- Collective classification, i.e. the (simultaneous) prediction of the class of several objects given objects’ attributes and their relations.
- Link prediction, i.e. predicting whether or not two or more objects are related.
- Link-based clustering, i.e. the grouping of similar objects, where similarity is determined according to the links of an object, and the related task of collaborative filtering, i.e. the filtering for information that is relevant to an entity (where a piece of information is considered relevant to an entity if it is known to be relevant to a similar entity).
- Social network modelling.
- Object identification/entity resolution/record linkage, i.e. the identification of equivalent entries in two or more separate databases/datasets.
References
- Koller, D., Friedman, N., Džeroski, S., Sutton, C., McCallum, A., Pfeffer, A., Abbeel, P., Wong, M.-F., Heckerman, D., Meek, C., & others. (2007). Introduction to statistical relational learning. MIT press.
- Raedt, L. D., & Kersting, K. (2010). Statistical relational learning. Encyclopedia of Machine Learning, 916–924.
- Muggleton, S., & De Raedt, L. (1994). Inductive logic programming: Theory and methods. The Journal of Logic Programming, 19, 629–679.
- Sutton, C., McCallum, A., & others. (2012). An introduction to conditional random fields. Foundations and Trends Ⓡ in Machine Learning, 4(4), 267–373.
- Getoor, L., Friedman, N., Koller, D., Pfeffer, A., & Taskar, B. (2007). Probabilistic relational models. Introduction to Statistical Relational Learning, 8.
- Taskar, B., Abbeel, P., Wong, M.-F., & Koller, D. (2007). Relational markov networks. Introduction to Statistical Relational Learning, 175–200.
- Heckerman, D., Meek, C., & Koller, D. (2004). Probabilistic models for relational data. Technical Report MSR-TR-2004-30, Microsoft Research.
- Neville, J., & Jensen, D. (2007). Relational dependency networks. Journal of Machine Learning Research, 8(Mar), 653–692.


Classes
AbstractBubbleAnimation
AbstractMoveInDirectionOfAnimation
AbstractPointAtAnimation
AbstractPointAtConstraint
AbstractPositionAnimation
Animation
CallToUserDefinedResponse
ChoiceResponse
Comment
CompositeResponse
Decrement
DirectionAmountTransformAnimation
DirectionSpeedTransformResponse
DoInOrder
DoTogether
EulerAnglesAnimation
ForEach
ForEachInOrder
ForEachTogether
ForwardVectorAnimation
GetAGoodLookAtAnimation
IfElseInOrder
Increment
LoopNInOrder
MoveAnimation
MoveAtSpeed
MoveAwayFromAnimation
MoveTowardAnimation
MoveVectorAnimation
OrientationAnimation
PlaceAnimation
PointAtAnimation
PointAtConstraint
PointOfViewAnimation
PoseAnimation
PositionAnimation
Print
PropertyAnimation
QuaternionAnimation
ResizeAnimation
RollAnimation
RollAtSpeed
RotateAnimation
RotateAtSpeed
SayAnimation
ScriptDefinedResponse
ScriptResponse
SendMessage
SizeAnimation
SoundResponse
StandUpAnimation
TextureMapMovie
ThinkAnimation
TransformAnimation
TransformResponse
TurnAnimation
TurnAtSpeed
TurnAwayFromAnimation
TurnAwayFromConstraint
TurnToFaceAnimation
TurnToFaceConstraint
UserDefinedResponse
VehiclePropertyAnimation
Wait
WhileLoopInOrder |


What are the functions available in cctype.h in c++
- isdigit
- isxdigit
- isalpha
- isalnum
- iscntrl
- isgraph
- tolower
- toupper
isdigit
How to use isdigit
isdigit is the function provided in cctype.h header file in c++ As the name suggests it is used to find whether the given character is digit or not. It will return true if it is digit else will return false. Characters like '1' , '8' , '20' will return true
char allData[11] = {'a','B',' ','#','\t','5','m','L','\n','0'};
for(int z = 0;z<11;z++){
if(isdigit(allData[z])){
cout << allData[z]<< " is digit"<<endl;
}
}
Running the loop for all characters in the array
If allData[z] is a digit then it will return true and and the code inside if will be executed
5 is digit 0 is digit
isxdigit
How to use isxdigit
isxdigit is the function provided in cctype.h header file in c++ As the name suggests it is used to find whether the given character is hexa-decimal or not. Characters like 'a' , 'f' , '1' will return true
char allData[11] = {'a','B',' ','#','\t','5','m','L','\n','0'};
for(int z = 0;z<11;z++){
if(isxdigit(allData[z])){
cout << allData[z]<< " is hexa-decimal"<<endl;
}
}
Running the loop for all characters in the array
If allData[z] is a hexa-decimal then it will return true and and the code inside if will be executed
a is hexadecimal digit B is hexadecimal digit 5 is hexadecimal digit 0 is hexadecimal digit
isalpha
How to use isalpha
alpha means alphabet so it will return true if the character is alphabet. characters like 'A' , 'b','s' will return true
char allData[11] = {'a','B',' ','#','\t','5','m','L','\n','0'};
for(int z = 0;z<11;z++){
if(isalpha(allData[z])){
cout << allData[z]<< " is alphabet"<<endl;
}
}
Running the loop for all characters in the array
If allData[z] is a alphabet then it will return true and and the code inside if will be executed
a is alphabet B is alphabet m is alphabet L is alphabet
isalnum
How to use isalnum
alphanumeric value means combination of letters along with numbers which is represented by isalnum in c++. Generally it is the combination of isdigit and isalpha. so it will return true if the character is alphabet and numbers. characters like 'A' , 'b','s','8','0','7' and will return true.
char allData[11] = {'a','B',' ','#','\t','5','m','L','\n','0'};
for(int z = 0;z<11;z++){
if(isalnum(allData[z])){
cout << allData[z]<< " is alphanumeric"<<endl;
}
}
Running the loop for all characters in the array
If allData[z] is a alphanumeric then it will return true and and the code inside if will be executed
a is alphanumeric B is alphanumeric 5 is alphanumeric m is alphanumeric L is alphanumeric 0 is alphanumeric
iscntrl
How to use iscntrl
Control characters are the character which controls the output.Some of the Control characters are '\t' '\n'. First one displays the output one tab away and second one breaks the line
char allData[11] = {'a','B',' ','#','\t','5','m','L','\n','0'};
for(int z = 0;z<11;z++){
if(iscntrl(allData[z])){
cout << allData[z]<< " is control character"<<endl;
}
}
Running the loop for all characters in the array
If allData[z] is a control character then it will return true and and the code inside if will be executed
You can see the new line because \n breaks to new line
is control character is control character is control character
isgraph
How to use isgraph
Graphical characters are the character which have certain shape or structure .Some of the Graphical characters are '#' '-', 'B'. ' ' '\t' are not Graphical characters as they donot have certain structure.
char allData[11] = {'a','B',' ','#','\t','5','m','L','\n','0'};
for(int z = 0;z<11;z++){
if(isgraph(allData[z])){
cout << allData[z]<< " is graphical character"<<endl;
}
}
Running the loop for all characters in the array
If allData[z] is a graphical character or has fixed shape then it will return true and and the code inside if will be executed
a is graphical character B is graphical character # is graphical character 5 is graphical character m is graphical character L is graphical character 0 is graphical character
tolower
How to use tolower
It converts any letter to lowercase letters. It returns number of ASCII value. Insert any character between tolower and you will get the answer.
char allData[6] = {'a','B','C','c','t'};
char ans;
for(int z = 0;z<6;z++){
if(isalpha(allData[z])){
ans = tolower(allData[z]);
cout << ans<<endl;
}}
Running the loop for all characters in the array
If allData[z] is a alphabet then it will return true and and the code inside if will be executed
tolower returns integer value i.e. ASCII value. Since it is stored in characters it will be converted into character so character is displayed.
For Eg:
tolower('A') returns 97 which becomes a when stored in char
a b c c t
toupper
How to use toupper
It converts any letter to uppercase letters. It returns number of ASCII value. Insert any character between toupper and you will get the answer.
char allData[6] = {'a','B','C','c','t'};
char ans;
for(int z = 0;z<6;z++){
if(isalpha(allData[z])){
ans = toupper(allData[z]);
cout << ans<<endl;
}}
Running the loop for all characters in the array
If allData[z] is a alphabet then it will return true and and the code inside if will be executed
toupper returns integer value i.e. ASCII value. Since it is stored in characters it will be converted into character so character is displayed.
For Eg:
toupper('a') returns 65 which becomes A when stored in char
A B C C T


@(result: SearchResult[_], calls: Calls, previousTruncate: Boolean, nextTruncate: Boolean, firstLabel: Html, previousLabel: Html, truncateLabel: Html, nextLabel: Html, lastLabel: Html)


Relative difficulty includes your attributes while course difficulty is the result of taking an average across the sex/age bands, effectively removing the personal attributes from the calculation.
You chose to calculate the difficulty for the {{ args[3] }} for a {{args[1]}} in the age bracket {{args[0]}}. In addition to GPS information about the course, these features are used in the relative difficulty calculation, and either positively or negatively affect the score in the following manner (pictorially summarized by the top panel in Figure 1):
| Feature | Importance | Relevance of Feature |
|---|---|---|
| Age | {{ '%0.3f'|format(beta[0]|float) }} | Age is a categorical variable ranging from 0-17. |
| Sex | {{ '%0.3f'|format(beta[1]|float) }} | Sex is a categorical variable, either 1 (Female) or 2 (Male). |
| Time | {{ '%0.3f'|format(beta[2]|float) }} | Median finish time for this race (min). |
| Elevation Gain | {{ '%0.3f'|format(beta[3]|float) }} | Elevation gain normalized by the race distance (m/mi). |
| Hilliness | {{ '%0.3f'|format(beta[4]|float) }} | Standard deviation in the elevation mean divided by distance (m/mi). |
| Elevation Difference | {{ '%0.3f'|format(beta[5]|float) }} | Difference in the elevation gain and loss divided by distance (m/mi). |


The numbers behind Europe's most vibrant city
Posted by on February 6, 2016
Posted by on December 25, 2015
Posted by on December 16, 2015
Posted by on December 7, 2015
Posted by on December 4, 2015


People ask me sometimes why I choose to use GNU/Linux instead of an easy 'just werks' OS like Windows.  The biggest reasoning for me is ease of use and customization. I enjoy tinkering with things and tweaking them to look just the way I want them, and you can't do that with Windows. It takes a lot of effort to get any customization working, and that is usually at the cost of security and system resources.
Since I've mentioned system resources, I might as well go into detail on the advantages Linux has over Windows in that department. One of Linux's largest strengths is its minimal resource requirement. I have found that Windows uses on average 2 gigabytes of RAM while the computer is idling. In fact, 2 gigabytes is the minimum requirement just for Windows to work. My setup of Arch Linux, in contrast, uses an average of 230 megabytes. This leaves more resources for tasks the I want to complete. The laptop I'm typing this on has 5gb of usuable RAM, and that leaves only 3gb available when I run Windows. This doesn't even take into account the outrageous disk and processor usage of Windows.
Windows is also hard to fix. Only Microsoft has access to the source code, meaning the average joe won't be able to repair a bug without help from Microsoft. In addition, the main method of fixing any issue seems to be reinstall Windows or install an obscure third-party tool. This could be the reason malware is so prevalent, as well. Linux is easy to repair, however, due to its open-source nature, user and developer made documentation, and an a usually ready-to-help community. Fixing a problem is a breeze in the world of Linux. Linux is also much more secure and doesn't have many issues with malware at all. I don't have any sort of anti-malware (antivirus) software installed on my systems.
I mentioned in the last post that macOS and GNU/Linux are pretty similar and support much of the same software. I choose not to use macOS for a couple reasons. First, it's pretty difficult to get working on a computer that isn't a Mac. Second, Apple has a bad habit of being an evil corporation that spies on you, and their software isn't freedom-respecting.
You're probably wondering now, what's freedom-respecting software? In short, it's software that doesn't disrespect the personal liberty of the user. I have a definition posted here that explains exactly what this means. I'm no free software purist and I use some proprietary software, but free software is usually much more convenient and secure. Anyway, those are the reasons I use Linux.
Edit: I totally forgot to add a link to Richard Stallman's reasons for not using Microsoft products and Windows. Here's the page.


Git is just one of many version control software out there. Git is a distributed version control system, meaning multiple people can be working on the same code locally without affecting the main project. Git is also designed in a way where someone can work on the code offline. When someone is done editing the code, they can use git to upload the code to a website called Github. These are the reasons why Git is a well known version control software because it makes version control easier for software developers.
Fetch downloads new data from a remote projects - example Github, but it doesn't add any of fetched data into your local project, the one that you have cloned. Fetch is great for getting a view on all the updates that took place in a remote project. Fetch is written in a way where it will never corrupt existing file on your local.


Retrieve a patient's document
Use case
Retrieve a patient’s documents from a GP practice.
Security
- GP Connect utilises TLS Mutual Authentication for system level authorization
- GP Connect utilises JSON Web Tokens (JWT) to transmit clinical audit and provenance details
Prerequisites
Consumer
The consumer system:
- MUST have previously resolved the organisation’s FHIR endpoint base URL through the Spine Directory Service
- MUST have previously traced the patient’s NHS Number using the Personal Demographics Service or an equivalent service
API usage
Interaction diagram
Request
FHIR® relative request
Get /Binary/[id]
FHIR® absolute request
POST https://[proxy_server]/https://[provider_server]/[fhir_base]/Binary/[id]
Request headers
Consumers MUST include the following additional HTTP request headers:
| Header | Value |
|---|---|
Ssp-TraceID |
Consumer’s Trace ID (a GUID or UUID) |
Ssp-From |
Consumer’s ASID |
Ssp-To |
Provider’s ASID |
Ssp-InteractionID |
urn:nhs:names:services:gpconnect-documents:fhir:rest:read:binary-1 |
Example HTTP request headers:
Accept: application/fhir+json;charset=utf-8
Content-Type: application/fhir+json;charset=utf-8
Ssp-TraceID: 629ea9ba-a077-4d99-b289-7a9b19fd4e03
Ssp-From:<PHONE_NUMBER>15
Ssp-To:<PHONE_NUMBER>16
Ssp-InteractionID: urn:nhs:names:services:gpconnect-documents:fhir:rest:read:binary-1
Payload request body
N/A
Error handling
Provider systems:
- SHALL return a
GPConnect-OperationOutcome-1
resource that provides additional detail when one or more data fields are corrupt or a specific business rule/constraint is breached.
Examples of other scenarios which may result in error being returned:
- Where a logical identifier of the resource is not valid/can’t be found on the server, a 404 HTTP Status code would be returned with the relevant OperationOutcome resource.
Refer to Development - FHIR API Guidance - Error Handling for details of error codes.
Request response
Response headers
Provider systems are not expected to add any specific headers beyond that described in the HTTP and FHIR® standards.
Payload response body
Provider systems MUST:
- return a
200
OK HTTP status code to indicate successful execution of the operation. - return a
Binary
resource conforming to theBinary
resource definition - include the
versionId
of the current version of theBinary
resource.
Payload response examples
Examples of the payload requests and responses can be found here:


<wendy> Scribe: RalphS
calconnect meeting in Seattle 11-13 Jan, DanC, 2005-01-07
<Wendy> calconnect meeting in Seattle 11-13 Jan, DanC, 2005-01-07
This is scribe.perl Revision: 1.122 of Date: 2005/03/31 04:43:41 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: RRSAgent_Text_Format (score 1.00) Found Scribe: RalphS Inferring ScribeNick: RalphS WARNING: 1 scribe lines found (out of 5 total lines.) Are you sure you specified a correct ScribeNick? WARNING: No "Topic:" lines found. WARNING: No "Present: ... " found! Possibly Present: plh wendy You can indicate people for the Present list like this: <dbooth> Present: dbooth jonathan mary <dbooth> Present+ amy WARNING: No date found! Assuming today. (Hint: Specify the W3C IRC log URL, and the date will be determined from that.) Or specify the date like this: <dbooth> Date: 12 Sep 2002 People with action items: WARNING: Input appears to use implicit continuation lines. You may need the "-implicitContinuations" option. WARNING: No "Topic: ..." lines found! Resulting HTML may have an empty (invalid) <ol>...</ol>. Explanation: "Topic: ..." lines are used to indicate the start of new discussion topics or agenda items, such as: <dbooth> Topic: Review of Amy's report WARNING: IRC log location not specified! (You can ignore this warning if you do not want the generated minutes to contain a link to the original IRC log.)[End of scribe.perl diagnostic output]


{% extends 'template-lab-4a.html' %} {% set mainClasses = 'nhsuk-u-padding-top-0' %} {% block pageTitle %} Symptoms - NHS {% endblock %} {% block beforeContent %} {% endblock %} {% block content %}
Many people get dry eyes. It's not usually serious and there are things you can do to help.

You may be more likely to get dry eyes if:
clean your eyelids every day
take breaks to rest your eyes when using a computer screen
make sure your computer screen is just below eye level
use a humidifier to stop the air getting dry
if you wear contact lenses, take them out and wear glasses to rest your eyes
do not smoke or drink too much alcohol
do not spend too long in smoky, dry or dusty places
do not spend too long in air conditioned or heated rooms
do not stop taking a prescribed medicine without getting medical advice first – even if you think it's causing your symptoms
A pharmacist may be able to tell you:
They can check what the cause might be and recommend treatment for it.
If an optician or GP cannot find a cause, they may refer you to an eye specialist (ophthalmologist) for tests.
You can call 111 or get help from 111 online
Page last reviewed: 02 August 2019
Next review due: 02 August 2022


|
Unity Overlay Toolkit
|
A list of integers that will be synchronized from server to clients. More...
Static Public Member Functions | |
| static SyncListInt | ReadInstance (NetworkReader reader) |
| static void | ReadReference (NetworkReader reader, SyncListInt syncList) |
| An internal function used for serializing SyncList member variables. More... | |
| static void | WriteInstance (NetworkWriter writer, SyncListInt items) |
Protected Member Functions | |
| override void | SerializeItem (NetworkWriter writer, int item) |
| override int | DeserializeItem (NetworkReader reader) |
| This method is used when deserializing SyncList items from a stream. More... | |
| Protected Member Functions inherited from UnityEngine.Networking.SyncList< int > | |
| abstract void | SerializeItem (NetworkWriter writer, T item) |
| This is used to write a value object from a SyncList to a stream. More... | |
Additional Inherited Members | |
| Public Member Functions inherited from UnityEngine.Networking.SyncList< int > | |
| delegate void | SyncListChanged (Operation op, int itemIndex) |
| A delegate that can be populated to recieve callbacks when the list changes. More... | |
| void | InitializeBehaviour (NetworkBehaviour beh, int cmdHash) |
| Internal function. More... | |
| void | HandleMsg (NetworkReader reader) |
| void | Add (T item) |
| Same as List:Add() but the item is added on clients. More... | |
| void | Clear () |
| Same as List:Clear() but the list is cleared on clients. More... | |
| bool | Contains (T item) |
| Determines whether the list contains item item. More... | |
| void | CopyTo (T[] array, int index) |
| Copies the elements of the SyncList<T> to an Array, starting at a particular Array index. More... | |
| int | IndexOf (T item) |
| Determines the index of a specific item in the SyncList<T>. More... | |
| void | Insert (int index, T item) |
| Same as List::Insert() but also inserts into list on clients. More... | |
| bool | Remove (T item) |
| Same as List:Remove except removes on clients also. More... | |
| void | RemoveAt (int index) |
| Same as List:Remove except it removes the index on clients also. More... | |
| void | Dirty (int index) |
| Marks an item in the list as dirty, so it will be updated on clients. More... | |
| IEnumerator< T > | GetEnumerator () |
| Returns an enumerator that iterates through the SyncList<T>. More... | |
| Properties inherited from UnityEngine.Networking.SyncList< int > | |
| int | Count [get] |
| Returns the number of elements in this SyncList<T>. More... | |
| bool | IsReadOnly [get] |
| Reports whether the SyncList<T> is read-only. More... | |
| SyncListChanged | Callback [get, set] |
| The delegate type used for SyncListChanged. More... | |
| T | this[int i] [get, set] |
A list of integers that will be synchronized from server to clients.
|
inlineprotectedvirtual |
This method is used when deserializing SyncList items from a stream.
| reader | Stream to read from. |
Implements UnityEngine.Networking.SyncList< int >.
|
inlinestatic |
|
inlinestatic |
An internal function used for serializing SyncList member variables.
| reader | |
| syncList |
|
inlineprotected |
|
inlinestatic |


About The Conference
.NET Dev Summit is a free, virtual developer conference organized by the local .NET User group and supported by the .NET Foundation. Join us to learn about the latest and greatest of Microsoft Technologies directly from Microsoft teams, Microsoft MVPs, industry experts, and community rockstars.
Code of Conduct Our User Groups are dedicated to providing a respectful, harassment-free community for everyone. We do not tolerate harassment or bullying of any community member in any form. While attending the event, you must follow this Code of Conduct.
Upcoming events
.Net Dev Summit 2020 - Asia Pacific
SINGAPORE MOBILE .NET DEVELOPERS
Date: OCTOBER 31, 2020
👉 Register NowPast events
.Net Dev Summit 2020 - Bengaluru
BDOTNET-BENGALURU .NET USER GROUP
Date: August 29, 2020
📽 Watch RecordingAre You A User Group Leader?
We will help you host a .NET Dev Summit and stream live for free! Just submit your event details as a GitHub Pull Request to this website's repo.
Take an existing template and copy into a subfolder with your city's name. Update the Sessions, Speakers, Registration, and Sponsors and send us a PR. That's it! When the PR is merged, we will help you setup the live stream for your event.
Let's do it!


SDG Customer Service Help
A program that tracks cases, which could be complaints, compliments or comments. The program uses google apps script. It uses a google spreasheet to hold the case information, google forms to add, edit, and delete data, and a web app to view and search for case information. The program simply requires a gmail account there are no other prerequisites.
This program is available as open source software under the MIT License. https://github.com/sdgcounties/customer-service


skyux new initializes a new local SKY UX project. It pulls down the latest version of the template and runs npm install to install the necessary dependencies. By default, skyux new uses the SKY UX application template that includes the necessary items for a SKY UX single-page application. For information about the default items, see the template items reference.
Options


{% extends "base.html" %} {% block content %}
Please beware before using this website that the posts that users on Parler make are extremely vile. Tech Bloc is not responsible for this data or how you use it or its contents. Please be careful when searching this information and respect your own limits.
This tool lets users search the Parler text post data that was scraped and published by Distributed Denial of Secrets (via donk_enby). This dataset includes about 1.6 million posts made on Parler around the time of J6.
If searching for a specific user, use the users search to loosly match a part or the full username or name of a user.
Once you've found the user you're looking for, click the username to open a list of posts by that user.
To do search for post content, use the posts search and fill in the content field. This will partially match any of the content fields available in the dataset.
Note: The posts search is much slower than the users search. This is expected! There is a lot trash for our little website to sift through on your behalf, so just have patience and eventually the search will come back 💕
Additional note: Currently any links to the Parler API (e.g. Parler-hosted images & videos) are dead. We're not sure what's going on there but we're monitoring the situation and if we can restore those links we will. Otherwise just know that they're broken.
{% endblock %}


T's Pizzas 🍕
A Father Daughter Restaurant
How do you like your Pizza:
Select a size-->
Small $6
Medium $8
Large $10
Any extra toppings:
Pepperoni $3
Peppers $1
Pineapple $2
Submit Order
Order Up!


--- layout: post title: "@brentmc79 riding the mechanical bull" date: 2010-09-04 04:15:24.000000000 -07:00 type: post published: true status: publish categories: [] tags: [] meta: {} author: ---
Brendan G. Lim Director of Mobile Development
Intridea, Inc. | www.Intridea.com
p.<PHONE_NUMBER>
Sent via iPhone


Sunday, December 2, 2018
Co₂
Carbon dioxide (chemical formula CO2) is a colorless gas with a density about 60% higher than that of dry air. Carbon dioxide consists of a carbon atom covalently double bonded to two oxygen atoms. It occurs naturally in Earth's atmosphere as a trace gas. The current concentration is about 0.04% (410 ppm) by volume, having risen from pre-industrial levels of 280 ppm. Natural sources include volcanoes, hot springs and geysers, and it is freed from carbonate rocks by dissolution in water and acids. Because carbon dioxide is soluble in water, it occurs naturally in groundwater, rivers and lakes, ice caps, glaciers and seawater. It is present in deposits of petroleum and natural gas. Carbon dioxide is odorless at normally encountered concentrations. However, at high concentrations, it has a sharp and acidic odor.


With the media module, you can manage files and folder right in the baseweb admin. It's a convenient way to add or remove files that your website can link to or show as images.
In the view to the left you see your current folders and files of the configured root folder for media. The root must reside in your web folder and must be read and writable by the server.
You can browse the folders and create new ones, or if there are empty folder, remove them.
Selecting a folder allows you to upload images or other files into it. You can also remove any uploaded file by selecting it and deleting it.


Before Change
// can be computed exactly and efficiently.
// Explicitly make a column vector so that this works when A is a
// numpy matrix (as opposed to ndarray or sparse matrix).
v = np.ones((A.shape[0], 1), dtype=float)
M = abs(A).T
for i in range(p):
v = M.dot(v)
A_abs_one_norm = max(v)
// Treat zero norm as a special case.
if not A_abs_one_norm:
return 0
After Change
A value related to a bound.
if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
raise ValueError("expected A to be like a square matrix")
p = 2*m + 1


info
About Me
build
Skills
language
Languages
code
Frameworks
assignment
Tasks
business
Favorite Cities
more_vert
business
publish
replay


Hey there! My name is Alex, and I'm a student in Code Fellows' Code 201 course. A born-and-raised Washingtonian, I've long been interested in learning to code thanks to the thriving technology industry in my beautiful hometown of Seattle. Pacific Northwest is best, as they say.
I attended my hometown University of Washington for both my undergraduate and graduate degrees:
Several years of my time at the university were spent living abroad in the Netherlands, Serbia, and the Republic of Georgia. However, Seattle was always home through it all.
After several years in the travel industry, where I indulged in my deep passion for exploring the world by developing and leading programs in the former Soviet Union, and had the pleasure of experiencing lesser-visited locations from Iran to Turkmenistan, I’ve finally found the opportunity to dedicate myself to web development as a career. This re-orientation is a huge change for me, and I’m ready to embrace it with open arms.
As someone fascinated by linguistics and languages, especially their acquisition and development, writing code is a perfect analogy for learning a new language. There are countless similarities between human and coding languages, and that’s a huge part of what makes the field so absorbing - coding languages are ultimately a human construct, which means that everyone has the power to use them to create.
My personal pursuits including gaming (I’m a dedicated fan of Nintendo products), captaining my beloved Underdog flag football team (four-time league champs!), and taking in the natural beauty of every continent on Earth (currently on a quest to visit as many U.S. National Parks as possible).


class: center, middle # Homework ## Heap implementation #### Yueh-Hua Tu --- ## Requirements Implement a heap in Julia. * Implement a data structure of `Heap` based on array in Julia. * Get a index of a root node of a heap. * `root(h::Heap)` * Get a index of a left child of a node in a heap. * `leftchild(h::Heap, i::Int)` * Get a index of a right child of a node in a heap. * `rightchild(h::Heap, i::Int)` * Get a index of a parent of a node in a heap. * `parent(h::Heap, i::Int)` --- ## Requirements * Get a height of a node in a heap. * `height(h::Heap, i::Int)` * Get a height of a heap. * `height(h::Heap)` * Able to push an element to the end of a heap. * `push!(h::Heap, x)` * Able to pop an element from the end of a heap. * `pop!(h::Heap)` * Swap two elements in a heap given two indecies. * `swap(h::Heap, i::Int, j::Int)` --- ## Requirements * Use parametric type to allow heap supporting different primitive types. * Optional: Able to print a heap in a tree structure. (left child is in upper branch) ``` 1 --- 2 --- 4 --- 8 | | └- 9 | └- 5 └- 3 --- 6 └- 7 ``` * Unit test is required and put it in `test/runtests.jl`. * Use Github Action CI for autometic testing.


This package provide bidirectional bridge between Looks and the Nodes API.
As the package only contains one class its usage should be pretty
straighfoerward. The class is a static factory which:
- Allows for creating Nodes for given representing
object and given Look and/or LookSelector. These mathods can
be used for Look based presentation in views working
with nodes.
- Crates instace of Look which when given a Node as represented object
delgates to it. This Look is intended to be used in views
which work with looks when there is not possible or effective
to rewrite existing presentation to Looks.


{% macro wip(issue) %}
This component is work in progress.
View the todo list for this pattern on GitHub (opens in a new window or tab)


What is this game?
Snake.City is an urban game that can be played anywhere and with anybody.
To play to Snake.City, two players need to place their thumbs on each side of a mobile phone, a third person needs do the same, and so on, until they form a human chain making a SNAKE!
Try to create the longest and most enduring snake on Earth.
Make your own game
We have created a handy PDF to allow you to create your own Snake.City GAME.
We've decided to call this a PLAY Blueprint, because it is a blueprint for creating playful experiences.
In this PLAY blueprint we will use different techniques, tools and programming languages.
This includes hosting your own server in Node JS, learning about Websockets and writing code in HTML, CSS and Javascript.
COVID and snakes
We set out to make a fun urban game that involved both social and physical play.
When we started this project, we were living in a world without Covid.It depends where you live and the local rules, but it might not be a good idea to rush out and play closely with strangers in these worrying times.
That said, there are three big reasons you might be interested in Snake.City. First, the three of us wanted to learn new tech that would make multi-player physical games possible. We want to share that tech with you. Secondly, we are worried that we will forget how to play nicely with each other. If you have house mates or friends within your bubble, Snake.City might help you reconnect.
Lastly, we think Snake.City is fun. You might too.
Credit
Giulia Gualtieri, Gavin Wood, Tomo Kihara
This game was developed as part of the Amsterdam branch of the
Trust in Play program.


I am a first year graduate student in the Clinical Neuropsychology Program at the University of Windsor. I am a member of both the Adult Neuropsychology Research Group under the supervision of Dr. Laszlo Erdodi and the Experimental and Clinical Neuropsychology Lab under the supervision of Dr. Christopher Abeare. My current research focuses on psychometric assessment and optimizing clinical tools to better assess neuropsychological functioning specifically in brain injury populations. My other research interests include psychosocial outcomes after brain injury and the use of performance validity instruments in assessment.
Graduated with Great Distinction (Top Honours)
Abeare, C. A., Sabelli, A. G., Taylor, B., Dumitrescu, C., Kirsch, N., & Erdodi, L. A. (2019). The importance of demographically adjusted cutoffs: Age and education bias in raw score cutoffs within the Trail Making Test. Psychological Injury and Law, 12(2), 170-182.
Erdodi, L. A., Taylor, B., Sabelli, A. G., Malleck, M., Kirsch, N. L., & Abeare, C. A. (2019). Demographically adjusted validity cutoffs on the Finger Tapping Test are superior to raw score cutoffs in adults with TBI. Psychological Injury and Law, 12(2), 113-126.
Olla, P., Rykulski, N., Hurtubise, J. L., Bartol, S., Foote., R., Cutler, L., Abeare, K., McVinne, N., Sabelli, A. G., Hastings, M., & Erdodi, L. A. (2019). Short-term effects of can. consumption of cognitive performance in medical can. patients. (Advance Online Publication). Applied Neuropsychology: Adult.
Erdodi, L.A., Sabelli, A.G., An, K., Hastings, M., McCoy, C., & Abeare, C.A.(2019). (Accepted). Introducing a five-variable psychiatric screener based on the Visual Analog Scale (V-5). Psychology & Neuroscience.
Erdodi, L., Shahein, A., Fareez, F., Rykulski, N., Sabelli, A.G, & Roth, R. M. (2019). (Accepted). Increasing the cutoff on the MMSE and DRS-2 improves clinical classification accuracy in highly educated older adults. Psychology & Neuroscience.
Erdodi, L.A., Kirsch, N.L., Sabelli, A.G., & Abeare, C. (2018). The Grooved Pegboard Test as a validity indicator- A study on psychogenic interference as a confound in performance validity research. Psychological Injury and Law, 11, 307-324.
Tyson, B.T., Baker, S., Greenacre, M., Kent, K., Lichtenstein, J.D., Sabelli, A.G, & Erdodi, L.A. (2018). Differentiating epilepsy from psychogenic non-epileptic seizures using neuropsychological test data. Epilepsy & Behaviour, 87, 39-45.
Sabelli, A.G., Sirianni, C.D., Abeare, C.A., & Erdodi, L.A. (2020, Feburary). Performance Validity Cutoffs Developed for the CPT-II Can Be Applied to the CPT-3. Poster accepted for presentation at the International Neuropsychological Society Annual Meeting, Denver, CO.
Sabelli, A.G., Taylor, B., Rykulski, N., Abeare, C., & Erdodi, L.A. (2019, February). Demographically Adjusted Cut-offs Are Necessary to Protect Against False Positive Errors on the Trail Making Test as a Performance Validity Indicator in Adults with Traumatic Brain Injury. Poster presented at the International Neuropsychological Society Annual Meeting, New York, NY
Sabelli, A.G., Charron, C.M., Seke, K.R., & Erdodi, L.A. (2018, June). Demographically Adjusted Cut-offs Protect against Age and Gender Bias in the Finger Tapping Test as an Embedded Validity Indicator. Poster presented at the Annual Meeting of the American Academy of Clinical Neuropsychology, San Diego, CA.
Sabelli, A.G., Charron, C.M., Seke, K.R., & Erdodi, L.A. (2018, March). Demographic Influences in Performance Validity Testing. UWill Discover Undergraduate Research Conference, Windsor, ON. (Oral presentation).
Administering neuropsychological assessments, investigation of the classification accuracy of psychometric assessments.
Researching olfactory epithelial cells through tissue dissection, staining, and imaging.
Transcribed phone interviews regarding fathers’ physical play with their children with autism into coded scripts.
Courses: F19 Abnormal Psychology, W20 Test and Measurements, S20 Intro to Clinical Psychology
Course: Learning and Behaviour. Lecturing class once a week on course material for a 50-minute period, grading course assignments, tests, and administering exams.
Assessment of intellectual, cognitive, academic, and adaptive functioning using the WAIS-IV, WF:AS, WISC-V. Tasks include test administration, scoring, case presentations and report writing.
Applying diagnostic problem solving to clinical cases. Tasks include writing and communicating effective diagnostic assessment reports at an introductory level.
Theoretical course on identification of relevant brain structures and their relationship to specific cognitive functioning.
When I am not researching or reading a textbook about the brain, you can probably find me spending time with my friends, family, and rescue dogs. I am a true lover of animals and foster dogs through an organization called “For the Love of Paws” (if you are in the Windsor-Essex or Ottawa area, check them out!). I also enjoy volunteering with my local Brain Injury Association in my spare time and helping out with their various support groups and events.
.


You should not be seeing a red line in this example, since it should be covered by a green line in the same location.
If the cyan point is located on the green line, this gives you access to conics which touch a given tangent in a given point of contact.
In this configuration, moving the bottommost point will cause the conics to switch roles unless avoided by complex tracing.


Logan Glasse
- 400 Broad St, Seattle, WA 98109
-<PHONE_NUMBER>
-<EMAIL_ADDRESS>Objective
To work as an automotive designer and make efficient yet stylish cars
Summary of Skillsets
- Insane level of design
- Insane level of proficiency in photoshop and illustrator
- Completed my art credits in my first year of high school
Experience
Apple, Cupertino, California
- Private ContractorJanuary 1, 2019 - Present
- Teamed with a lot of cool people that do business
Education
Product Designer Major, 2018
College of Staten Island. Staten Island, New York


¶ fileSearch.jsContains methods for performing a fuzzy string search on file names for easily jumping between files. The ranking algorithm is not based on anything in particular - it's just a hack project that works reasonably well. If anyone has any suggestions on how it can be improved, then let me know. |
|
|
Wrap everything inside a closure so we don't get any collisions in the global scope |
(function(){ |
¶ escapeRegexEscapes special characters in a string to use when creating a new RegExp Params
term
string
String to escape
Returns
string
Regex-compatible escaped string
|
function escapeRegex(term){
return term.replace(/\[\]\{\}\(\)\^\$\.\*\+\|/g, function(a){
return '\\' + a;
});
} |
|
A few heper constants; they don't really do much, but they indicate the corresponding rows and columns in the matrix below. |
var UPPER = 0, LOWER = 1, NUMBER = 2, COMMON_DELIMS = 3, OTHER = 4; |
|
Amount by which one character stands out when compared to another character. Row = character in question, col = character to compare to. E.g. uppercase letter stands out with a factor of 240 compared to lowercase letter. These numbers are pretty much plucked out of thin air. |
var relevanceMatrix = [
[ 0, 240, 120, 240, 220],
[ 20, 0, 20, 120, 120],
[140, 140, 0, 140, 140],
[120, 120, 120, 0, 120],
[120, 120, 120, 160, 0]
]; |
¶ charTypeCategorizes a character as either lowercase, uppercase, digit, strong delimiter, or other. Params
c
string
The character to check
Returns
number
One of the constants defined above
|
function charType(c){
if(/[a-z]/.test(c)) return LOWER;
if(/[A-Z]/.test(c)) return UPPER;
if(/[0-9]/.test(c)) return NUMBER;
if(/[\/\-_\.]/.test(c)) return COMMON_DELIMS;
return OTHER;
} |
¶ compareCharactersCompares a character to the characters before and after it to see how much it stands out. For example The letter B would stand out strongly in aBc Params
theChar
string
The character in question
before
string
The immediately preceding character
after
string
The immediately following character
|
function compareCharacters(theChar, before, after){ |
|
Grab the character types of all three characters |
var theType = charType(theChar),
beforeType = charType(before),
afterType = charType(after); |
|
MAGIC NUMBER ALERT 0.4 is a number that makes it work best in my tests |
return relevanceMatrix[theType][beforeType] +
0.4 * relevanceMatrix[theType][afterType];
} |
¶ bestRankThe real meat of this searching algorithm. Provides a score for a given string against a given search term. The Params
item
string
The string to rank
term
string
The search term against which to rank it
startingFrom
number
Ignore the first n characters
Returns
object
Rank of
item against term with highlights
|
function bestRank(item, term, startingFrom){ |
|
If we've reached the end of our search term, add some extra points for being short |
if(term.length === 0) return startingFrom * 100 / item.length; |
|
If we've reached the end of the item but not the term, then fail. |
if(item.length === 0) return -1; |
|
Quick sanity check to make sure the remaining item has all the characters we need in order |
if(!item.slice(startingFrom).match(
new RegExp( ('^' + escapeRegex(term) + '$').split('').join('.*'), 'i' )
)){
return -1;
} |
|
Grab the first character that we're going to look at |
var firstSearchChar = term.charAt(0); |
|
These variables store our best guess so far, and the character indices to which it applies |
var bestRankSoFar = -1;
var highlights; |
|
Now loop over the item, and test all instances of |
for(var i = startingFrom; i < item.length; i += 1){
if(item.charAt(i).toLowerCase() !== firstSearchChar.toLowerCase()) continue; |
|
Find out what the rest of the string scores against the rest of the term |
var subsequentRank = bestRank(item.substr(i), term.slice(1), 1);
if(subsequentRank == -1) continue; |
|
Inverse linear score for the character. Earlier in string = much better |
var characterScore = 400 / Math.max(1, i); |
|
If, starting at this character, we have the whole of the search term in order, that's really good. And if the term is really long, make it cubically good (quadratic scores added up) |
if(item.substr(i).toLowerCase().indexOf(term.toLowerCase()) === 0) characterScore += 3 * term.length * term.length; |
|
Add on score for how much this character stands out |
characterScore += compareCharacters(
item.charAt(i),
i === 0 ? '/' : item.charAt(i - 1),
i === item.length - 1 ? '/' : item.charAt(i + 1)
); |
|
Add on score from the rest of the string |
characterScore += subsequentRank; |
|
If we've managed to better what we have so far, store it away |
if(characterScore > bestRankSoFar){
bestRankSoFar = characterScore; |
|
Save highlighted characters as well |
highlights = [i];
var subsequentHighlights = subsequentRank.highlights || [];
for(var j = 0; j < subsequentHighlights.length; j += 1){
highlights.push(subsequentHighlights[j] + i);
}
}
} |
|
Return an object with valueOf so it can be directly compared using < and > but also stores the highlight indices |
return {
__score: bestRankSoFar,
valueOf: function(){ return this.__score; },
highlights: highlights
};
} |
¶ fuzzyScoreStrActual function to use when matching an item against a term (bestRank should only be used internally) Params
item
string
Item to search
term
string
Term against which to search
Returns
object
Rank of
item against term with highlights
|
function fuzzyScoreStr(item, term){
return bestRank(item, term, 0);
} |
¶ fuzzyScoreMatches an object against a given term with particular weights being applied to different properties. If the given item is instead a string, just match it directly against the term. The The returned Params
item
object
Item containing multiple properties to search
term
string
Term against which to search
relevances
object
Object congaining key/val pairs as above
Returns
object
Rank of
item against term with highlights.
|
function fuzzyScore(item, term, relevances){ |
|
If we have a string, just match it directly |
if(typeof item == 'string') return fuzzyScoreStr(item, term); |
|
Initialize the return object |
var result = {
__score: 0,
valueOf: function(){ return this.__score; },
highlights: {}
}; |
|
Loop through all the specified properties |
for(var i in relevances){
if(!relevances.hasOwnProperty(i) || !item.hasOwnProperty(i)) continue; |
|
Grab the score for that particular property |
var thatScore = fuzzyScoreStr(item[i], term); |
|
Add the rank on to the return object |
result.__score += relevances[i] * thatScore;
result.highlights[i] = thatScore > 0 ? thatScore.highlights : [];
}
return result;
} |
¶ Right, that's the end of the ranking stuffNow onwards to building it into our page! |
|
|
Loop through the tree and parse it all into a big array |
var fileList = [];
function addDirToList(dir, path){
if(dir.dirs){
for(var i in dir.dirs)
if(dir.dirs.hasOwnProperty(i)) addDirToList(dir.dirs[i], path + i + '/');
}
if(dir.files){
for(var i = 0; i < dir.files.length; i += 1) fileList.push(path + dir.files[i]);
}
}
addDirToList(tree, ''); |
|
Some variables to store the state of the search box |
var searchBoxShown = false;
var searchingTimeout, selectedSearchIndex, selectedItem; |
¶ doSearchActually perform the file search |
function doSearch(){ |
|
Grab the search term from the input |
var term = document.getElementById('searchbox').value;
var items = []; |
|
Loop through all the files and rank them all |
for(var i = 0; i < fileList.length; i += 1){
var f = fileList[i]; |
|
Split up the file name so we can grab the base name |
var parts = f.split('/'); |
|
This is the object that'll get passed to fuzzyScore |
var file = {
fullPath: f,
fileName: parts[parts.length - 1]
}; |
|
Rank the file, primarily against the full path, but if the file base name also matches, give it a boost. 0.6 is a number that produces nice results |
var rank = fuzzyScore(file, term, {
fullPath: 1,
fileName: 0.6
}); |
|
If the file scores positively against the search, add it in |
if(rank > 0){
file.highlight = rank.highlights;
file.score = +rank;
items.push(file);
}
} |
|
Sort the items order of decreasing relevance |
items.sort(function(a, b){
if(a.score > b.score) return -1;
if(a.score < b.score) return 1;
return 0;
}); |
|
And render them all |
renderSearchResults(items);
} |
¶ highlightStringHighlights the characters at given indices in a string Params
str
string
String to highlight
indexes
array
Array of indices to make bold
Returns
string
HTML of string with given characters made bold
|
function highlightString(str, indexes){ |
|
If there's nothing to do, return immediately |
if(!indexes || !indexes.length) return str;
var out = ''; |
|
Loop through string one character at a time, highlighting as necessary |
for(var i = 0; i < str.length; i += 1){
out += indexes.indexOf(i) !== -1 ? str.charAt(i).bold() : str.charAt(i);
}
return out;
} |
¶ renderSearchResultsRenders the processed search items as HTML with highlighting in the results list Params
items
array
Search results to render
|
function renderSearchResults(items){
var html = ''; |
|
Loop through items, building up an HTML string |
for(var i = 0; i < items.length; i += 1){
var f = items[i];
html += [
'',
'', ~~f.score, '',
'', highlightString(f.fileName, f.highlight.fileName), '',
'', highlightString(f.fullPath, f.highlight.fullPath), '',
''
].join('');
} |
|
Dump all the html into the results list |
document.getElementById('searchresults').innerHTML = html; |
|
Select the first item |
selectIndex(0);
} |
¶ selectIndexSelects the search result at the given index in the list, and deselcts any currently-selected item Params
idx
number
Index of the item to select
|
function selectIndex(idx){ |
|
If another item is currently selected, deselect it |
if(selectedItem) selectedItem.className = selectedItem.className.replace(/\s?selected/,''); |
|
Grab the search results straight from the DOM |
var r = document.getElementById('searchresults');
var items = r.childNodes; |
|
If we actually have no items, there's not much we can do |
if(items.length === 0){
selectedSearchIndex = -1;
selectedItem = false;
return;
} |
|
Store the item and its index in helper variables |
selectedSearchIndex = idx;
var s = selectedItem = items[idx]; |
|
Select the item |
s.className += ' selected'; |
|
Figure out whether or not the item is fully visible inside the scrollable view, and if not, then scroll appropriately |
var o = s.offsetTop - r.offsetTop - r.scrollTop;
if(o < 0){
r.scrollTop = s.offsetTop - r.offsetTop;
}else if(o > r.offsetHeight - s.offsetHeight){
r.scrollTop = o + r.scrollTop - r.offsetHeight + s.offsetHeight;
}
} |
¶ selectNextItemSelects the result immediately after the currently selected item, or the first item if the currently selected one is last in the list |
function selectNextItem(){
var items = document.getElementById('searchresults').childNodes;
selectIndex((selectedSearchIndex + 1) % items.length);
} |
¶ selectPreviouisSelects the result immediately preceding the currently selected item, or the last item if the currently selected one is first in the list |
function selectPreviousItem(){
var items = document.getElementById('searchresults').childNodes;
var l = items.length;
selectIndex((selectedSearchIndex + l - 1) % l);
} |
¶ searchFormKeyDownFired whenever a key is pressed on the search form and triggers the necessary events Params
e
KeyDownEvent
The event object
|
function searchFormKeyDown(e){
e = e || window.event; |
|
27 = escape, so hide the form |
if(e.keyCode == 27){
document.body.removeChild(document.getElementById('search'));
searchBoxShown = false; |
|
40 = down arrow, select the next item |
}else if(e.keyCode == 40){
selectNextItem();
e.preventDefault();
e.stopPropagation();
return false; |
|
38 = up arrow, select the previous item |
}else if(e.keyCode == 38){
selectPreviousItem();
e.preventDefault();
e.stopPropagation();
return false; |
|
Most likely a letter typed or deleted in the search box. So queue another search |
}else{
clearTimeout(searchingTimeout);
searchingTimeout = setTimeout(doSearch, 150);
}
} |
¶ addEventHelper function for binding DOM events Params
obj
Element
The DOM element to bind to
evt
string
The name of the event to bind to
func
function
Listener to attach to the event
|
function addEvent(obj, evt, func){
var a; |
|
Sensible browsers use |
if((a = obj.addEventListener)){
a.call(obj, evt, func, false); |
|
IE uses |
}else{
obj.attachEvent('on' + evt, func);
}
} |
¶ searchFormSubmittedCalled when the user hits enter on the search form so find the selected item and jump to that page Params
e
FormSubmitEvent
The submit event
|
function searchFormSubmitted(e){
e = e || window.event;
e.preventDefault(); |
|
If there's no selected item, do nothing |
if(!selectedItem) return false; |
|
Otherwise, jump to the page |
window.location.href = relativeDir + selectedItem.getAttribute('data-value');
return false;
} |
¶ itemClickedCalled when a search result item is clicked. So jump to the relecant page using searchFormSubmitted Params
e
MouseClickEvent
The mouse event
|
function itemClicked(e){ |
|
Maximum number of levels to jump up the DOM tree |
var levels = 5;
var target = (e || window.event).target; |
|
The click event may have propagated from a child node, so loop upwards until we actually find the result item |
while(levels-- && target.tagName !== 'A') target = target.parentNode; |
|
Set the selected item, then fire off the submit event on the form |
selectedItem = target;
searchFormSubmitted(e);
} |
¶ showSearchBoxConstructs and shows the search box, optionally pre-populated with a value for the search field Params
val
string
optional
Pre-populated value for the search field
|
function showSearchBox(val){ |
|
If the box is already visible, do nothing |
if(searchBoxShown) return;
searchBoxShown = true; |
|
Create the containing element |
var f = document.createElement('div');
f.id = "search"; |
|
Construct some basic HTML |
f.innerHTML = [
'

',
'
',
'<form id="searchform">',
'<input id="searchbox" type="text" name="file" placeholder="Go to file..." autocomplete="off" value="', val, '"/>',
'</form>',
'

',
'
'
].join(''); |
|
Add the keydown event |
addEvent(f, 'keydown', searchFormKeyDown); |
|
Add the container straight onto the body |
document.body.appendChild(f); |
|
Focus the search field, and bind the necessary events |
document.getElementById('searchbox').focus();
addEvent(document.getElementById('searchform'), 'submit', searchFormSubmitted);
addEvent(document.getElementById('searchresults'), 'click', itemClicked); |
|
If we have a pre-populated value, also fire off a search immediately |
if(val) doSearch();
} |
¶ fileSearch_kdFired as a global keyDown event on the document. Checks if ctrl/cmd+P has been pressed and shows the search form Params
e
KeyDownEvent
The key event
|
function fileSearch_kd(e){
e = e || window.event; |
|
80 = p, so listen for ctrl/cmd+P |
if(e.keyCode === 80 && (e.ctrlKey || e.metaKey)){
showSearchBox();
e.preventDefault();
return false;
}
} |
¶ fileSearch_kpFired as a global keyPress event. Checks to see if the key pressed was a sensible character, and if so then shows the search box and fires off the first search |
function fileSearch_kp(e){
e = e || window.event; |
|
If there are any modifiers or if we're already entering text into another input field elsewhere, then do nothing |
if(e.ctrlKey || e.altKey || e.metaKey || e.target.tagName === 'INPUT') return true; |
|
Grab the typed character, test it, and show the box if appropriate |
var theChar = String.fromCharCode(e.which);
if(/[a-zA-Z0-9\.\/\_\-]/.test(theChar)) showSearchBox(theChar);
} |
|
Attach the global events to the document |
addEvent(document, 'keydown', fileSearch_kd);
addEvent(document, 'keypress', fileSearch_kp);
})();
|


Self-reporting of Gender Identity
The purpose of the survey, is to collect information on how the participents identify on the gender spectrum in relation to their assigned gender at birth.
The purpose of the survey, is to collect information on how the participents identify on the gender spectrum in relation to their assigned gender at birth.


| Package | org.igniterealtime.xiff.data |
| Class | public dynamic class XMPPStanza |
| Inheritance | XMPPStanza XMLStanza ExtensionContainer |
| Implements | IExtendable, ISerializable |
| Subclasses | IQ, Message, Presence |
See also
| Property | Defined by | ||
|---|---|---|---|
| errorCode : int
The error code, assuming this stanza contains error information.
| XMPPStanza | ||
| errorCondition : String
The error condition, assuming this stanza contains error information.
| XMPPStanza | ||
| errorMessage : String
The error message, assuming this stanza contains error information.
| XMPPStanza | ||
| errorType : String
The error type, assuming this stanza contains error information.
| XMPPStanza | ||
| _exts : Object | ExtensionContainer | ||
| from : EscapedJID
The JID of the sender.
| XMPPStanza | ||
| id : String
The unique identifier of this stanza.
| XMPPStanza | ||
| to : EscapedJID
The JID of the recipient.
| XMPPStanza | ||
| type : String
The stanza type.
| XMPPStanza | ||
| XMLData : XML [static]
| XMLStanza | ||
| XMLFactory : XMLDocument [static]
| XMLStanza |
| Method | Defined by | ||
|---|---|---|---|
|
The following four first attributes are common to message, presence, and IQ stanzas.
| XMPPStanza | ||
| ExtensionContainer | |||
|
addTextNode(parent:XMLNode, elementName:String, value:String):XMLNode
Adds a simple text node to the parent node specified.
| XMLStanza | ||
|
deserialize(xmlNode:XMLNode):Boolean
| XMPPStanza | ||
|
ensureNode(node:XMLNode, elementName:String):XMLNode
Ensures that a node with a specific element name exists in the stanza.
| XMLStanza | ||
|
exists(value:*):Boolean
[static]
A helper method to determine if a value is both not null
and not undefined.
| XMLStanza | ||
|
generateID(prefix:String):String
[static]
(Static method) Generates a unique ID for the stanza.
| XMPPStanza | ||
|
getAllExtensions():Array
| ExtensionContainer | ||
|
getAllExtensionsByNS(ns:String):Array
| ExtensionContainer | ||
|
getExtension(name:String):Extension
| ExtensionContainer | ||
|
getNode():XMLNode
| XMLStanza | ||
|
removeAllExtensions(ns:String):void
| ExtensionContainer | ||
|
removeExtension(ext:IExtension):Boolean
| ExtensionContainer | ||
|
replaceTextNode(parent:XMLNode, original:XMLNode, elementName:String, value:String):XMLNode
Replaces one node in the stanza with another simple text node.
| XMLStanza | ||
|
serialize(parentNode:XMLNode):Boolean
Prepares the XML version of the stanza for transmission to the server.
| XMPPStanza | ||
|
setIDGenerator(generator:IIDGenerator):void
[static]
(Static method) Sets the ID generator for this stanza type.
| XMPPStanza | ||
|
setNode(node:XMLNode):Boolean
Sets the XML node that should be used for this stanza's internal XML representation.
| XMLStanza |
| Constant | Defined by | ||
|---|---|---|---|
| CLIENT_NAMESPACE : String = "jabber:client" [static]
| XMPPStanza | ||
| CLIENT_VERSION : String = "1.0" [static]
The version of XMPP specified in RFC 3920 is "1.0"; in particular, this
encapsulates the stream-related protocols (Use of TLS (Section 5),
Use of SASL (Section 6), and Stream Errors (Section 4.7)), as well as
the semantics of the three defined XML stanza types (
| XMPPStanza | ||
| NAMESPACE_FLASH : String = "http://www.jabber.com/streams/flash" [static]
| XMPPStanza | ||
| NAMESPACE_STREAM : String = "http://etherx.jabber.org/streams" [static]
| XMPPStanza | ||
| XML_LANG : String = "en" [static]
| XMPPStanza |
| errorCode | property |
errorCode:int
[read-write]The error code, assuming this stanza contains error information. Error codes are deprecated in standard XMPP, but they are commonly used by older Jabber servers like Jabberd 1.4. For more information on error codes, and corresponding error conditions, see http://xmpp.org/extensions/xep-0086.html.
Implementation public function get errorCode():int
public function set errorCode(value:int):void
| errorCondition | property |
errorCondition:String
[read-write]The error condition, assuming this stanza contains error information. For more information on error conditions, see http://xmpp.org/extensions/xep-0086.html.
Implementation public function get errorCondition():String
public function set errorCondition(value:String):void
| errorMessage | property |
errorMessage:String
[read-write]The error message, assuming this stanza contains error information.
Implementation public function get errorMessage():String
public function set errorMessage(value:String):void
| errorType | property |
errorType:String
[read-write]The error type, assuming this stanza contains error information. For more information on error types, see http://xmpp.org/extensions/xep-0086.html.
Implementation public function get errorType():String
public function set errorType(value:String):void
| from | property |
from:EscapedJID
[read-write]The JID of the sender. Most, if not all, server implementations follow the specifications that prevent this from being falsified. Thus, under normal circumstances, you don't need to supply this information because the server will fill it in automatically.
Implementation public function get from():EscapedJID
public function set from(value:EscapedJID):void
| id | property |
id:String
[read-write]
The unique identifier of this stanza. ID generation is accomplished using
the static generateID
method.
public function get id():String
public function set id(value:String):void
See also
| to | property |
to:EscapedJID
[read-write]The JID of the recipient.
Implementation public function get to():EscapedJID
public function set to(value:EscapedJID):void
| type | property |
type:String
[read-write]The stanza type. There are MANY types available, depending on what kind of stanza this is. The XIFF Library defines the types for IQ, Presence, and Message in each respective class as static string variables. Below is a listing of each: IQ
public function get type():String
public function set type(value:String):void
| XMPPStanza | () | constructor |
public function XMPPStanza(recipient:EscapedJID, sender:EscapedJID, theType:String, theID:String, nName:String)
The following four first attributes are common to message, presence, and IQ stanzas. The fifth, xml:lang, is not included here.
Parametersrecipient:EscapedJID — to
|
|
sender:EscapedJID — from
|
|
theType:String — type
|
|
theID:String — id
|
|
nName:String |
| deserialize | () | method |
public function deserialize(xmlNode:XMLNode):Boolean
Parameters
xmlNode:XMLNode |
Boolean |
| generateID | () | method |
public static function generateID(prefix:String):String
(Static method) Generates a unique ID for the stanza. ID generation is handled using a variety of mechanisms, but the default for the library uses the IncrementalGenerator.
Parametersprefix:String — The prefix for the ID to be generated
|
String — The generated ID
|
See also
| serialize | () | method |
public function serialize(parentNode:XMLNode):Boolean
Prepares the XML version of the stanza for transmission to the server.
ParametersparentNode:XMLNode — (Optional) The parent node that the stanza should be appended to during serialization
|
Boolean — An indication as to whether serialization was successful
|
| setIDGenerator | () | method |
public static function setIDGenerator(generator:IIDGenerator):void
(Static method) Sets the ID generator for this stanza type. ID generators must implement the IIDGenerator interface. The XIFF library comes with a few default ID generators that have already been implemented (see org.igniterealtime.xiff.data.id.. Setting the ID generator by stanza type is useful if you'd like to use different ID generation schemes for each type. For instance, messages could use the incremental ID generation scheme provided by the IncrementalGenerator class, while IQs could use the shared object ID generation scheme provided by the SharedObjectGenerator class.
Parametersgenerator:IIDGenerator — The ID generator class
|
Message.setIDGenerator( org.igniterealtime.xiff.data.id.IncrementalGenerator );
| CLIENT_NAMESPACE | constant |
public static const CLIENT_NAMESPACE:String = "jabber:client"
| CLIENT_VERSION | constant |
public static const CLIENT_VERSION:String = "1.0"
The version of XMPP specified in RFC 3920 is "1.0"; in particular, this
encapsulates the stream-related protocols (Use of TLS (Section 5),
Use of SASL (Section 6), and Stream Errors (Section 4.7)), as well as
the semantics of the three defined XML stanza types (
| NAMESPACE_FLASH | constant |
public static const NAMESPACE_FLASH:String = "http://www.jabber.com/streams/flash"
| NAMESPACE_STREAM | constant |
public static const NAMESPACE_STREAM:String = "http://etherx.jabber.org/streams"
| XML_LANG | constant |
public static const XML_LANG:String = "en"


Best Restaurants
Search Restaurants
Restaurant List
No Matches
{{item.name}}
Cuisine: {{item.cuisine}}
Price: {{item.price}}
Location: {{item.location}}
Remove
Name:
Cuisine:
Price:
Location:
Save
New Restaurant
Submit


Package com.google.api
Interface ContextRuleOrBuilder
- All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder
,com.google.protobuf.MessageOrBuilder
- All Known Implementing Classes:
ContextRule
,ContextRule.Builder
public interface ContextRuleOrBuilder
extends com.google.protobuf.MessageOrBuilder
-
Method Summary
Modifier and TypeMethodDescriptiongetAllowedRequestExtensions
(int index) A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.com.google.protobuf.ByteString
getAllowedRequestExtensionsBytes
(int index) A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.int
A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.getAllowedResponseExtensions
(int index) A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.com.google.protobuf.ByteString
getAllowedResponseExtensionsBytes
(int index) A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.int
A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.getProvided
(int index) A list of full type names of provided contexts.com.google.protobuf.ByteString
getProvidedBytes
(int index) A list of full type names of provided contexts.int
A list of full type names of provided contexts.A list of full type names of provided contexts.getRequested
(int index) A list of full type names of requested contexts.com.google.protobuf.ByteString
getRequestedBytes
(int index) A list of full type names of requested contexts.int
A list of full type names of requested contexts.A list of full type names of requested contexts.Selects the methods to which this rule applies.com.google.protobuf.ByteString
Selects the methods to which this rule applies.Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder
isInitialized
Methods inherited from interface com.google.protobuf.MessageOrBuilder
findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
-
Method Details
-
getSelector
String getSelector()Selects the methods to which this rule applies. Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
- Returns:
- The selector.
-
getSelectorBytes
com.google.protobuf.ByteString getSelectorBytes()Selects the methods to which this rule applies. Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
string selector = 1;
- Returns:
- The bytes for selector.
-
getRequestedList
A list of full type names of requested contexts.
repeated string requested = 2;
- Returns:
- A list containing the requested.
-
getRequestedCount
int getRequestedCount()A list of full type names of requested contexts.
repeated string requested = 2;
- Returns:
- The count of requested.
-
getRequested
A list of full type names of requested contexts.
repeated string requested = 2;
- Parameters:
index
- The index of the element to return.- Returns:
- The requested at the given index.
-
getRequestedBytes
com.google.protobuf.ByteString getRequestedBytes(int index) A list of full type names of requested contexts.
repeated string requested = 2;
- Parameters:
index
- The index of the value to return.- Returns:
- The bytes of the requested at the given index.
-
getProvidedList
A list of full type names of provided contexts.
repeated string provided = 3;
- Returns:
- A list containing the provided.
-
getProvidedCount
int getProvidedCount()A list of full type names of provided contexts.
repeated string provided = 3;
- Returns:
- The count of provided.
-
getProvided
A list of full type names of provided contexts.
repeated string provided = 3;
- Parameters:
index
- The index of the element to return.- Returns:
- The provided at the given index.
-
getProvidedBytes
com.google.protobuf.ByteString getProvidedBytes(int index) A list of full type names of provided contexts.
repeated string provided = 3;
- Parameters:
index
- The index of the value to return.- Returns:
- The bytes of the provided at the given index.
-
getAllowedRequestExtensionsList
A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.
repeated string allowed_request_extensions = 4;
- Returns:
- A list containing the allowedRequestExtensions.
-
getAllowedRequestExtensionsCount
int getAllowedRequestExtensionsCount()A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.
repeated string allowed_request_extensions = 4;
- Returns:
- The count of allowedRequestExtensions.
-
getAllowedRequestExtensions
A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.
repeated string allowed_request_extensions = 4;
- Parameters:
index
- The index of the element to return.- Returns:
- The allowedRequestExtensions at the given index.
-
getAllowedRequestExtensionsBytes
com.google.protobuf.ByteString getAllowedRequestExtensionsBytes(int index) A list of full type names or extension IDs of extensions allowed in grpc side channel from client to backend.
repeated string allowed_request_extensions = 4;
- Parameters:
index
- The index of the value to return.- Returns:
- The bytes of the allowedRequestExtensions at the given index.
-
getAllowedResponseExtensionsList
A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.
repeated string allowed_response_extensions = 5;
- Returns:
- A list containing the allowedResponseExtensions.
-
getAllowedResponseExtensionsCount
int getAllowedResponseExtensionsCount()A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.
repeated string allowed_response_extensions = 5;
- Returns:
- The count of allowedResponseExtensions.
-
getAllowedResponseExtensions
A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.
repeated string allowed_response_extensions = 5;
- Parameters:
index
- The index of the element to return.- Returns:
- The allowedResponseExtensions at the given index.
-
getAllowedResponseExtensionsBytes
com.google.protobuf.ByteString getAllowedResponseExtensionsBytes(int index) A list of full type names or extension IDs of extensions allowed in grpc side channel from backend to client.
repeated string allowed_response_extensions = 5;
- Parameters:
index
- The index of the value to return.- Returns:
- The bytes of the allowedResponseExtensions at the given index.
-


Contributing to Sous-Chefs
We are glad you want to contribute to a sous-chefs cookbook! The first step is the desire to improve the project.
Quick-contribute
- Create an issue on the github issue tracker (see
issues_url
in the cookbook’smetadata.rb
) - Link to your patch as a rebased git branch or pull request from the ticket
We regularly review contributions and will get back to you if we have any suggestions or concerns.
Branches and Commits
You should submit your patch as a git branch named after the change.
It is a best practice to have your commit message have a summary line, followed by an empty line and then a brief description of the commit. This also helps other contributors understand the purpose of changes to the code.
Remember that not all users use Chef in the same way or on the same operating systems as you, so it is helpful to be clear about your use case and change so they can understand it even when it doesn’t apply to them.
GitHub and Pull Requests
We don’t require you to use GitHub, and we will even take patch diffs attached to tickets on the issue tracker. However GitHub has a lot of convenient features, such as being able to see a diff of changes between a pull request and the main repository quickly without downloading the branch.
Functional and Unit Tests
This cookbook is set up to run tests under Test Kitchen. It uses serverspec to run integration tests after the node has been converged to verify that the state of the node.
Test kitchen should run completely without exception using the default baseboxes provided by Chef. Because Test Kitchen creates VirtualBox machines and runs through every configuration in the .kitchen.yml file, it may take some time for these tests to complete.
If your changes are only for a specific recipe, run only its configuration with Test Kitchen. If you are adding a new recipe, or other functionality such as a LWRP or definition, please add appropriate tests and ensure they run with Test Kitchen.
If any don’t pass, investigate them before submitting your patch.
Any new feature should have unit tests included with the patch with good code coverage to help protect it from future changes. Similarly, patches that fix a bug or regression should have a regression test. Simply put, this is a test that would fail without your patch but passes with it. The goal is to ensure this bug doesn’t regress in the future. Consider a regular expression that doesn’t match a certain pattern that it should, so you provide a patch and a test to ensure that the part of the code that uses this regular expression works as expected. Later another contributor may modify this regular expression in a way that breaks your use cases. The test you wrote will fail, signalling to them to research your ticket and use case and accounting for it.
If you need help writing tests, please ask on the Chef Developer’s mailing list, or https://community-slack.chef.io/
Cookbook Contribution Do’s and Don’t’s
Please do include tests for your contribution. If you need help, ask on the chef-dev mailing list or the https://community-slack.chef.io/
Not all platforms that a cookbook supports may be supported by Test Kitchen. Please provide evidence of testing your contribution if it isn’t trivial so we don’t have to duplicate effort in testing. Chef 10.14+ «doc» formatted output is sufficient.
Please do indicate new platform (families) or platform versions in the commit message, and update the relevant ticket. If a contribution adds new platforms or platform versions, indicate such in the body of the commit message(s).
Please do use foodcritic to lint-check the cookbook. Except FC007, it should pass all correctness rules. FC007 is okay as long as the dependent cookbooks are required for the default behavior of the cookbook, such as to support an uncommon platform, secondary recipe, etc.
Please do ensure that your changes do not break or modify behavior for other platforms supported by the cookbook. For example if your changes are for Debian, make sure that they do not break on CentOS.
Please do not modify the version number in the metadata.rb, the maintainer will select the appropriate version based on the release cycle information above.
Please do not update the CHANGELOG.md for a new version. Not all changes to a cookbook may be merged and released in the same versions. We will update the CHANGELOG.md when releasing a new version of the cookbook.


Classes
The following classes are available globally.
-
A class responsible for the issuing of GET and POST requests to riotgames API endpoints
See moreDeclaration
Swift
open class RiotRequest
-
See moreRegion
class to obtain and construct region URLsDeclaration
Swift
open class Region


Poole
Poole
The Strange Case of Dr. Jekyll and Mr. Hyde tells the story of a lawyer investigating the connection of two persons, Dr. Henry Jekyll and Mr. Edward Hyde. Chief among the novel’s supporting cast is a man by the name of Mr. Poole, Dr. Jekyll’s loyal butler.
Poole is the butler for Jekyll, the static site generator. It’s designed and developed by @mdo to provide a clear and concise foundational setup for any Jekyll site. It does so by furnishing a full vanilla Jekyll install with example templates, pages, posts, and styles.
See Poole in action with the demo site.
There are currently two official themes built on Poole:
Individual theme feedback and bug reports should be submitted to the theme’s individual repository.
Contents
Usage
1. Install dependencies
Poole is built on Jekyll and uses its built-in SCSS compiler to generate our CSS. Before getting started, you’ll need to install the Jekyll gem:
$ gem install jekyll
Windows users: Windows users have a bit more work to do, but luckily @juthilo has your back with his Run Jekyll on Windows guide.
Need syntax highlighting? Poole includes support for Pygments or Rouge, so install your gem of choice to make use of the built-in styling. Read more about this in the Jekyll docs.
2a. Quick start
To help anyone with any level of familiarity with Jekyll quickly get started, Poole includes everything you need for a basic Jekyll site. To that end, just download Poole and start up Jekyll.
2b. Roll your own Jekyll site
Folks wishing to use Jekyll’s templates and styles can do so with a little bit of manual labor. Download Poole and then copy what you need (likely _layouts/
, *.html
files, atom.xml
for RSS, and public/
for CSS, JS, etc.).
3. Running locally
To see your Jekyll site with Poole applied, start a Jekyll server. In Terminal, from /poole
(or whatever your Jekyll site’s root directory is named):
$ jekyll serve
Open http://localhost:4000 in your browser, and voilà.
4. Serving it up
If you host your code on GitHub, you can use GitHub Pages to host your project.
- Fork this repo and switch to the
gh-pages
branch. - If you’re using a custom domain name, modify the
CNAME
file to point to your new domain. - If you’re not using a custom domain name, modify the
baseurl
in_config.yml
to point to your GitHub Pages URL. Example: for a repo atgithub.com/username/poole
, usehttp://username.github.io/poole/
. Be sure to include the trailing slash. - Done! Head to your GitHub Pages URL or custom domain.
No matter your production or hosting setup, be sure to verify the baseurl
option file and CNAME
settings. Not applying this correctly can mean broken styles on your site.
Options
Poole includes some customizable options, typically applied via classes on the <body>
element.
Rems, font-size
, and scaling
Poole is built almost entirely with rem
s (instead of pixels). rem
s are like em
s, but instead of building on the immediate parent’s font-size
, they build on the root element, <html>
.
By default, we use the following:
html {
font-size: 16px;
line-height: 1.5;
}
@media (min-width: 38em) {
html {
font-size: 20px;
}
}
To easily scale your site’s typography and components, simply customize the base font-size
s here.
Development
Poole has two branches, but only one is used for active development.
master
for development. All pull requests should be to submitted againstmaster
.gh-pages
for our hosted site, which includes our analytics tracking code. Please avoid using this branch.
CSS is handled via Jeykll’s built-in Sass compiler. Source Sass files are located in _sass/
, included into styles.scss
, and compile to styles.css
.
Author
Mark Otto
License
Open sourced under the MIT license.
<3


A "
federal producer" is a federally licensed producer of cannabis
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares
Provide the relationship of the family member, the name of the federal producer, the type of shares, percentage of
ownership, and any other details about the holding of voting shares
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares
Provide the name of the federal producer, the type of shares, percentage of ownership, and any other details about
the holding of voting shares


| switch_mod.project.unitcommit.fuel_use | index /Users/siah/src/switch/switch_mod/project/unitcommit/fuel_use.py |
This module describes fuel use with considerations of unit commitment
and incremental heat rates using piecewise linear expressions. If you
want to use this module directly in a list of switch modules (instead of
including the package project.unitcommit), you will also need to include
the module project.unitcommit.commit
If you haven't worked with incremental heat rates before, you may want
to start by reading a background document on incremental heat rates such
as: http://www.energy.ca.gov/papers/98-04-07_HEATRATE.PDF
Incremental heat rates are a way of approximating an "input-output
curve" (heat input vs electricity output) with a series of line
segments. These curves are typically drawn with electricity output on
the x-axis (Power, MW) and fuel use rates on the y-axis (MMBTU/h). These
curves are drawn from the minimum to maximum power output levels for a
given generator, and most generators cannot run at 0 output. The slope
of each line segment is the incremental heat rate at that point in units
of MMBTU/MWh.
Data for incremental heat rates is typically formatted in a heterogenous
manner. The first data point is the first point on the curve - the
minimum loading level (MW) and its corresponding fuel use rate
(MMBTU/h). Subsequent data points provide subseqent loading levels in MW
and slopes, or incremental heat rates in MMBTU/MWh. This format was
designed to make certain economic calculations easy, not to draw input-
output curves, but you can calculate subsequent points on the curve from
this information.
Fuel requirements for most generators can be approximated very well with
simple models of a single line segment, but the gold standard is to use
several line segments that have increasing slopes. In the future, we may
include a simpler model that uses a single line segment, but we are just
implementing the complex piecewise linear form initially to satisfy key
stakeholders.
There are two basic ways to model a piecewise linear relationship like
this in linear programming. The first approach (which we don't use in
this module) is to divide the energy production variable into several
subvariables (one for each line segment), and put an upper bound on each
subvariable so that it can't exceed the width of the segment. The total
energy production is the sum of the sub-variables, and the total fuel
consumption is: Fuel = line0_intercept + E0*incremental_heat_rate0 +
E1*incremental_heat_rate1 + ... As long as each incremental_heat_rate is
larger than the one before it, then the optimization will ensure that E1
remains at 0 until E0 is at its upper limit, which ensures consistent
results. This tiered decision method is used in the fuel_markets module,
but is not used here.
This module uses the second approach which is to make FuelUse into a
decision variable that must be greater than or equal to each of the
lines. As long as fuel has a cost associated with it, a cost minimizing
optimization will push the fuel use down till it touchs a line segments.
This method also requires that incremental heat rates increase with
energy production so that the lines collectively form a convex boundary
for fuel use.
SYNOPSIS
>>> from switch_mod.utilities import define_AbstractModel
>>> model = define_AbstractModel(
... 'timescales', 'financials', 'load_zones', 'fuels', 'gen_tech',
... 'project.build', 'project.dispatch', 'project.unitcommit')
>>> instance = model.load_inputs(inputs_dir='test_dat')
| Modules | ||||||
|
| Functions | ||
|
| Data | ||
| Any = <Plugin _AnySet 'Any'> AnyWithNone = <Plugin _AnySetWithNone 'AnyWithNone'> Binary = <Plugin BooleanSet 'Binary'> Boolean = <Plugin BooleanSet 'Boolean'> DataManagerFactory = <pyutilib.misc.method.new object> Integers = <Plugin IntegerSet 'Integers'> ModelComponentFactory = <pyutilib.component.core.core.PluginFactoryFunctor object> NegativeIntegers = <Plugin IntegerSet 'NegativeIntegers'> NegativeReals = <Plugin RealSet 'NegativeReals'> NonNegativeIntegers = <Plugin IntegerSet 'NonNegativeIntegers'> NonNegativeReals = <Plugin RealSet 'NonNegativeReals'> NonPositiveIntegers = <Plugin IntegerSet 'NonPositiveIntegers'> NonPositiveReals = <Plugin RealSet 'NonPositiveReals'> ParamRepresentationFactory = <pyutilib.component.core.core.PluginFactoryFunctor object> PercentFraction = <Plugin RealSet 'PercentFraction'> PositiveIntegers = <Plugin IntegerSet 'PositiveIntegers'> PositiveReals = <Plugin RealSet 'PositiveReals'> Reals = <Plugin RealSet 'Reals'> SolverFactory = <pyutilib.misc.method.new object> SolverManagerFactory = <pyutilib.component.core.core.PluginFactoryFunctor object> TransformationFactory = <pyutilib.component.core.core.PluginFactoryFunctor object> UnitInterval = <Plugin RealSet 'PercentFraction'> maximize = -1 minimize = 1 |


Awareness Online
2011
Awareness Online is a psychological experiment designed to measure how much a person's mind wanders. In this task, participants are asked to count their breath in groups of nine, pressing one key eight times followed by another on the ninth. An experimenter interface allows adjusting various experiment parameters, including adding an audio track to help participants learn to remain focused.


You should see two messages in the console stating that the original hooks were used.
patching at instance level is not possible by spec
hooks are collected during registration, and are stored in internal slots