{% load staticfiles %} {% load humanize %}
| Job Number: | {{ jobnum }} | ||
|---|---|---|---|
| Company/Contact: | {% if company.Comp %}{{ company.Comp }} {{ company.Contact }} {{company.Add1}} {{company.Add2}} {{company.City}}, {{company.state}} {{company.zip}} {{company.phone}} |
{% elif job.Company %}
{{ job.Company }} / {{ job.Contact }} | {% else %}{% endif %} |
| Description: | {{ job.JobDescp }} | ||
| Special Info.: | {{ job.MeterInst }} | ||
| Salesperson/CSR Ticket Date: | {{ job.Remark }} | ||
| Receiving Dept.: | {{ job.RDept }} | ||
| Starting Drop Date: | {{ job.DropDate }} | ||
| Ending Drop Date: | {{ job.ToDropDate }} | ||
| Permit Number: | {{ job.Permit }} | ||
| Total Pieces: | {{ totjobcount|intcomma }} | ||
| Samples: | {{ job.Sample1 }} | ||
| {{ job.Sample2 }} | |||
| {{ job.Sample3 }} | |||
| {{ job.Sample4 }} | |||
| {{ job.Sample5 }} | |||
| {{ job.Sample6 }} | |||
| {{ job.Sample7 }} | |||
| {{ job.Sample8 }} | |||
| {{ job.Sample9 }} | |||
| {{ job.Sample10 }} | |||
| {{ job.Sample11 }} | |||
| {{ job.Sample12 }} | |||
| {{ job.Sample13 }} | |||
| {{ job.Sample14 }} | |||
| {{ job.Sample15 }} |
click pattern letter to see details
| Pattern | Label | Description | Mail Class / Payment | Quantity |
|---|---|---|---|---|
| {{ pat.jobpat|upper }} | {{ pat.DESCP1 }} | {{ pat.DESCP2 }} | {{ pat.MailClass }} / {{ pat.Payment }} | {{ pat.lngNSAID |intcomma }} |
| Excess Stock: | {{ job.stockInst }} |
| Computer Room: | {{ job.CRInst }} |
| Inkjet Dept: | {{ job.AdDept }} |
| Bindery Dept: | {{ job.BDInst }} |
| Stamp Dept: | {{ job.StampInst }} |
| Inserting Dept: | {{ job.InDInst }} |
| Postage Statements: | {{ job.3602Inst }} |


You have no assets registered on AssetChain. Why not register your first?
{{asset.category}}
{{peg.name}}


| No. | Vehicle Brand Name | Show Models | Edit | Remove |
| No records found | ||||
| {{i + 1}} | {{row.brandname}} |
| No. | Vehicle Model Name | Show Variants | Edit | Remove |
| No records found | ||||
| {{i + 1}} | {{row.modelname}} |
| No. | Vehicle Variant Name | Edit | Remove | |
| No records found | ||||
| {{i + 1}} | {{row.variantname}} |


By utilising and developing emotional intelligence it can encourage stellar work performance, outstanding leadership, and the ability to create the conditions for happiness.
I have studied mindfullness a very small amount, but I liked the linkeage of how mindfullness can be used to bring the mind a strong, stable, and perceptive attention.
It is really profound how just two minutes is enough time to calm the mind and return more focused and centred. This allowed me to continue tasks with less apprehension and more focus. I feel this will be useful throughout the Dev Academy course!


Greta Thunberg sets sail for Spain ahead of climate summit
(Reuters) - Swedish climate activist Greta Thunberg set off for Spain from Virginia aboard a catamaran on Wednesday, after an 11-week tour of North America to demand action on climate change that included an impassioned speech at a summit of the United Nations.
The 16-year-old, who rejects air travel because of the high levels of greenhouse gas emissions involved, hitched a ride aboard the 48-foot vessel belonging to an Australian couple that sailed from the port of Hampton. She hoped to arrive in Madrid in time for the next U.N.-sponsored round of climate talks in December.
“So happy to say I’ll hopefully make it to COP25 in Madrid,” Thunberg said in a post on Twitter on Tuesday, using an acronym for the U.N.’s December conference.
Inspired by Thunberg’s solitary weekly protest outside the Swedish parliament over a year ago, millions of young people around the world have since heeded her call to demand that governments take emergency action to combat global warming.
In late August, Thunberg arrived in New York in a zero-carbon emissions vessel after a 14-day journey from England to deliver a speech at the U.N. climate summit in September.
Since then, she has traveled across North America, with stops in Canada’s Alberta and Iowa in the United States where she joined climate protesters.
On Tuesday, an artist unveiled a mural of Thunberg in San Francisco to remind residents of the dangers posed by climate change.


Schutz is a multi-language editor. As of 2021-02-01, the supported languages are Ldl0, Ldl1, and Modula-3. The first two are for defining languages to Schutz, and will be relevant only if you are doing development work on Schutz itself. Schutz identifies these by file name suffixes of .ldl0 or .ldl1
File name suffixes of *.[im][3g] denote modula-3 as the language. There is currently no mechanism to check or create consistency between the file name and the name or kind of a Modula-3 compilaton unit, so be careful with file names. (This is yet to come.)
The altered-as-suggested code will be syntactically correct. It is what Schutz uses internally for doing layout and any semantic actions. Such actions are performed on the corrected form of code only. Currently, Modula-3 has no semantic actions and Ldl0 and Ldl1 semantic actions are done only by separate executables, in batch mode.
Parsing works on the uncorrected text. It is incremental, only reparsing where edits have changed things and nearby, as necessary.
The syntax repair algorithm, which generates suggested corrections, is quite sophisticated. It can include a number of backtracking actions, looking for a least cost total repair. It still has lots of room for tuning, including better costs. Unfortunately, sophisticated may not necessarily mean effective. You will sometimes be shocked at how far off the suggested repairs appear. But since Schutz is the only tool known to me that visibly displays its syntax repairs, it is probable that you have not had the opportunity to see the changes made by other syntax-repairing parsers. Perhaps they are no better.
You can select text by dragging through with the mouse. Edit->Cut, Edit->Copy, and Edit->Paste work as usual.
Schutz can parse and internally represent a syntactically incomplete program by using certain grammar nonterminals, referred to as placeholders. These are displayed as identifiers enclosed in French quotes. The syntax repair process may insert some of these, or you can type them manually, if you know their names and how to type the French quotes on your keyboard. Unlike other insertions, placeholders will be emitted in an exported text file. They will be recognized by the scanning and parsing done when such a file is later opened.
Schutz uses ISO 8859-1, also known as ISO-Latin-1, as the character set of text files. Opening and closing French quotes have code point values 16_AB and 16_BB in this set.
To see the list of possible placeholders for language < lang>, look in the Schutz distribution at the generated file ./< lang>/derived/< LangTok> .i3. Look under the commented headings (* Abstract Plus Nodes: *), (*Abstract Star Nodes: *), and (* Abstract Fixed Nodes: *) These are the the AST nodes of the language, thus the placeholders, when enclosed in French quotes.
In the view of a compiler, a placeholder would be a syntactic (or, probably, lexical) error. However, in Schutz, it allows for a weak kind of syntactic correctness and thus meaningful internal parsed representation. Its spelling also will, hopefully, be a helpful suggestion as to what it should be replaced by, in order to reach syntactic completeness. Eventually, placeholders will play a more significant role in partial semantic analysis and maybe syntax-directed editing, when these functions are implemented.


Copyright Bruce Wilcox<EMAIL_ADDRESS>www.brilligunderstanding.com
Revision 6/13/2022 cs13.2
In addition to concepts defined in script files, the system automatically defines a bunch of dictionary-based sets as well as dynamically computed concept members.
| set | description |
|---|---|
~web_url |
word is a web url |
~email_url |
word is an email address |
~kindergarten |
word learned early in life |
~grade1_2 |
word learned in these grades |
~grade3_4 |
word learned in these grades |
~grade_5-6 |
word learned in these grades. Unmarked words are learned even later |
~utf8 |
word has nonascii characters |
~daynumber |
word could be a number of a day in a month |
~yearnumber |
word could be the number of a recent year |
~dateinfo |
phrase is month day year of some kind |
~kelvin |
temperature marker |
~celcius |
temperature marker |
~fahrenheit |
temperature marker |
~twitter_name |
twitter user name |
~hashtag_label |
twitter topic reference |
Some words and phrases have interpretations based on whether they are at sentence start or not. E.g., good day, mate and It is a good day are different for good day.
Likewise sure and I am sure are different.
Words that have a different meaning at the start of a sentence are commonly called interjections.
In ChatScript these are defined by the
livedata/interjections.txt
file. In addition, the file
augments this concept with “discourse acts”, phrases that are like an
interjection. All interjections and discourse acts map to concept sets,
which come thru as the user input instead of what they wrote.
For example yes and sure and of course are all treated as meaning the discourse act of agreement in the interjections file. So you don’t see yes, I will go coming out of the engine.
The interjections file will remap that to the sentence
~yes
, breaking off that into its own sentence, followed by
I will go as a new sentence.
These generic interjections (which are open to author control via interjections.txt) are:
| interjection | description |
|---|---|
~yes |
|
~no |
|
~emomaybe |
|
~emohello |
|
~emogoodbye |
|
~emohowzit |
|
~emothanks |
|
~emolaugh |
|
~emohappy |
|
~emosad |
|
~emosurprise |
|
~emomisunderstand |
|
~emoskeptic |
|
~emoignorance |
|
~emobeg |
|
~emobored |
|
~emopain |
|
~emoangry |
|
~emocurse |
|
~emodisgust |
|
~emoprotest |
|
~emoapology |
|
~emomutual |
Because all interjections at the start of a sentence are broken off into their own sentence, this kind of pattern does not work:
u: (~yes _*)
You cannot capture the rest of the sentence here, because it will be part of the next sentence instead. This means interjections act somewhat differently from other concepts.
If you use a word in a pattern which may get remapped on input, the script compiler will issue a warning. Likely you should use the remapped name instead.
The following concepts are triggered by exactly repeating either the chatbot or oneself (to a repeat count of how often repeated). Repeats are within a recency window of about 20 volleys.
| concept | description |
|---|---|
~repeatme |
|
~repeatinput1 |
|
~repeatinput2 |
|
~repeatinput3 |
|
~repeatinput4 |
|
~repeatinput5 |
|
~repeatinput6 |
Words will have pos-tags attached, specififying both generic and
specific tag attributes, eg., ~noun
,
~noun_singular
.
| nouns | description |
|---|---|
~noun |
|
~noun_singular |
|
~noun_plural |
|
~noun_proper_singular |
|
~noun_proper_plural |
|
~noun_gerund |
|
~noun_number |
|
~noun_infinitive |
|
~noun_omitted_adjective |
| verbs | description |
|---|---|
~verb |
|
~verb_present |
|
~verb_present_3ps |
|
~verb_infinitive |
|
~verb_present_participle |
|
~verb_past |
|
~verb_past_participle |
|
~aux_verb |
|
~aux_verb_present |
|
~aux_verb_past |
|
~aux_verb_future |
|
~aux_verb_tenses |
|
~aux_be |
|
~aux_have |
|
~aux_do |
Auxilliary verbs are segmented into normal ones and special ones.
Normal ones give their tense directly. Special ones give their root
word. The tense of the be/have/do verbs can be had via
^properties()
and testing for verb tenses
| adjectives | description |
|---|---|
~adjective |
|
~adjective_normal |
|
~adjective_number |
|
~adjective_noun |
|
~adjective_participle |
| adjectives in comparative form | description |
|---|---|
~more_form ~most_form |
|
~adverb |
|
~adverb_normal |
| adverbs in comparative form | description |
|---|---|
~more_form ~most_form |
|
~pronoun ~pronoun_subject ~pronoun_object |
|
~conjunction_bits ~conjunction_coordinate ~conjunction_subordinate |
|
~determiner_bits ~determiner ~pronoun_possessive ~predeterminer |
|
~possessive |
covers ’ and ’s at end of word |
~to_infinitive |
“to” when used before a noun infinitive |
~preposition ~particle |
free-floating preposition tied to idiomatic verb |
~comma |
|
~quote |
covers ’ and “ when not embedded in a word |
~paren |
covers opening and closing parens |
~foreign_word |
some unknown word |
~there_existential |
the word there used existentially |
In addition to normal generic kinds of pos tags, words which are serving a pos-tag role different from their putative word type are marked as members of the major tag they act as part of. E.g,
| description | |
|---|---|
~noun_gerund |
verb used as a ~noun |
~noun_infinitive |
verb used as a ~noun |
~noun_omitted_adjective |
an adjective used as a collective noun (eg the beautiful are kind) |
~adjectival_noun |
noun used as adjective like bank “bank teller” |
~adjective_participle |
verb participle used as an adjective |
For ~noun_gerund
in I like swimming the verb
gerund swimming is treated as a noun (hence called noun-gerund)
but retains verb sense when matching keywords tagged with part-of-speech
(i.e., it would match swim~v
as well as
swim~n
).
Additionally, there is
| description | |
|---|---|
~number |
is not a part of speech, but is comprise of
~noun_number (a normal number value like 17 or
seventeen) |
~adjective_number |
also a normal numeral value and also ~placenumber ) like
first. |
~integer |
|
~float |
|
~positiveinteger |
|
~negativeinteger |
|
~modelnumber |
not a true number, but a word with both alpha and numeric |
~filename |
looks like a filename with extension |
~modelnumber |
not a true number, but a word with both alpha and numeric |
~prep_phrase |
chunk of text forming a prepositional phrase |
~verb_phrase |
chunk of text forming a verb phrase |
~noun_phrase |
chunk of text forming a noun phrase |
“To” can be a preposition or it can be special. When used in the
infinitive phrase To go, it is marked ~to_infinitive
and is
followed by ~noun_infinitive
.
| description | |
|---|---|
~verb_infinitive |
refers to a match on the infinitive form of the verb (I hear John sing or I will sing). |
~There_existential |
refers to the use of where not involving location, meaning the existence of, as in There is no future. |
~Particle |
refers to a preposition piece of a compound verb idiom which allows
being separated from the verb. If you say I will call off the
meeting, call_off is the composite verb and is a single token. But
if you split it as in I will call the meeting off, then there
are two tokens. The original form of the verb will be call and the
canonical form of the verb will be call_off, while the free-standing off
will be labeled ~particle . |
~verb_present |
will be used for normal present verbs not in third person singular like I walk and |
~verb_present_3ps |
will be used for things like he walks |
~possesive |
refers to ’s and ’ that indicate possession, while
possessive pronouns get their own labeling
~pronoun_possessive . |
~pronoun_subject |
is a pronoun used as a subject (like he) |
~pronoun_object |
refers to objective form like him |
Individual words serve roles in the parse of a sentence, which are retrievable. These include:
| description | |
|---|---|
~mainsubject |
|
~mainverb |
|
~mainindirect |
|
~maindirect |
|
~subject2 |
|
~verb2 |
|
~indirectobject2 |
|
~object2 |
|
~subject_complement |
adjective object of sentence involving linking verb |
~object_complement |
2ndary noun or infinitive verb filling modifying mainobject or object2 |
~conjunct_noun ~conjunct_verb ~conjunct_adjective ~conjunct_adverb ~conjunct_phrase ~conjunct_clause ~conjunct_sentence |
|
~postnominalAdjective |
adjective occuring AFTER the noun it modified |
~reflexive |
reflexive pronouns |
~not |
|
~address |
noun used as addressee of sentence |
~appositive |
noun restating and modifying prior noun |
~absolutephrase |
special phrase describing whole sentence |
~omittedtimeprep |
modified time word used as phrase but lacking preposition (Next tuesday I will go) |
~phrase |
a prepositional phrase start (except |
~clause |
a subordinate clause start |
~verbal |
a verb phrase |
and special concepts: | ~capacronym
| word is in all
caps (and &) and is likely an acronym | ~emoji
| word
starts and end with : and represents an emoji
For Spanish (if you are in spanish language mode) there is ~spanish_he, ~spanish_she, ~spanish_singular, ~spanish_plural for nouns and adjectives and determiner ‘the’. Pronouns will be marked with ~pronoun_object_singular or ~pronoun_object_plural or ~pronoun_object_you. Also ~pronoun_indirectobject_singular and ~pronoun_indirectobject_plural and ~pronoun_indirectobject_you. Also ~pronoun_I and ~pronoun_you. And simple future tense verbs will be marked ~spanish_future.
The system has some predefined variables which you can generally test
and use but not normally assign to. These all begin with %
. Ones that are reasonable to set are written in bold underline. Boolean
values are always 1
or null
on returns.
1
or 0
if you are setting them.
| variable | description |
|---|---|
%date |
one or two digit day of the month |
%day |
Sunday, etc |
%daynumber |
1-7 where 1 = Sunday |
%fulltime |
seconds representing the current time and date (Unix epoch time) |
%fullmstime |
Numeric full time/date in milliseconds (Unix epoch time) |
%hour |
0-23 |
%timenumbers |
completely consistent full time info in numbers that you can do
_0 = ^burst(%timenumbers) to get _0
=seconds (2digit) _1 =minutes (2digit)
_2 =hours (2digit) _3 =dayinweek(0-6
Sunday=0) _4 =dateinmonth (1-31)
_5 =month(0-11 January=0)
_6 =year.You need to get it simultaneously if you want to do accurate things with current time, since retrieving %hour %minute separately allows time to change between calls |
%leapyear |
boolean if current year is a leap year |
%daylightsavings |
boolean if current within daylight savings |
%minute |
0-59 |
%month |
1-12 (January = 1) |
%monthname |
January, etc |
%second |
0-59 |
%volleytime |
number of seconds of computation since volley input started |
%time |
hh:mm in military 24-hour time |
%zulutime |
2016-07-27T11:38:35.253Z |
%week |
1-5 (week of the month) |
%year |
e.g., 2011 |
%rand |
get a random number from 1 to 100 inclusive |
Time and date information are normally local, relative to the system clock of the machine CS is running on. See $cs_utcoffset for adjusting time based on relationship to utc (e.g your server is in Virginia and you are in Colorado).
%rand is only pseudo-random. A specific username is assigned a seed based on their name. Thereafter the seed evolves by the dialog but it is repeatable when the same user starts over again. If you want truly random, use %fullmstime % $howmany to get range 0 .. $howmany-1
| variable | description |
|---|---|
%bot |
current bot responding |
%revisedinput |
Boolean is current input from ^input not direct from
user |
%command |
Boolean was the user input a command |
%foreign |
Boolean is bulk of the sentence composed of foreign words |
%impliedyou |
Boolean was the user input having you as implied subject |
%impliedsubject |
Boolean was the user input having an implied subject (not you, usually I) |
%input |
the count of the number of volleys this user has made ever |
%volley |
sae as %input, the count of the number of volleys this user has made ever |
%ip |
ip address supplied |
%myip |
ip address of cs server responding |
%language |
current dictionary language |
%length |
the length in tokens of the current sentence |
%more |
Boolean is there another sentence after this |
%morequestion |
Boolean is there a ? or question word in the pending
sentences |
%originalinput |
all sentences user passed into volley, before adjusted in any way except OOB data is stripped off |
%originalsentence |
the current sentence after tokenization but before any adjustments |
%parsed |
Boolean was current input parsed successfully |
%question |
Boolean was the user input a question - same as ? in a
pattern |
%quotation |
Boolean is current input a quotation |
%sentence |
Boolean does it seem like a sentence (subject/verb or command) |
%tableinput |
current line being executed in a table expansion during script compilation |
%tense |
past , present, or future simple tense (present perfect is a past tense) |
%user |
user login name supplied |
%userfirstline |
value of %input that is at the start of this
conversation start |
%speaker |
value of speaker from a conversation involving
:tsvsource |
%userinput |
Boolean is the current input from the user (vs the chatbot) |
%voice |
active or passive on current input |
%trace_on |
Fake empty variable used to turn on tracing (see Debugging commands) |
%trace_off |
Fake empty variable used to turn off tracing (see Debugging commands) |
%starttimems |
Start of user request time/date in milliseconds |
%inputsize |
gives how many characters were passed in input |
%inputlimited |
1 if too many characters were given (relative to fullinputlimit) |
%tsvsource |
1 if in progress Null otherwise |
%heapsize |
how many bytes of heap are left |
| variable | description |
|---|---|
%inputrejoinder |
rule tag of any pending rejoinder for input or null if none pending |
%lastoutput |
the text of the last generated response for the current volley - always null across volleys |
%lastquestion |
Boolean did last output end in a ? |
%outputrejoinder |
rule tag if system set a rejoinder for its current output or 0 |
%response |
number of committed responses that have been generated for this sentence (see Advanced User- Advanced Output: Committed Responses |
Note for all time variables, they normally use local machine time. If you have a $cs_utcoffset variable with a value, then all time will be relative to GMT/UTC/Zulu (which means it doesn’t pay attention to daylight savings and you have to do that yourself with the answer).
| variable | description |
|---|---|
%all |
Boolean is the :all flag on? (:all to set) |
%document |
Boolean is :document running |
%fact |
Numeric value most recent fact id |
%freetext |
kb of available text space |
%freedict |
number of unused dictionary words |
%freefact |
number of unused facts |
%maxmatchvariables |
highest number of match variables, currently 20 |
%maxfactsets |
highest number of @factsets, currently 20 |
%host |
name of the current host machine or “local” |
%regression |
Boolean is the regression flag on |
%server |
Boolean is the system running in server mode |
%rule |
get a tag to the current executing rule. Can be used in place of a label |
%topic |
name of the current “real” topic . if control is currently in a topic or called from a topic which is not system or nostay, then that is the topic. Otherwise the most recent pending topic is found |
%actualtopic |
literally the current topic being processed (system or not) |
%trace |
Numeric value of the trace flag (:trace to set) |
%httpresponse |
return code of most recent ^jsonopen call (see below) |
%pid |
Linux process id or 0 for other systems |
%restart |
You can set and retrieve a value here across a system restart. |
%timeout |
Boolean tells if a timeout has happened, based on the timelimit command line parameter |
%lastcurltime |
Time Analysis: Name Look up: Host/proxy connect: App(SSL) connect: Pretransfer: Total Transfer: |
%crosstalk |
4k buffer in server visible between users to pass data back and forth |
%crosstalk1 |
4k buffer in server visible between users to pass data back and forth |
%crosstalk2 |
4k buffer in server visible between users to pass data back and forth |
%crosstalk3 |
4k buffer in server visible between users to pass data back and forth |
%logging |
bit status of serverLog, userLog, and host name - 0=off 1=file 2= stdout 4=stderr 8=prelog) |
%forkcount |
number of forks requested in linux evserver environment |
%dbparams |
copy of the server params given to db used as fileserver (pg or mysql or mssql or mongo) |
%botid |
bot id number in use |
%curlversion |
curl version information |
%dbversion |
db version information |
%testpattern |
The index number in the array of patterns of current pattern being matched in ^testpattern |
%httpresponse returns the official http response codes when it succeeds in connecting to a server. When it fails, it returns various negative codes that are specific to curl.
-1 timeout - connection attempt was canceled or no time was allowed (instant fail)
-2 couldn't connect or not resolve host or proxy
-3 unsupported protocol
-4 curl got nothing (typically sent http to https site)
-5 malformed url
-6 other
-7 curl operation timeout
%testpattern-prescan
| execute this
pattern on all sentences before doing other patterns one-by-one%trace_on
| starting here, do :trace pattern in
^testpattern%trace_on all
| starting here, do :trace all in
^testpattern%trace_off
| turn off tracing (also turns off at end of cs
call)| variable | description |
|---|---|
%dict |
date/time the dictionary was built |
%engine |
date/time the engine was compiled |
%os |
os invovled (linux windows mac ios) |
%script |
date/time build1 was compiled |
%version |
engine version number |
You actually can assign to any of them. This will override them and make them return what you tell them to and is a particularly BAD thing to do if this is running on a server since it affects all users (unless you reset the variable at the end of the volley. Assigning a period to a variable resets it).
Typically one does this as a temporary assignment in a
#!
comment line to set up conditions for testing using
:verify
.
Making them return a new value is NOT the same thing as making the engine have a different value. Unless the variable is marked as settable, setting a value affects only the value returned by a future call to the system variable. It does not change engine values the variable is meant to reflect.
The system can do a number of standard processing on user input,
including spell correction, proper-name merging, expanding contractions
etc. This is managed by setting the user variable
$cs_token
.
The default $cs_token that comes with Harry is:
$cs_token = #DO_INTERJECTION_SPLITTING |
#DO_SUBSTITUTE_SYSTEM |
#DO_NUMBER_MERGE |
#DO_PROPERNAME_MERGE |
#DO_SPELLCHECK |
#DO_PARSE
The #
signals a named constant from the
dictionarySystem.h
file. One can set the following:
These enable various LIVEDATA files to perform substitutions on input:
| flag | description |
|---|---|
#DO_ESSENTIALS |
perform LIVEDATA/systemessentials which mostly strips
off trailing punctuation and sets corresponding flags instead |
#DO_SUBSTITUTES |
perform LIVEDATA/substitutes |
#DO_CONTRACTIONS |
perform LIVEDATA/contractions , expanding
contractions |
#DO_INTERJECTIONS |
perform LIVEDATA/interjections , changing phrases to
interjections |
#DO_BRITISH |
perform LIVEDATA/british , respelling brit words to
American |
#DO_SPELLING |
performs the LIVEDATA/spelling file (manual spell
correction) |
#DO_TEXTING |
performs the LIVEDATA/texting file (expand texting
notation) |
#DO_SUBSTITUTE_SYSTEM |
do all LIVEDATA file expansions |
The contents of the files above are pairs of tokens per line. Left is
the word to replace and right is the replacement. When multiple words
are involved, the left side uses underscores to represent this and the
right side uses +
. If the right side is missing, it means
just delete. | #DO_INTERJECTION_SPLITTING
| break off
leading interjections into own sentence | #$DO_NUMBER_MERGE
| merge multiple word numbers into one (four and twenty)
| #$DO_PROPERNAME_MERGE
| merge multiple proper name into
one (George Harrison) | #DO_DATE_MERGE
| merge
month day and/or year sequences (January 2, 1993) |
#JSON_DIRECT_FROM_OOB
| asking the tokenizer to directly
process OOB data. See ^jsonparse
in JSON manual. |
#NO_FIX_UTF
| do not adjust inputs with html or utf8
encodings to simple ascii.
| #TOKENIZE_BY_CHARACTER
| Every non-whitespace character
becomes its own token and canonical form. (good for Japanese)
If any of the above items affect the input (except
TOKENIZE_BY_CHARACTER), they will be echoed as values into
%tokenFlags
so you can detect they happened. The next
changes do not echo into %tokenFlags and relate to grammar of input:
| flag | description |
|---|---|
DO_POSTAG |
allow pos-tagging (labels like ~noun ~verb become marked) |
DO_PARSE |
allow parser (labels for word roles like ~main_subject) |
DO_CONDITIONAL_POSTAG |
perform pos-tagging only if all words are known. Avoids wasting time on foreign sentences in particular |
NO_CONDITIONAL_IDIOM |
will not perform substitutions in the dictionary which are considered conditional idioms |
NO_ERASE |
where a substitution would delete a word entirely as junk, don’t |
DO_SPLIT_UNDERSCORES |
happens after all other input tokenization and adjustments except number merge, and separates words that have been conjoined either because the dictionary has them (credit_card) or because they were merged by proper name merging, or by substitution. The result is only words without underscores (excluding number words like five_thousand_and_four |
MARK_LOWER |
if a word is considered a proper name in CS and is marked as an upper case word, this will force it to perform any markings for its lower case form as well. Sometimes users type stuff in upper case that really should be lower |
Normally the system tries to outguess the user, who cannot be trusted to use correct punctuation or casing or spelling. These block that:
| flag | description |
|---|---|
STRICT_CASING |
except for 1st word of a sentence, assume user uses correct casing on words |
NO_INFER_QUESTION |
the system will not try to set the QUESTIONMARK flag if the user didn’t input a ? and the structure of the input looks like a question |
DO_SPELLCHECK |
perform internal spell checking |
ONLY_LOWERCASE |
force all input (except “I”) to be lower case, refuse to recognize uppercase forms of anything |
NO_IMPERATIVE |
|
NO_WITHIN |
don’t match fragments within a composite word |
NO_SENTENCE_END |
do not break input into sentences |
Normally the tokenizer breaks apart some kinds of sentences into two. These prevent that:
| flag | description |
|---|---|
NO_COLON_END |
don’t break apart a sentence after a colon |
NO_SEMICOLON_END |
don’t break apart a sentence after a semi-colon |
UNTOUCHED_INPUT |
if set to this alone, will tokenize only on spaces, leaving everything but spacing untouched |
LEAVE_QUOTE |
if input is found within ” ” it will become a single token exactly as it is seen. W/o Leave_Quote, it is converted into a word without quotes and using underscores instead of spaces. So “My Fair Lady” becomes My_Fair_Lady, which would match a movie title if you had one, unlike My Fair Lady becoming the resulting token and unrecognized |
SPLIT_QUOTE |
if input is found within ” ” the quotes will be removed. |
Note
you can change $cs_token
on the fly and force input to
be reanalyzed via ^retry(SENTENCE)
. I do this when I detect
the user is trying to give his name, and many foreign names might be
spell-corrected into something wrong and the user is unlikely to
misspell his own name.
Just remember to reset $cs_token
back to normal after
you are done. Here is one such way, assuming $stdtoken
is
set to your normal tokenflags in your bot definition outputmacro:
#! my name is Rogr
s: (name is _*)
if ($cs_token == $stdtoken)
{
$cs_token = #DO_INTERJECTION_SPLITTING |
#DO_SUBSTITUTE_SYSTEM | #DO_NUMBER_MERGE |
#DO_PARSE
retry(SENTENCE)
}
_0 is the name.
$cs_token = $stdtoken
If you type my name is Rogr into a topic with this, the
original input is spell-corrected to my name is Roger, but this
will change the $cs_token
over to one without spell
correction and redo the sentence, which will now come back with my
name is Rogr and be echoed correctly, and
$cs_token reset
.
That’s assuming nothing else would run differently and trap the
response elsewhere. If you were worried about that, it would be possible
for the script to save where it is using ^getrule(tag)
and
modify your control script to return immediate control to here after
input processing if you had changed $cs_token
.
These are the values that %tokenflags may have after analysis of a
sentence… #define PRESENT 0x0000000000002000ULL
#define PAST 0x0000000000004000ULL // basic tense- both present perfect
and past perfect map to it #define FUTURE 0x0000000000008000ULL
#define PRESENT_PERFECT 0x0000000000010000ULL // distinguish PAST
PERFECT from PAST PRESENT_PERFECT #define CONTINUOUS
0x0000000000020000ULL
#define PERFECT 0x0000000000040000ULL
#define PASSIVE 0x0000000000080000ULL
#define IMPLIED_SUBJECT
#define QUESTIONMARK
#define EXCLAMATIONMARK
#define PERIODMARK
#define USERINPUT
#define COMMANDMARK
#define IMPLIED_YOU
#FOREIGN_TOKENS
#FAULTY_PARSE
#QUOTATION
#NOT_SENTENCE
One or more of these will be set if input was changed do to use of these files
#DO_ESSENTIALS
#DO_SUBSTITUTES
#DO_CONTRACTIONS
#DO_INTERJECTIONS
#DO_BRITISH
#DO_SPELLING
#DO_TEXTING
#DO_NOISE
#DO_PRIVATE
#DO_NUMBER_MERGE
#DO_PROPERNAME_MERGE
#DO_SPELLCHECK
#DO_INTERJECTION_SPLITTING
While in general, substitutions are defined in the LIVEDATA folder, you can define private substititions for your specific bot using the scripting language. You can say
replace: xxx yyyyy
which defines a substitution just like a livedata substitution file.
It actually creates a substitution file called private0.txt
or private1.txt
in your TOPIC folder.
Even then, those substitutions will not be enacted unless you
explicitly add to the $cs_token
value
#DO_PRIVATE
, eg
$cs_token = #DO_INTERJECTION_SPLITTING |
#DO_SUBSTITUTE_SYSTEM |
#DO_NUMBER_MERGE |
#DO_PROPERNAME_MERGE |
#DO_SPELLCHECK |
#DO_PARSE |
#DO_PRIVATE
The left side of the substitution pair is case insensitive (matches either case on input) and can be placed in double-quotes (which converts spaces to underscores internally).
The right side of the substitution pair is case sensitive and can be placed in double-quotes (which converts spaces to plus signs internally).
Note: if you privately define a substitution that leads to a known interjection, it will be treated as an interjection, marked as DO_INTERJECTIONS rather than DO_PRIVATE. Interjections do not perform an actual substitution, does not replace the words on the left with the interjection concept name on the right. Instead interjections merely mark the phrase as being a member of that concept, leaving the actual words unchanged.
Similarly while canonical values of words can be defined in
LIVEDATA/SYSTEM/canonical.txt
, you can define private
canonical values for your bots by using the scripting language. You can
say:
canon: oh 0
canon: faster fast
which defines new canonical values for things and creates a file
canon0.txt
or canon1.txt
in your TOPIC
folder.
You can optionally add MORE_FORM or MOST_FORM as a 3rd argument, to set those flags for adjectives and adverbs.
If you want to set a canonical pair from a table during compilation, you can use a function to do the same thing (but only 1 pair at a time).
^canon(word canonicalform)
A special kind of private substitution (equally applicable in regular substitution files) is the numeric substitution.
replace: ?_km kilometers
The ?_ matches a digit number followed immediately by km, like
1.2km
and will separate the number and replace the units
with the given replacement. The input can be singular or have an ‘s’
like 10.5dollars
. And it can be with or without
abbreviation periods, like 10kps
or
10k.p.s
replace: 'xxx yyy
allows you to split during tokenization any word followed by ’xxx into two words, original sans ’xxx and yyy. eg
replace: 've have
gives “companies’ve =>”companies have”.
Normally replace: x y+z
will generate 2 words, y and
z. If you need a plus in your word, you can escape your 2nd word:
replace: "black and decker" \BLACK+DECKER
You can name a pattern (which can extend over multiple lines) that can conditionally change the matched word into any other word or remove it or do nothing. Matching starts with _0 having been assigned to the location of the word/phrase to replace.
replace: bubble_tea ([
(is $$cs_replace:=2)
(has $$cs_replace:=null)
(@_0- *~2 my $$cs_replace:=1)
])
"bubble tea is" -> 2 is
"bubble tea has" -> has
"my green bubble tea loves" -> my green 1 loves
You cannot use concepts in these patterns, nor the canonical forms of words. Your replacement data must be only tokens potentially separated by +, and potentially having _ in them. Do not use double quotes.
The following variables can be defined in a script and the engine will react to their contents.
| interchange variable | description |
|---|---|
$cs_token |
described extensively above |
$cs_response |
controls automatic handling of outputs to user. By default it
consists of
$cs_response = #Response_upperstart | #response_removespacebeforecomma | #response_alterunderscores | #response_removetilde
If you want none of theses, use $cs_response =
0 (all flags turned off). See ^print for explanation of flags.
<br>`#response_noconvertspecial` - leave escaped n r and t alone
in output and ^log, <br>`#response_upperstart` - makes the first
letter of an output sentence capitalized,
<br>`#Response_removespacebeforecomma` - does the obvious,
<br>`#Response_alterunderscores` - converts single underscores to
spaces and double underscores to singles (eg for a web url) | |
`$cs_crashmsg| in server mode, what to say if the server crashes and we return a message to the user. By default the message is _Hey, sorry. I forgot what I was thinking about._ | | $cs_abstract` | used with :abstract | |
`$cs_trace| if this variable is defined, then whenever the user's volley is finished, the value of this variable is set to that of :trace and :trace is cleared to 0, but when the user is read back in, the :trace is set to this value. For a server, this means you can perform tracing on a user w/o making all user transactions dump trace data | | $cs_control_pre` | name of topic (flag it SYSTEM) to
run in gambit mode on pre-pass, set by author. Runs before any sentences
of the input volley are analyzed. Good for setting up initial values | |
`$cs_usermessagelimit| max number of message pairs (user input & bot output) saved in topic file | | $cs_externaltag` | name of a topic to use to replace
existing internal English pos-parser. See bottom of ChatScript PosParser
manual for details | |
`$cs_prepass| name of a topic (mark it SYSTEM) to run in responder mode on main volleys, which runs before $cs_control_main and after all of the above and pos-parsing is done. Used to amend preparation data coming from the engine. You can use it to add your own spin on input processing before going to your main control. I use it to, for example, label commands as questions, standardize sentence construction (like _if you see me what will you think_ to _assume you see me. What will you think?_) | | $cs_control_main` | name of topic (flag it SYSTEM)
to run in responder mode on main volleys, set by author | |
`$cs_control_post| name of topic (flag it SYSTEM) to run in gambit mode on post-pass, set by author| | $botprompt` | message for console window to label
bot output | |
`$userprompt| message for console window to label user input line| | $cs_crashmsg| message to use if a crash occurs. see also $cs_crash| | $cs_crash| topic to execute in gambit mode if a crash occurs. see also $cs_crashmsg| | $cs_language` | if spanish, will adjust spell
checking for spanish colloquial| |
`$cs_token| bits controlling how the tokenizer works. By default when null, you get all bits assumed on. The possible values are in src/dictionarySystem.h (hunt for $token) and you put a # in front of them to generate that named numeric constant | | $cs_abstract` | topic used by :abstract to display
facts if you want them displayed | |
`$cs_prepass| topic used between parsing and running user control script. Useful to supplement parsing, setting the question value, and revising input idioms | | $cs_wildcardseparator` | when a match variable
covers multiple words, what should separate them- by default it's a
space, but underscore is handy too. Initial system character is space,
creating fidelity with what was typed. Useful if _ can be recognized in
input (web addresses). Changing to _ is consistent with multi-word
representation and keyword recognition for concepts. CS automatically
converts _ to space on output, so internal use of _ is normal | |
`$cs_userfactlimit| how many of the most recent permanent facts created by the script in response to user inputs are kept for each user. Std default is 100. * means all. | | $cs_outputchoice` | for regression: forces specific
one of a [] [] output choice block - base 0 | |
`$cs_response| controls some characteristics of how responses are formatted | | $cs_randIndex` | the random seed for this volley | |
`$cs_utcoffset| if defined, then %time returns current utc time + timezone offset. The offset is usually a simple number, meaning hours, and can have + or - in front of it. It can also be a normal time reference like 02:30 which means plus 2 hours and 30 minutes beyond utc, or -01:30:20 which means 1 hour, 30 minutes, and 20 seconds before utc (as if anyone would use that). The following variables are generated by the system on behalf of scripts | | $$db_error` | error message from a
postgres failure $$findtext_start - ^findtext return the end
normally, this is where it puts the start |
$$tcpopen_error |
error message from a tcpopen error |
$$document |
name of the document being read in document mode |
$cs_randindex |
current value of the random generator value |
$cs_bot |
name of the bot currently in use |
$cs_login |
login name of the user |
$$csmatch_start |
start of found words from ^match |
$$csmatch_end |
end of found words from ^match |
$cs_fullfloat |
if defined, causes the system to generate full float 64-bit precision on outputs, otherwise you get 2 digit precision by default |
$cs_botid |
when non-zero creates facts and functions restricted by this bitmask so facts and functions created by other masks cannot be seen. allows you to separate facts and functions per bot in a multi-bot environment. During compilation if this is set by a bot: command, then functions created and facts created by tables will be restricted to that owner. |
$cs_numbers |
if defined, causes the system to output numbers in a different language style: french, indian. All other values are english. |
%trace_on and %trace_off |
Pseudo system variable used by the ^testpattern and ^testoutput call to let code request a trace be returned. |
$cs_indentlevel |
controls indenting when tracing in ^testpattern. 3 is a good number usually |
$indentlevel |
deprecated form of $cs_indentlevel | |
`$cs_tracetestoutput| set to 1 to force tracing in ^testoutput| | $cs_outputlimit` | Generating more output than this
will report a bug into LOGS/bugs.txt | |
`$cs_summary| After volley prints to terminal milliseconds of time used in preparation, rules, postprocessing | | $cs_showtime` | After volley prints to terminal
milliseconds of time used | |
`$cs_new_user| set to 1, treat user as always new (don't try to read topic file) | | $cs_jid` | number to start with when starting
indexing of new json structure ids | | `$cs_directfromoob` |
$cs_beforereset
| if set to a
topic, will be executed before :reset is executed |$cs_addresponse
| provides a function name hook onto the
output q to the user. |$testpatternpretopic
| execute this topic to preprocess
input before matchines |$$cs_testpatterninput
| a copy of user input created by
engine for $testpatternpretopic to change if it wants |$testpattern_posttopic
| can name a topic to be executed
after ^testpattern to alter returned new variables |$cs_topicretrylimit
| if defined
changes how many times you can pass back RETRY_TOPIC before it fails
(current limit is 30) |$$topic_retry_limit_exceeded
| set if topic retry limit is
encountered |$cs_userhistorylimit
| if not null, indicates how many
volleys back are tracked as what was said by both parties |$cs_sentences_limit
| after this many sentences in volley,
cs ignores the rest (default 50) |$cs_inputlimit
| Restrict user input size (excluding oob)
|$cs_looplimit
| loop() defaults to 1000 iterations before
stopping. You can change this default with this |$cs_analyzelimit
| in non-standalone mode, after this
millisecond limit, cs stops NL analysis of more sentences |$cs_analyzelimitlog
| if analyzelimit triggers, report this
fact in bug log |$FakeTimeOffset
| For testing analyzelimit, pretend this
much ms has already lapsed on start |$cs_badspellLimit
| x-y format. After x many spelling
corrections or x/y ratio of badspells to words seen, stop spellchecking
|$cs_sequence
| How many words in sequence to check as a
composite (default: 5) |$cs_jsontimeout
| seconds before
JsonOpen declares a time out failure. If unspecified the default is 300
|$cs_saveusedJson
| if not null, the only JSON facts CS will
write into the user’s topic files that are referred to (directly or
indirectly) from user variables being saved. (see below) |$cs_proxycredentials
| See ^JSONOPEN in JSON manual|$cs_proxyserver
| See ^JSONOPEN in JSON manual|$cs_proxymethod
| See ^JSONOPEN in JSON manual|$correlation_id
| See ^JSONOPEN in JSON manual|$cs_mongoqueryparams
| set as a
json structure of move its fields to a mongo query |$mongo_enable_ssl
| if set to true, will use ssl |$mongosslcafile
| data for ssl |$mongosslpemfile
| data for ssl |$mongosslpempwd
| data for ssl |$mongovalidatessl
| data for ssl |$mongo_timeexcess
| if certain operations exceed this ms,
log entry is created |$$mongo_error
| error message if db not openable |Note for %trace_on and %trace_off - you can use the command line
parameter blockapitrace
to prevent tracing in any code you
accidentally leave in place.
$cs_saveusedJson
exists as a kind of garbage collection.
Nowadays most facts will come from JSON data either from a website or
created in script. But keeping on top of deleting obsolete JSON may be
overlooked. When this variable is non-null, ChatScript will
automatically destroy any JSON fact that cannot trace a JSON fact path
back to some user variable. Variables that have as values the name of a
JSON object or array automatically protect all JSON facts underneath.
JSON references merely within some text string will not protect
anything, nor will references from some other non-JSON fact.
$cs_inputlimit=x:y
for excessively long user input
(excluding oob portion), the input will be truncated by keeping the
first x characters and the last y characters.
$cs_crash
- This topic can generate an appropriate dummy
output and CS completes that volley but does not save an updated user
file. The NEXT volley coming in will force cs to completely reload
itself before processing. Making a dummy output hopefully means the same
fatal input will not be sent back into CS to crash it again (due to
external retry when no answer is received from CS). E.g.,
topic: ~crashtopic system ()
t: Huh?
$cs_addresponse
names a function of 2 arguments that
will be called when CS wants put text into the output queue of the user.
The first argument will be what CS wants to output. The second is the
rule tag that generated this output. If the function returns a failure
code, the message will be aborted and not put into the queue. If the
function returns a text value (not null) then that message will replace
what was intended to go to the user.


- Axe (1080x1350)
- Church (1080x608)
- Food 1 (1080x1350)
- Food 2 (1080x1350)
- Food 3 (1080x810)
- Food 4 (1080x1350)
- Food 5 (1080x1080)
- Food 6 (1080x1350)
- Grass 1 (1080x1350)
- Grass 2 (1080x1350)
- Grass 3 (1080x1350)
- Grass 4 (1080x1080)
- Razer (1080x810)
- River 1 (1080x810)
- River 2 (1080x1350)
- River 3 (1080x608)
- River 4 (1080x1350)
- Snow (1080x1080)
- Woods 1 (1080x1080)
- Woods 2 (1080x608)
- Woods 3 (1080x608)
- Woods 4 (1080x608)
- Woods 5 (1080x608)


How To Watch UFC Fight Night 164: Mauricio ‘Shogun’ Rua Vs. Paul Craig
by Trent ReinsmithThe UFC heads to Brazil for the third and final time in 2019 on Saturday for the ESPN+ streaming UFC Fight Night 164 card. In the main event, Jan Blachowicz welcomes Ronaldo “Jacare” Souza to the light heavyweight division. In the co-main event, former UFC light heavyweight champion Mauricio “Shogun” Rua fights in his home country of Brazil for the first time since he knocked out Gian Villante in the co-main event of UFC Fight Night 106 in March 2017. Rua, who is the No. 14 ranked fighter in the official UFC light heavyweight rankings, faces the unranked Paul Craig in this matchup.
The 37-year-old Rua is on the best run of his UFC career. He is 4-1 in his past five fights and coming off a “Performance of the Night” bonus winning knockout victory over Tyson Pedro in December 2018. His three-fight winning streak, the longest of his UFC career, which began in September 2007, ended in July 2018 with a knockout loss to Anthony Smith. Rua has only gone the distance in seven of his 37 career fights.
Like Rua, Craig is a fighter who either gets the finish or is on the wrong end of a finish. Craig has 16 pro fights to his name. None of those bouts have gone the distance. Only three of Craig’s contests have made it to the third round. That includes Craig’s last-second submission win over Magomed Ankalaev in 2018. Craig is 4-4 in the UFC and coming off a first-round submission win over Vinicius Moreira in September.
HOW TO WATCH OR STREAM UFC FIGHT NIGHT 164
UFC Fight Night 164 takes place at Ginasio do Ibirapuera in Sao Paulo, Brazil. The entire card streams on ESPN+. Prelims begin at 5 p.m. ET, followed by the main card at 8 p.m. ET.
UFC Fight Night 164 Prelim Card (ESPN+ 5 p.m. ET)
Sérgio Moraes vs. James Krause
Ricardo Ramos vs. Luiz Eduardo Garagorri
Francisco Trinaldo vs. Bobby Green
Warlley Alves vs. Randy Brown
Douglas Silva de Andrade vs. Renan Barão
Ariane Lipski vs. Veronica Macedo
Vanessa Melo vs. Tracy Cortez
UFC Fight Night 164 Main Card (ESPN+ 8 p.m. ET)
Jan Błachowicz vs. Ronaldo Souza
Maurício Rua vs. Paul Craig
Charles Oliveira vs. Jared Gordon
Antonio Arroyo vs. Andre Muniz
Markus Perez vs. Wellington Turman


--- layout: post status: publish published: true title: Clemens, ES and JITA author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 295 wordpress_url: http://winterdom.com/2005/12/clemensesandjita date: '2005-12-28 05:25:05 +0000' date_gmt: '2005-12-28 05:25:05 +0000' categories: - Enterprise Services tags: [] comments: [] ---
Clemens has posted a new article on Enterprise Services (COM+) and the power of JIT-Activation and pooling proxy instances to ServicedComponent objects. As usual, Clemens shines in explaining the way COM+ and Enterprise Services works and provides a very clear overview and explanation of the techniques he shows. Excellent stuff; I'm definitely keeping it around here to take advantage of later on.


EFA enquiries
Contact form https://form.education...
For all enquiries for the Education Funding Agency
Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
Guidance for all institutions with Residential Support Scheme funding allocations in the 2016 to 2017 academic year.
Institutions must ensure Residential Support Scheme ( RSS ) expenditure is appropriate and in line with the scheme rules set out in this guide. RSS may only be used to support accommodation costs for residential students who cannot gain their substantial qualification within daily travelling distance of their home address.
In the 2015 to 2016 academic year, the RSS delivery model changed from a nationally managed applications model to an allocation based model. Previously, the nationally administered model required institutions to verify local availability of the substantial qualification with each student’s home local authority. This process was cumbersome and resulted in inconsistent decisions being taken about which students were and were not eligible for RSS . In the 2015 to 2016 academic year, the process was changed so verification was undertaken directly by Education Funding Agency (EFA). This has made the process simpler for institutions and eligibility decisions more consistent.
This delivery model will remain in place for the 2016 to 2017 academic year.
There is no change to RSS policy in the 2016 to 2017 academic year. The scheme will continue to provide financial help with residential costs for eligible students living away from home because the substantial Level 2 or Level 3 qualification that is part of their study programme is not available locally.
Institutions may use up to 5% of their RSS allocation to cover scheme administrative costs.
RSS is to help support students aged 16 to 18 with the costs of living away from home to participate in a study programme where the substantial Level 2 or Level 3 qualification that is part of the programme is not available locally to their home address.
RSS is available to students who intend to follow a full-time study programme including either a first full Level 2 or first full Level 3 substantial qualification/s. The programme must be directly 16 to 19 funded by EFA. Provision delivered by institutions which have a sub-contracting relationship with an EFA funded institution is not eligible.
In order to receive RSS support students must meet all the eligibility criteria set out in this guide.
RSS can provide annual support of up to £3,458 (up to £4,079 in the London area) towards accommodation costs. If the student is assessed as eligible, the amount of award they receive is based on their actual accommodation costs up to the maximum award thresholds.
Young people on waged apprenticeship programmes, or any education or training where a wage is being drawn, are not eligible to apply for support.
To be eligible for RSS support in the 2016 to 2017 academic year, a student must meet the following criteria:
The student must be aged at least 16 and under 19 on 31 August 2016. Where a student turns 19 during the academic year, they can continue to be supported to the end of the academic year.
The student must satisfy the residency criteria set out in the 2016 to 2017 academic year EFA Funding Regulations .
Students must have a household income of £30,993 or less in the previous tax year. For the 2016 to 2017 academic year this is the 2015 to 2016 tax year. The household is defined as the student and the adults they live with who are mainly responsible for them.
The amount of RSS awarded to an individual must be based on an income-assessment which uses the following thresholds:
| Gross income level | Up to £21, 000 | £21,001 - £25,704 | £25,705 - £30,993 | £30,994 and over |
|---|---|---|---|---|
| Maximum RSS award - outside London | £3,458 | £2,305 | £1,152 | nil |
| Maximum RSS award - inside London * | £4,079 | £2,685 | £1,355 | nil |
These amounts are the maximum available for each income bracket and students should not receive the maximum if the actual cost of their accommodation is less than the figures shown. If the study programme lasts for less than one year then the amount of support should be awarded on a proportional basis.
Students cannot receive RSS if they are in receipt of housing benefit.
*The following London Boroughs are eligible for the London weighting: Barking & Dagenham, Barnet, Bexley, Brent, Bromley, Camden, Croydon, Ealing, Enfield, Greenwich, Hackney & City of London, Hammersmith & Fulham, Haringey, Harrow, Havering, Hillingdon, Hounslow, Islington, Kensington & Chelsea, Kingston-upon-Thames, Lambeth, Lewisham, Merton, Newham, Redbridge, Richmond-upon-Thames, Southwark, Sutton, Tower Hamlets, Waltham Forest, Wandsworth and Westminster.
 The programme must be directly 16 to 19 funded by EFA. The local availability of the substantial qualification for each student must be verified with EFA before eligibility for RSS is confirmed. Study programmes delivered by institutions that have a sub-contracting relationship with an EFA funded institution are not eligible for RSS funding.
Institutions should refer to EFA Funding Regulations for the 2016 to 2017 academic year for further information.
The full Level 2 or full Level 3 substantial qualification should normally be the student’s first qualification at those levels. However, support for repeat qualifications may be offered in exceptional circumstances, for example, if a student:
It is the responsibility of institutions to assess where exceptions to the first full Level 2 or first full Level 3 substantial qualification criteria are appropriate. Any such support must be a genuine exception; EFA does not expect such support to be given from RSS funding on a routine basis. Institutions should refer to EFA if they have any doubts about particular cases.
The substantial Level 2 or Level 3 qualification that is part of the student’s study programme must not be available within reasonable daily travelling distance of the student’s home address. For the purposes of RSS eligibility, the key element of the study programme is the substantial qualification that is being funded by EFA, not the study programme as a whole/the combination of different modules within it. If the substantial qualification is available within daily travelling distance the student is not eligible for RSS funding.
Reasonable daily travelling distance is defined as a daily return journey that takes 2 hours or less on public transport; or a distance of under 15 miles from the student’s home or term-time lodgings to the institution.
Students must apply for RSS in each academic year they require support from the scheme. This is to enable the institution to re-confirm that the student still meets the household income criterion.
Where a student has changed from their original study programme, ie from the substantial qualification the institution verified with EFA, the institution will need to ask EFA to verify whether the student remains eligible for RSS for the new substantial qualification. For students who are continuing on a substantial qualification already verified with EFA (returning for their second or subsequent year), no further verification of the qualification is needed.
Students must have an unconditional offer of a place before they submit an application to the institution for RSS support. Applications may be made after the student has started their study programme but awards may only be backdated to the beginning of the term in which they made the application.
Students should apply for RSS directly from the institution. Institutions should develop an application form which students can complete to seek RSS funding. They may wish to continue to use the example application form provided by EFA in the 2015 to 2016 academic year (updated for the new academic year as appropriate) or use/develop an alternative application form. All application forms used for RSS must capture all the information required to assess the student against the eligibility requirements set out in this guide.
It is important for audit purposes that the student and responsible adult(s) sign and date the RSS application form.
Institutions should ensure that a copy of the student’s tenancy agreement has been included with the application form. This must have been agreed and signed and include the following information:
The student’s term time lodgings must be no further than 15 miles from campus.
No RSS payments should be released until all of the required information/evidence has been supplied and the application has been fully assessed, including confirmation from EFA that the student meets the criterion for the substantial qualification.
Institutions must ensure that payments are made directly to eligible students’ landlords for their rental costs. Proof of payment should be retained for audit purposes. Payments must not be made to students.
As an exception, in a scenario where a student has already paid some of their rent, prior to their RSS application being approved, institutions may refund their costs, as long as the rental period they have paid for is within the agreed period of the RSS award. Proof of payment must be retained.
Institutions may choose to verify eligibility of a new student’s substantial qualification with EFA before they have assessed the student against the other eligibility criteria or afterwards. Institutions may prefer to send one list of all new students seeking RSS funding for verification but requests to verify one individual may also be sent. It is helpful for institutions to submit the course verification form as soon as possible in the academic year to ensure students do not make financial commitments in the expectation of RSS funding.
All institutions with an RSS allocation for the 2016 to 2017 academic year will be sent a new student course verification form prior to the start of the academic year.
Institutions must complete and return the form provided by EFA to seek verification of substantial qualifications for all new students. The form requires institutions to provide:
The verification form confirms the email address to which it should be sent -<EMAIL_ADDRESS>.
On receipt of the verification form, EFA will assess whether the substantial Level 2 or 3 qualifications each student is enrolled on is available within daily travelling distance of their home address. It is the availability of the substantial EFA funded qualification - not the study programme as a whole - that will determine whether the student meets the criterion.
Confirmation of eligibility or a rejection letter will be sent to the institution within 7 working days. Institutions must retain a copy of EFA’s response as part of their auditable records.
The local availability of the substantial qualification for each student must be verified with EFA before eligibility for RSS is confirmed. Institutions must not make any payments before eligibility has been confirmed by EFA.
RSS funding for a student’s accommodation costs may only be released by institutions when EFA has verified that the substantial qualification is not available locally. If the student transfers or fails to attend the agreed provision RSS funding should be withdrawn immediately. This action should be documented and included in the October MI return.
Where EFA rejects an application because the substantial qualification is available within daily travelling distance, the institution must reject the student’s application. No RSS payments can be made to any students who have not been confirmed as eligible by EFA.
If a student is returning to the second or subsequent year of their study programme and is continuing on the same qualification into their second year, the institution does not need to seek EFA verification again. Continuing student will still need to meet the household income criterion.
The course verification form for the 2016 to 2017 academic year includes a second pre-populated sheet which institutions must use to notify EFA that students have returned as planned.
RSS will be paid to institutions in 3 instalments: 50% in August 2016, 25% in December 2016 and 25% in March 2017.
Allocations have been generated by using the information submitted by institutions on the 2015 to 2016 academic year course verification proforma. The methodology takes account of the number of eligible students who received RSS support and who will be returning in the 2016 to 2017 academic year multiplied by the maximum permitted funding amount per student (as set out in the Household Income section of this guide). An amount of funding has then been added to this total to make funds available for any eligible new students in the 2016 to 2017 academic year.
Only institutions with new RSS supported students in the 2015 to 2016 academic year have been given a funding allocation.
Institutions without an RSS allocation in the 2016 to 2017 academic year that are approached by a student for help with residential costs should follow the normal EFA business case process to request an allocation. The business case should provide the student(s) home postcode and details of their substantial Level 2 or 3 qualifications (including qualification reference number) to enable EFA to check if the student is eligible (subject to the institution’s assessment of their household income etc).
Institutions should use the funding allocated to them for RSS solely to support eligible students with residential costs in line with the RSS scheme rules. The funding cannot be used for any other purpose.
EFA will ask institutions to complete a short management information return in October to report the number of new and returning students who received RSS and the amount of funding spent. As is the case with the residential bursary fund, any unspent funds will be recovered. Data supplied in this return will be crucial to the generation of future allocations.
In the longer term, EFA will use data from the ILR (Learner Funding and Monitoring (FAM); learner support reason) to identify students who have been assessed as eligible for RSS and who have taken up the funding to generate subsequent allocations. Institutions are strongly encouraged to complete these fields. EFA will review data periodically throughout the year including R14. This information will enable the development of RSS policy and help target RSS funding.
Institutions should maintain accurate and up to date records to evidence which students get RSS funding; show that students are eligible for funding and show appropriate use of funds. The sections on RSS applications and verification of the student’s substantial qualification also highlight a number of points for institutions to consider.
The administration and allocation of RSS is subject to the institution’s normal governance and audit regimes. RSS funding is also subject to EFA checks using data submitted as part of the RSS process (to verify student eligibility) and external visits as part of the normal assurance arrangements for 16 to 19 education and training. Institutions should note that, following an audit/check, funding may be recovered where RSS payments are found not to have been made in accordance with this guide.
Institutions who would like further information about RSS in the 2016 to 2017 academic year, should contact:
Contact form https://form.education...
For all enquiries for the Education Funding Agency


-
Battle For The Net
www.battleforthenet.com
Cable companies want to slow down (and break!) your favorite sites, for profit. To fight back, let's cover the web with symbolic "loading" icons, to ...
-
Coursera
www.coursera.org
Take free online classes from 80+ top universities and organizations. Coursera is a social entrepreneurship company partnering with Stanford ...
-
2048 game
gabrielecirulli.github.io
Join the numbers and get to the 2048 tile! Careful: this game is extremely addictive!
-
Twitter / Recherche - #worldcup
twitter.com
Le meilleur des derniers Tweets à propos de #worldcup. Lisez ce que les gens disent et rejoignez la conversation.
-
The Privacy Pack
pack.resetthenet.org
Help fight to end mass surveillance. Get these tools to protect yourself and your friends.
-
The Official Microsoft ASP.NET Site
www.asp.net
ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.
-
All Our Patent Are Belong To You | Blog | Tesla Motors
www.teslamotors.com
Yesterday, there was a wall of Tesla patents in the lobby of our Palo Alto headquarters. That is no longer the case. They have been removed, in the ...
-
Apple - Privacy
www.apple.com
At Apple, we respect your privacy and protect it with strong encryption, plus strict policies that govern how all data is handled.
-
If programming languages were weapons • Bjorn Tipling
bjorn.tipling.com
C is an M1 Garand standard issue rifle, old but reliable. C++ is a set of nunchuks, powerful and impressive when wielded but takes many years of pain ...
-
Build software better, together
github.com
GitHub is the best place to build software together. Over 4 million people use GitHub to share code.
-
Troy Hunt: Everything you need to know about the Shellshock Bash bug
www.troyhunt.com
Observations, musings and conjecture about the world of software and technology
-
Obama actually said this stuff and it will make you cringe
cms.fightforthefuture.org
President Obama sure did care a lot about net neutrality ... until he became President! Tell him to keep his word.
-
Twitter CFO says a Facebook-style filtered feed is coming, whether you ...
gigaom.com
At a financial conference, Twitter’s chief financial officer Anthony Noto suggested that the service will offer algorithm-driven curation of feeds ...
-
This is Uber's playbook for sabotaging Lyft
www.theverge.com
Uber is arming teams of independent contractors with burner phones and credit cards as part of its sophisticated effort to undermine Lyft and other ...
-
Last Week Tonight with John Oliver: Net Neutrality (HBO)
www.youtube.com
Cable companies are trying to create an unequal playing field for internet speeds, but they're doing it so boringly that most news outlets aren't ...
-
What most schools don't teach
code.org
Learn about a new "superpower" that isn't being taught in 90% of US schools.
-
The NSA's favorite law is up for a vote soon.
www.facebook.com
CISPA is a law that turns the sites you love into legally immune government spies. It already passed the house, and even though no one wants it ...
-
WIRED
www.wired.com
Get in-depth coverage of current and future trends in technology, and how they are shaping business, entertainment, communications, science, ...
-
Shellshock DHCP RCE Proof of Concept -
www.trustedsec.com
DHCP bash shellshock POC: 1) Just about any DHCP string value should work for the exploit. Value 114 is URL, which is a string and should be reliable ...
-
You Are Not Late
medium.com
Can you imagine how awesome it would have been to be an entrepreneur in 1985 when almost any dot com name you wanted was…
-
Comcastic service disconnection (recording starts 10 mins into call)
soundcloud.com
Please note: this conversation starts about 10 minutes in -- by this point my wife and I are both completely flustered by the oppressiveness of the ...
-
You won’t believe how many people are upset about this secretive agreement
openmedia.org
Right now, Obama and other leaders are in closed-door meetings to fast track and finalize the Trans Pacific Partnership. And what they’re talking ...

-
Apple
www.apple.com
Apple designs and creates the iPhone, iPad, Mac notebooks and desktop computers, iOS 8, OS X, iPod and iTunes, and the new Apple Watch.
-
PHP: Hypertext Preprocessor
php.net
The PHP development team announces the immediate availability of PHP 5.4.33. 10 bugs were fixed in this release. All PHP 5.4 users are encouraged to ...
-
A free and open world depends on a free and open web. | Google
www.google.com
A free and open world depends on a free and open Internet. Governments alone, working behind closed doors, should not direct its future. The billions ...


Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't. --Alan J. Perlis [ source]


--- permalink: / layout: default title: Introduction ---
This toolkit was developed for NIH employees, but we hope it’s a useful reference for anyone.
Our visual identity is a flexible system that helps you communicate clearly while building visual consistency across our work. It features a growing set of templates and guides you can use to meet common design needs — and save time in the process.
This identity is integral to our ability to communicate our goals and deliver high-quality products. We recognize that having a strong brand is as important for government agencies as it is for private companies, and our users expect nothing less.
Because a brand communicates our core values, it helps us build trust with our partners, increase engagement, foster input and open-source contributions, and improve the public’s perception of government, all of which are central to our mission.
This is not a complete brand style guide, and it’s still an early draft. We’ll continue adding to this as we can, but there is no dedicated team at the moment.
We welcome your feedback and contributions so that we can continue to chip away at the highest priority needs for the STRIDES Initiative team. If you have any suggestions or are interested in getting involved, create an issue in GitHub.


Home
About us
Postcard
Thank you for traveling with us
This first ones yours, checkout some of the other incredible options below it
Change Image Locations »


|
TrackBacks (definition) are another mechanism for visitors to leave feedback on your blog. Where comments are responses that are left on your blog, TrackBacks are effectively links back to responses that somebody has written on their website.
As with comments, the number of TrackBacks that have been received for a particular blog entry is shown underneath the entry. Clicking the TrackBacks[x] link will open a popup window to display all TrackBacks for that blog entry.
If for any reason you wish to remove a TrackBack, just click the Remove link underneath the appropriate TrackBack and click OK when asked for confirmation. Like the other admin features, this link will only show up if you have logged in.
Sending TrackBacks
In addition to receiving TrackBacks, Pebble can also send a TrackBack to another TrackBack-enabled blog. To send a TrackBack, locate the blog entry that you wish to send the TrackBack from and open the TrackBacks window for that blog entry. If you are logged in, you will additionally see a form from which you can send a TrackBack to another blog.
If a blog supports TrackBacks, it will provide you with a URL to which they should be sent. When you have this URL for the particular entry you wish to send the TrackBack to, just type it into the TrackBack URL textfield. In addition to a link back to your blog entry, a short excerpt describing/summarizing your blog entry is sent and can be edited as necessary before being sent.
|


--- layout: home title: Programmer's Notepad - License ---
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of Simon Steele nor the names of any other contributors may be used to endorse or promote products derived from this software without specific prior written permission.


Just thought you guys be interested in a little bit of excitement that came my way last night...
After drinking an entire pot of coffee in less than an hour, around 4 AM this morning I became completely and utterly convinced that the world was going to end at exactly 6:11 AM this morning, just before first light. I'm not making this up.
   I wrote four pages about it in my journal as I was hip deep in the shitpool that was a stimulant overdose induced, acute manic/paranoiac attack that triggered some sort of neoclassical, metaphysical, socio-religious and philosophical crisis.
Needless to say this sucked real bad, and I didn't real start to come down off this until around 5 in the morning. This particularly blew 'cos I had two labs to finish by today (already late...I only ended up getting one done), and I didn't feel a hell of a lot of incentive to expound on the vibrational-rotational modes of carbon dioxide molecules being that the world was going to come to a screeching halt and I was hurtling toward that inevitable eternity of suffering and agony reserved for unrepentant pagans and unbelievers like m'self...
I fully snapped out of it at 6:20 and now my stomach feels like I swallowed a pound of Drain-O and pixie stick cocktails...
If anyone ever tells you caffeine is not a psychoactive drug when taken in significantly large quantities, spit on their nose.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Summary
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Information Collected
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
- Personal Contact Information
- Resumes
- Qualifications
- Skills
- Academic History
- Biographies
- Employment Histories
- Personal Interests/Hobbies
- Current Supervisor and People who report to you
- And Similar information
Purpose
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
Consent
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passa
Security
Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
Complaints
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.


Settings
Toggle navigation
Logout
Dashboard
Users
Drivers
Trips
Settings
Feedback
Update Price
Update Price
Are you sure you want to update price ?
No
Yes


JUNE 30,2014
108 Replies
Praesent at tincidunt dui. Etiam nec pharetra lorem, id cursus risus.
Integer quis elit quis orci laoreet euismod.
Jonny Lawrence
Art Director, Britannica Studio
JUNE 30,2014
Photo
of the day
More Details
Yellowstone's
Water
"Secrets"
In egestas nulla vitae nulla rhoncus, quis vulputate ipsum eleifend. Integer nibh est, porta at ultricies hendrerit, aliquam id metus.
JUNE 30,2014
82 Replies
Where Is Earth's Freshwater?
JUNE 30,2014
82 Replies
®NATGEO
Aliquam tempus lectus sed nibh gravida, sed scelerisque enim vestibulum.
Praesent at diam ut nisi ultrices adipiscing.
Is Collapse of
Civilizations
Explained?
In egestas nulla vitae nulla rhoncus, quis vulputate ipsum eleifend. Integer nibh est, porta at ultricies hendrerit, aliquam id metus.
JUNE 30,2014
82 Replies
What You Don't
Know About
Food, Water,
& Energy
JUNE 30,2014
82 Replies
Sustainable Earth:
Water
JUNE 30,2014
6 Replies
Why Care About
Water?
JUNE 30,2014
59 Replies


Zander Lombard holds slender lead in Sun City
by FSA EditorZander Lombard recovered from a double bogey to regain the lead at Gary Player Country Club after Louis Oosthuizen had hit the front.
Zander Lombard will take a one-shot lead into the final day of the Nedbank Golf Challenge despite his worst round of the week on home soil.
Lombard, chasing a first European Tour title, ground it out with a level-par 72 in Sun City to hold a slender advantage over fellow South African Louis Oosthuizen and Belgian Thomas Detry.
World number 234 Lombard started his third round with two-shot lead and extended that by one, but a double-bogey six at the eighth hole following a dropped shot at six put Oosthuizen out in front.
Lombard recovered with four birdies in the space of seven holes and despite another bogey at 16, he is the man to catch on 11 under at Gary Player Country Club.
The 24-year-old said: “I’m still in the lead. I’ve got to stay positive and I’m really looking forward to tomorrow.
“I just couldn’t get it going today. I didn’t really make any mistakes, I just missed two or three fairways that really put me behind the eight ball and you can’t attack this golf course if you’re not in the fairway.
“I don’t want to sound cocky but it’s been a long time coming. I’ve really made big strides in how I do things on and off the golf course. It’s nice to get some feedback and some results from the hard work.”
Oosthuizen is hot on the heels of his compatriot after carding a one-under 71, two bogeys costing him the lead on moving day.
Detry moved level with Oosthuizen by shooting a three-under 69, while Oliver Wilson rose into a share of fourth spot with a five-under 67 to join Marcus Kinhult on eight under.
Defending champion Lee Westwood is among six players who are five shots adrift of the leader.


title = "Registration Successful" url = "/registration-successful" layout = "Registration" description = "Your registration to the Troodos Investment Network has been successful" is_hidden = 0 [viewBag] localeTitle[el] = "Επιτυχής Εγγραγή" localeUrl[el] = "/registration-successful" [session] security = "guest" redirect = "investment-platform" ==


Julia is designed from the ground up to be very good at numerical and scientific computing. This can be seen in the abundance of scientific tooling written in Julia, such as the state-of-the-art differential equations ecosystem (DiffEq), optimization tools (JuMP and Optim), iterative linear solvers (IterativeSolvers) and many more, that can drive all your simulations.
Julia also offers a number of domain-specific ecosystems, such as in biology (BioJulia), operations research (JuliaOpt), quantum physics (QuantumOptics), nonlinear dynamics (JuliaDynamics), quantitative economics (QuantEcon), astronomy (JuliaAstro) and ecology (EcoJulia). With a set of highly enthused developers and maintainers from various parts of the scientific community, this ecosystem will only continue to get bigger and bigger.The Julia data ecosystem lets you load multidimensional datasets quickly, perform aggregations, joins and preprocessing operations in parallel, and save them to disk in efficient formats. You can also perform online computations on streaming data. Whether you're looking for the convenient and familiar DataFrames, or a new approach with JuliaDB, Julia provides you a rich variety of tools. The Queryverse package acts a meta package through which you can access these tools with Julian APIs. In addition to working with tabular data, the JuliaGraphs packages make it easy to work with combinatorial data.
Julia also integrates with every popular database you've heard of, including MySQL, JDBC, ODBC, HDFS and Hive .
Data visualization has a complicated history. Plotting software makes trade-offs between features and simplicity, speed and beauty, and a static and dynamic interface. Some packages make a display and never change it, while others make updates in real-time.
Plots.jl is a visualization interface and toolset. It sits above other backends, like GR or PyPlot, connecting commands with implementation. If one backend does not support your desired features or make the right trade-offs, you can just switch to another backend with one command. No need to change your code. No need to learn a new syntax. Plots might be the last plotting package you ever learn.


{% extends 'base.html' %} {% block home_container %}
Academic Question Answer Platform aims at providing teachers and students a comprehensive and interactive discussion platform. This project is an implementation of community based question and answering services. It has a provision for teachers and students to post answers to an already existing question, upvote an answer, search for previously posted questions, upload files and allows verification of answers by the teachers. The questions posted will be categorised topic-wise


Class ReadOnlyAreaExtensions
Extension methods for IReadOnlyArea.
Namespace: SadRogue.Primitives
Assembly: TheSadRogue.Primitives.dll
Syntax
public static class ReadOnlyAreaExtensions : Object
Methods
FastEnumerator(IReadOnlyArea)
Obsolete.
Declaration
public static ReadOnlyAreaPositionsEnumerator FastEnumerator(this IReadOnlyArea self)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyArea | self |
Returns
| Type | Description |
|---|---|
| ReadOnlyAreaPositionsEnumerator |
PerimeterPositions(IReadOnlyArea, AdjacencyRule)
Returns all points that are on the border of the area, assuming the specified adjacency rule is used to determine adjacent cells for the sake of determining border.
Declaration
public static IEnumerable<Point> PerimeterPositions(this IReadOnlyArea area, AdjacencyRule rule)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyArea | area | |
| AdjacencyRule | rule | The AdjacencyRule to use for determining adjacency to cells which are outside of the area. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Point> | An enumerable of every point which is on the outer edge of the area specified. |
Remarks
Typically, you will want to use AdjacencyRule.EightWay as the rule; however AdjacencyRule.Cardinals is faster if you don't want border cells adjacent to a wall ONLY diagonally to be considered border cells.
# # # # # # # #
# . . . . . # #
# . . . . X .     #
# # # # # # # #
# # # # # # # #
# . . . . . # #
# . . . . X .     #
# # # # # # # #


--- layout: page slide_id: 4 ---
Submission Instructions
Authors should submit their work through the Euro MPI 2020 Submission Site at easychair.
To submit your paper, please follow below link to the submission site:
Note that at least one of the authors of each paper accepted for presentation in EuroMPI 2020 must be registered.
Camera-Ready Instructions
You will receive the information via your email for camera-ready instructions.
{% include contact-us.html %}


Check the Compare cases box to compare the data in the two datasets. Check the Compare dictionary properties box to compare selected properties of the variables. If neither box is checked, there will be no output.
Enter the dataset names of the primary and secondary datasets in the boxes provided. Any requested case comparison information will be written to the primary dataset.
If comparing cases, enter the name of a case id variable present in both datasets. Both datasets must be sorted ascending by the ID variable.
Enter the name of a new variable in the New Variable to Hold Difference Count field to produce a variable whose values are the number of differences in the variables compared for each case. If a case from the primary dataset is not present in the secondary dataset, the count value will be missing.
A summary report of the differences is written to the Viewer, but the details are only written to the primary dataset.
If a root name is entered in the Root Name for New Variables field, a new variable with a name starting with the specified root will be created for each variable compared. The values will be 0 or 1 according to whether the variable values are equal or not.
Enter a filename in the Log file file to produce a text file listing the detailed differences between the two files. It will list case ids present in only one dataset and all value differences for the selected variables.
If the variable dictionaries are to be compared, check one or more properties to compare. A report will be written to the Viewer showing where any differences are.
This dialog generates syntax for the SPSSINC COMPARE DATASETS extension command. To display help for this command, run the following syntax:
SPSSINC COMPARE DATASETS /HELP.
This dialog requires the Integration Plug-In for Python and the SPSSINC COMPARE DATASETS extension command. For IBM® SPSS® Statistics 19 and higher, the Plug-In and the extension command are installed with the Essentials for Python package. For more information, see How to Get Integration Plug-Ins, under Core System > Frequently Asked Questions in the IBM SPSS Statistics Help system. If you downloaded SPSSINC COMPARE DATASETS from the SPSS Community, then please follow the instructions in the associated readme file.
© Copyright IBM Corp. 1989, 2011


Those of us that practice TDD daily already know how important good
error messages in tests are. After all writing a failing test that
clearly states what functionality the program
is missing is the first step in TDD cycle.
The rest of us that either can’t or simply don’t want to practice TDD
must put extra effort to ensure that tests always fail
with meaningful error messages.
Unfortunately, according to what I have learned from my personal experience,
the most devs either don’t have
enough time or simply don’t bother to check if their tests fail with
something meaningful. For average Joe developer writing tests and
making them green is already a lot of work.
Things like good test names and proper error messages are often forgotten.
But the developers are not the only one here to blame.
Too often tools and libraries that supposedly should make unit testing
simpler and easier, generate horrible and often cryptic error messages.
In this post we will take a close look at
NSubstitute,
a modern and popular mocking libary for .NET and see
how we can improve messages generated by its argument matchers.
Let’s start by looking at a simple test.
It demonstrates how NSubstitute is often used to assert that
a method was called with an argument in a certain state:
When the argument passed to the checked method
was in an unexpected state (e.g. first name was not “jan” but “john”),
we get an error message similar to (formatting added):
This error message is terrible.
It contains a lot of informations that are easily obtainable by looking at the
test method’s source code. Yet it does not contain
the most important piece of information that we need: which properties
have unexpected values and what these values are.
We can slightly improve this error message by overloading ToString method
on PlainArgument class.
Let’s call this new class StringableArgument:
Now the error message looks similar to (formatting added):
This is better than before.
Now we can see both expected and actual values of the
matched argument’s properties.
One drawback of this approach is that
the quality of the error message depends on the quality of
ToString implementation.
If we are using AOP solution like
Fody to generate ToString implementations
for most of our classes, then this solution may be good enough.
On the other hand if we are generating and updating our ToString methods
manually (even if this means pressing a shortcut in our IDE)
then I would prefer to look for a better solution that is totally automatic.
There is also another problem that we were ignoring so far.
Consider what will happen if we add a new field to our StringableArgument
class.
Because we are using property access syntax inside of a lambda expression,
our existing matchers will not only compile without any problems when
we add a new field, they will also pass!
In order to ensure that our matchers and tests remain valid,
we must go through all argument matchers
for StringableArgument class and make sure that they use
the newly added field.
The above problem may be solved by moving equality checking
to the StringableArgument class itself.
Let’s call this new class EquotableArgument:
With this solution it is impossible to forget to update our matchers
when we add a new field.
We also get a slightly better error message (formatting added):
So far so good. But what if our argument has ten or more properties.
With complex arguments looking for a one property with
unexpected value may quickly change into “Where’s Wally?” game.
The only way to further improve error messages is to stop relaying on
NSubstitute/hand-carfted Equals implementation
and instead to use specialized assertion library like
FluentAssertions or
NFluent.
Here is how our test would look like if we decide to use FluentAssertions:
The error message is:
Not bad, I must say. We get a list of only these properties that have
unexpected values. Certain messages seem a little bit too verbose for me
e.g. Expected member FirstName to be "jan" with a length of 3,
but "john" has a length of 4, differs near "ohn" (index 1).
Maybe Expected FirstName to be "jan" but was "john". would be
just enough?
Still it is the best solution that we have so far.
The only downside that I see
is that the test code is now a little more verbose and less readable.
Mainly because
we are now responsible for manually capturing argument’s value:
With a bit of C# magic we may make argument capturing less painful:
To see how it works please check ArgCapture.cs file.
Catching argument’s value manually is cumbersome and
makes tests less readable. On the other hand using some “magical”
syntactic sugar also does not looks like a good idea.
After all our code should be simple. If we can avoid using “magic”
we should do it!
Our final solution is to create a custom NSubstitute argument matcher.
The matcher uses undercover FluentAssertions library to perform the check.
Here is how the test code looks like with this approach:
The error message generated for an argument that does
not overload ToString looks like this (formatting added):
It is clear that the problem occurred at the first argument (arg[0]).
Also we can see the actual and expected values of the argument’s
fields and properties.
And the test code is simple and clean.
If you are interested how it is implemented please see
CustomMatcher.cs
file.
As we can see there exists no perfect solution. Still with a little effort
we can make our error messages much more readable and pleasurable to work with.
I personally suggest to use either the last solution or
the solution presented in Catching_argument_and_checking_manually_with_fluent_assertions test.


#include <uvm_resource_base.h>
Inheritance diagram for uvm::uvm_resource_base:
Public Member Functions | |
| uvm_resource_base (const std::string &name, const std::string &scope="*\\.") | |
| Constructor. | |
| ~uvm_resource_base () | |
| Desstructor. | |
| void | set_read_only () |
| Set the resource to be read-only. | |
| void | set_read_write () |
| Set the resource to be read and write. | |
| bool | is_read_only () |
| Query the read-write attribute of the resource. | |
| void | wait_modified () |
| Wait until the resource has been modified. | |
| void | set_scope (std::string scope) |
| Set scope for the resource. | |
| std::string | get_scope () |
| Return the scope for the resource. | |
| bool | match_scope (std::string scope) |
| Determine if the resource is visible in the given scope. | |
| void | set_precedence (unsigned int precedence) |
| Set the precedence of this resource. | |
| unsigned int | get_precedence () |
| Return the precedence of this resource. | |
| void | set_priority (uvm_resource_priority_e priority) |
| Set the priority of this resource in the pool. | |
| virtual std::string | convert2string () |
| Convert the resource value to string. | |
| virtual const std::type_info & | get_value_type_id ()=0 |
| void | do_print (std::ostream &os) const |
| void | do_pack (uvm_packer &p) const |
| void | do_unpack (uvm_packer &p) |
| void | do_copy (const uvm_object *rhs) |
| bool | do_compare (const uvm_object *rhs) const |
| std::string | get_name () |
| Return the name of the resource. | |
Static Public Attributes | |
| static unsigned int | m_default_precedence = 1000 |
Protected Attributes | |
| bool | m_read_only |
| sc_core::sc_event | m_modified_event |
Definition at line 46 of file uvm_resource_base.h.
| uvm::uvm_resource_base::uvm_resource_base | ( | const std::string & | name, | |
| const std::string & | scope = "*\\." | |||
| ) |
Constructor.
| name | - Name of resource | |
| scope | - Resource scope |
Definition at line 38 of file uvm_resource_base.cpp.
References set_scope().
| std::string uvm::uvm_resource_base::convert2string | ( | ) | [virtual] |
Convert the resource value to string.
Should be implemented in specialization class. Base class does not know how to convert the value so return "?".
Definition at line 171 of file uvm_resource_base.cpp.
| std::string uvm::uvm_resource_base::get_name | ( | ) |
Return the name of the resource.
Definition at line 181 of file uvm_resource_base.cpp.
Referenced by uvm::uvm_resource_pool::set(), and uvm::uvm_resource_pool::set_priority_name().
| unsigned int uvm::uvm_resource_base::get_precedence | ( | ) |
Return the precedence of this resource.
Definition at line 145 of file uvm_resource_base.cpp.
Referenced by uvm::uvm_resource_pool::get_highest_precedence().
| std::string uvm::uvm_resource_base::get_scope | ( | ) |
Return the scope for the resource.
Definition at line 105 of file uvm_resource_base.cpp.
| bool uvm::uvm_resource_base::is_read_only | ( | ) |
Query the read-write attribute of the resource.
Definition at line 77 of file uvm_resource_base.cpp.
References m_read_only.
| bool uvm::uvm_resource_base::match_scope | ( | std::string | scope | ) |
Determine if the resource is visible in the given scope.
| scope | - Scope to check |
Definition at line 119 of file uvm_resource_base.cpp.
| void uvm::uvm_resource_base::set_precedence | ( | unsigned int | precedence | ) |
Set the precedence of this resource.
| precedence |
Definition at line 134 of file uvm_resource_base.cpp.
Referenced by uvm::uvm_config_db< T >::set().
| void uvm::uvm_resource_base::set_priority | ( | uvm_resource_priority_e | priority | ) |
Set the priority of this resource in the pool.
PRI_HIGH - move to front of pool. PRI_LOW - move to back of pool.
| priority |
Definition at line 156 of file uvm_resource_base.cpp.
References uvm::uvm_resource_pool::get(), and uvm::uvm_resource_pool::set_priority_name().
| void uvm::uvm_resource_base::set_scope | ( | std::string | scope | ) |
Set scope for the resource.
| scope | - Scope to set for this resource |
Definition at line 95 of file uvm_resource_base.cpp.
References uvm::uvm_glob_to_regex().
Referenced by uvm_resource_base().