Table of contents
- XRegExp
- XRegExp.addToken
- XRegExp.build
- XRegExp.cache
- XRegExp.escape
- XRegExp.exec
- XRegExp.forEach
- XRegExp.globalize
- XRegExp.install
- XRegExp.isInstalled
- XRegExp.isRegExp
- XRegExp.match
- XRegExp.matchChain
- XRegExp.matchRecursive
- XRegExp.replace
- XRegExp.replaceEach
- XRegExp.split
- XRegExp.tag
- XRegExp.test
- XRegExp.uninstall
- XRegExp.union
- XRegExp.version
XRegExp instance properties
API
XRegExp(pattern, [flags])
Creates an extended regular expression object for matching text with a pattern. Differs from a
native regular expression in that additional syntax and flags are supported. The returned object
is in fact a native RegExp
and works with all native methods.
| Parameters: |
|
|---|---|
| Returns: |
{RegExp }Extended regular expression object. |
Example
// With named capture and flag x XRegExp(`(?<year> [0-9]{4} ) [-\\s]? # year (?<month> [0-9]{2} ) [-\\s]? # month (?<day> [0-9]{2} ) # day`, 'x'); // Providing a regex object copies it. Native regexes are recompiled using native (not // XRegExp) syntax. Copies maintain extended data, are augmented with `XRegExp.prototype` // properties, and have fresh `lastIndex` properties (set to zero). XRegExp(/regex/);
For details about the regular expression just shown, see Syntax: Named capture and Flags: Free-spacing.
Regexes, strings, and backslashes
JavaScript string literals (as opposed to, e.g., user input or text extracted from the DOM) use a backslash as an escape character. The string literal '\\'
therefore contains a single backslash, and its length
property's value is 1
. However, a backslash is also an escape character in regular expression syntax, where the pattern \\
matches a single backslash. When providing string literals to the RegExp
or XRegExp
constructor functions, four backslashes are therefore needed to match a single backslash—e.g., XRegExp('\\\\')
. Only two of those backslashes are actually passed into the constructor function. The other two are used to escape the backslashes in the string before the function ever sees the string. The exception is when using ES6 raw strings via String.raw
or XRegExp.tag
.
The same issue is at play with the \\s
sequences in the example code just shown. XRegExp
is provided with the two characters \s
, which it in turn recognizes as the metasequence used to match a whitespace character.
XRegExp.addToken(regex, handler, [options])
Extends XRegExp syntax and allows custom flags. This is used internally and can be used to create XRegExp addons. If more than one token can match the same string, the last added wins.
| Parameters: |
|
|---|---|
| Returns: |
{undefined }Does not return a value. |
Example
// Basic usage: Add \a for the ALERT control code XRegExp.addToken( /\\a/, () => '\\x07', {scope: 'all'} ); XRegExp('\\a[\\a-\\n]+').test('\x07\n\x07'); // -> true
Show more XRegExp.addToken
examples. ↓
XRegExp.build(pattern, subs, [flags])
Requires the XRegExp.build addon, which is bundled in xregexp-all.js
.
Builds regexes using named subpatterns, for readability and pattern reuse. Backreferences in the
outer pattern and provided subpatterns are automatically renumbered to work correctly. Native
flags used by provided subpatterns are ignored in favor of the flags
argument.
| Parameters: |
|
|---|---|
| Returns: |
|
Example
const time = XRegExp.build('(?x)^ {{hours}} ({{minutes}}) $', { hours: XRegExp.build('{{h12}} : | {{h24}}', { h12: /1[0-2]|0?[1-9]/, h24: /2[0-3]|[01][0-9]/ }, 'x'), minutes: /^[0-5][0-9]$/ }); time.test('10:59'); // -> true XRegExp.exec('10:59', time).groups.minutes; // -> '59'
See also: Creating Grammatical Regexes Using XRegExp.build.
XRegExp.cache(pattern, [flags])
Caches and returns the result of calling XRegExp(pattern, flags)
. On any subsequent call with
the same pattern and flag combination, the cached copy of the regex is returned.
| Parameters: |
|
|---|---|
| Returns: |
{RegExp }Cached XRegExp object. |
Example
let match; while (match = XRegExp.cache('.', 'gs').exec('abc')) { // The regex is compiled once only } const regex1 = XRegExp.cache('.', 's'), const regex2 = XRegExp.cache('.', 's'); // regex1 and regex2 are references to the same regex object
XRegExp.escape(str)
Escapes any regular expression metacharacters, for use when matching literal strings. The result can safely be used at any position within a regex that uses any flags.
The escaped characters are [
, ]
, {
, }
, (
, )
, -
, *
, +
, ?
, .
, \
, ^
, $
, |
, ,
, #
, and whitespace (see free-spacing for the list of whitespace characters).
| Parameters: |
|
|---|---|
| Returns: |
{String }String with regex metacharacters escaped. |
Example
XRegExp.escape('Escaped? <.>'); // -> 'Escaped\?\u0020<\.>'
XRegExp.exec(str, regex, [pos], [sticky])
Executes a regex search in a specified string. Returns a match array or null
. If the provided
regex uses named capture, named capture properties are included on the match array's groups
property. Optional pos
and sticky
arguments specify the search start position, and whether
the match must start at the specified position only. The lastIndex
property of the provided
regex is not used, but is updated for compatibility. Also fixes browser bugs compared to the
native RegExp.prototype.exec
and can be used reliably cross-browser.
| Parameters: |
|
|---|---|
| Returns: |
{Array }Match array with named capture properties on the groups object, or null . If the namespacing feature is off, named capture properties are directly on the match array.
|
Example
// Basic use, with named backreference let match = XRegExp.exec('U+2620', XRegExp('U\\+(?<hex>[0-9A-F]{4})')); match.groups.hex; // -> '2620' // With pos and sticky, in a loop let pos = 3, result = [], match; while (match = XRegExp.exec('<1><2><3><4>5<6>', /<(\d)>/, pos, 'sticky')) { result.push(match[1]); pos = match.index + match[0].length; } // result -> ['2', '3', '4']
XRegExp.forEach(str, regex, callback)
Executes a provided function once per regex match. Searches always start at the beginning of the string and continue until the end, regardless of the state of the regex's global
property and initial lastIndex
.
| Parameters: |
|
|---|---|
| Returns: |
{undefined }Does not return a value. |
Example
// Extracts every other digit from a string const evens = []; XRegExp.forEach('1a2345', /\d/, function (match, i) { if (i % 2) evens.push(+match[0]); }); // evens -> [2, 4]
XRegExp.globalize(regex)
Copies a regex object and adds flag g
. The copy maintains extended data,
is augmented with XRegExp.prototype
properties, and has a fresh lastIndex
property (set to
zero). Native regexes are not recompiled using XRegExp syntax.
| Parameters: |
|
|---|---|
| Returns: |
{RegExp }Copy of the provided regex with flag g added.
|
Example
const globalCopy = XRegExp.globalize(/regex/); globalCopy.global; // -> true function parse(str, regex) { regex = XRegExp.globalize(regex); let match; while (match = regex.exec(str)) { // ... } }
XRegExp.install(options)
Installs optional features according to the specified options. Can be undone using XRegExp.uninstall
.
| Parameters: |
|
|---|---|
| Returns: |
{undefined }Does not return a value. |
Example
// With an options object XRegExp.install({ // Enables support for astral code points in Unicode addons (implicitly sets flag A) astral: true, // Adds named capture groups to the `groups` property of matches // On by default in XRegExp 5 namespacing: true }); // With an options string XRegExp.install('astral namespacing');
XRegExp.isInstalled(feature)
Checks whether an individual optional feature is installed.
| Parameters: |
|
|---|---|
| Returns: |
{Boolean }Whether the feature is installed. |
Example
XRegExp.isInstalled('astral');
XRegExp.isRegExp(value)
Returns true
if an object is a regex; false
if it isn't. This works correctly for regexes
created in another frame, when instanceof
and constructor
checks would fail.
| Parameters: |
|
|---|---|
| Returns: |
{Boolean }Whether the object is a RegExp object.
|
Example
XRegExp.isRegExp('string'); // -> false XRegExp.isRegExp(/regex/i); // -> true XRegExp.isRegExp(RegExp('^', 'm')); // -> true XRegExp.isRegExp(XRegExp('(?s).')); // -> true
XRegExp.match(str, regex, [scope])
Returns the first matched string, or in global mode, an array containing all matched strings.
This is essentially a more convenient re-implementation of String.prototype.match
that gives
the result types you actually want (string instead of exec
-style array in match-first mode,
and an empty array instead of null
when no matches are found in match-all mode). It also lets
you override flag g
and ignore lastIndex
, and fixes browser bugs.
| Parameters: |
|
|---|---|
| Returns: |
{String |Array }In match-first mode: First match as a string, or null . In match-all
mode: Array of all matched strings, or an empty array.
|
Example
// Match first XRegExp.match('abc', /\w/); // -> 'a' XRegExp.match('abc', /\w/g, 'one'); // -> 'a' XRegExp.match('abc', /x/g, 'one'); // -> null // Match all XRegExp.match('abc', /\w/g); // -> ['a', 'b', 'c'] XRegExp.match('abc', /\w/, 'all'); // -> ['a', 'b', 'c'] XRegExp.match('abc', /x/, 'all'); // -> []
XRegExp.matchChain(str, chain)
Retrieves the matches from searching a string using a chain of regexes that successively search
within previous matches. The provided chain
array can contain regexes and or objects with regex
and backref
properties. When a backreference is specified, the named or numbered backreference
is passed forward to the next regex or returned.
| Parameters: |
|
|---|---|
| Returns: |
{Array }Matches by the last regex in the chain, or an empty array. |
Example
// Basic usage; matches numbers within  tags XRegExp.matchChain('1 2 3 4 a 56', [ XRegExp('(?is).*?'), /\d+/ ]); // -> ['2', '4', '56'] // Passing forward and returning specific backreferences const html = `<a href="https://xregexp.com/api/">XRegExp</a> <a href="https://www.google.com/">Google</a>`; XRegExp.matchChain(html, [ {regex: //i, backref: 1}, {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'} ]); // -> ['xregexp.com', 'www.google.com']
XRegExp.matchRecursive(str, left, right, [flags], [options])
Requires the XRegExp.matchRecursive addon, which is bundled in xregexp-all.js
.
Returns an array of match strings between outermost left and right delimiters, or an array of objects with detailed match parts and position data. By default, an error is thrown if delimiters are unbalanced within the subject string.
| Parameters: |
|
|---|---|
| Returns: |
|
Example
// Basic usage const str1 = '(t((e))s)t()(ing)'; XRegExp.matchRecursive(str1, '\\(', '\\)', 'g'); // -> ['t((e))s', '', 'ing'] // Extended information mode with valueNames const str2 = 'Here is

an

 example'; XRegExp.matchRecursive(str2, '
', '
', 'gi', { valueNames: ['between', 'left', 'match', 'right'] }); /* -> [ {name: 'between', value: 'Here is ', start: 0, end: 8}, {name: 'left', value: '
', start: 8, end: 13}, {name: 'match', value: '
an
', start: 13, end: 27}, {name: 'right', value: '
', start: 27, end: 33}, {name: 'between', value: ' example', start: 33, end: 41} ] */ // Omitting unneeded parts with null valueNames, and using escapeChar const str3 = '...{1}.\\{{function(x,y){return {y:x}}}'; XRegExp.matchRecursive(str3, '{', '}', 'g', { valueNames: ['literal', null, 'value', null], escapeChar: '\\' }); /* -> [ {name: 'literal', value: '...', start: 0, end: 3}, {name: 'value', value: '1', start: 4, end: 5}, {name: 'literal', value: '.\\{', start: 6, end: 9}, {name: 'value', value: 'function(x,y){return {y:x}}', start: 10, end: 37} ] */ // Sticky mode via flag y const str4 = '<1><<<2>>><3>4<5>'; XRegExp.matchRecursive(str4, '<', '>', 'gy'); // -> ['1', '<<2>>', '3'] // Skipping unbalanced delimiters instead of erroring const str5 = 'Here is

an
 unbalanced example'; XRegExp.matchRecursive(str5, '
', '
', 'gi', { unbalanced: 'skip' }); // -> ['an']
XRegExp.replace(str, search, replacement, [scope])
Returns a new string with one or all matches of a pattern replaced. The pattern can be a string
or regex, and the replacement can be a string or a function to be called for each match. To
perform a global search and replace, use the optional scope
argument or include flag g
if
using a regex. Replacement strings can use $<n>
or ${n}
for named and numbered backreferences.
Replacement functions can use named backreferences via the last argument. Also fixes browser
bugs compared to the native String.prototype.replace
and can be used reliably cross-browser.
For the full details of XRegExp's replacement text syntax, see Syntax: Replacement text.
| Parameters: |
|
|---|---|
| Returns: |
{String }New string with one or all matches replaced. |
Example
// Regex search, using named backreferences in replacement string const name = XRegExp('(?<first>\\w+) (?<last>\\w+)'); XRegExp.replace('John Smith', name, '$<last>, $<first>'); // -> 'Smith, John' // Regex search, using named backreferences in replacement function XRegExp.replace('John Smith', name, (...args) => { const groups = args[args.length - 1]; return `${groups.last}, ${groups.first}`; }); // -> 'Smith, John' // String search, with replace-all XRegExp.replace('RegExp builds RegExps', 'RegExp', 'XRegExp', 'all'); // -> 'XRegExp builds XRegExps'
XRegExp.replaceEach(str, replacements)
Performs batch processing of string replacements. Used like XRegExp.replace
, but
accepts an array of replacement details. Later replacements operate on the output of earlier
replacements. Replacement details are accepted as an array with a regex or string to search for,
the replacement string or function, and an optional scope of 'one'
or 'all'
. Uses the XRegExp
replacement text syntax, which supports named backreference properties via $<name>
or ${name}
.
| Parameters: |
|
|---|---|
| Returns: |
{String }New string with all replacements. |
Example
str = XRegExp.replaceEach(str, [ [XRegExp('(?<name>a)'), 'z$<name>'], [/b/gi, 'y'], [/c/g, 'x', 'one'], // scope 'one' overrides /g [/d/, 'w', 'all'], // scope 'all' overrides lack of /g ['e', 'v', 'all'], // scope 'all' allows replace-all for strings [/f/g, (match) => match.toUpperCase()] ]);
XRegExp.split(str, separator, [limit])
Splits a string into an array of strings using a regex or string separator. Matches of the
separator are not included in the result array. However, if separator
is a regex that contains
capturing groups, backreferences are spliced into the result each time separator
is matched.
Fixes browser bugs compared to the native String.prototype.split
and can be used reliably
cross-browser.
| Parameters: |
|
|---|---|
| Returns: |
{Array }Array of substrings. |
Example
// Basic use XRegExp.split('a b c', ' '); // -> ['a', 'b', 'c'] // With limit XRegExp.split('a b c', ' ', 2); // -> ['a', 'b'] // Backreferences in result array XRegExp.split('..word1..', /([a-z]+)(\d+)/i); // -> ['..', 'word', '1', '..']
XRegExp.tag([flags])`pattern`
Requires the XRegExp.build addon, which is bundled in xregexp-all.js
.
Provides tagged template literals that create regexes with XRegExp syntax and flags. The provided pattern is handled as a raw string, so backslashes don't need to be escaped.
Interpolation of strings and regexes shares the features of XRegExp.build
. Interpolated
patterns are treated as atomic units when quantified, interpolated strings have their special
characters escaped, a leading ^
and trailing unescaped $
are stripped from interpolated
regexes if both are present, and any backreferences within an interpolated regex are
rewritten to work within the overall pattern.
| Parameters: |
|
|---|---|
| Returns: |
{RegExp }Extended regular expression object. |
Example
XRegExp.tag()`\b\w+\b`.test('word'); // -> true const hours = /1[0-2]|0?[1-9]/; const minutes = /(?<minutes>[0-5][0-9])/; const time = XRegExp.tag('x')`\b ${hours} : ${minutes} \b`; time.test('10:59'); // -> true XRegExp.exec('10:59', time).groups.minutes; // -> '59' const backref1 = /(a)\1/; const backref2 = /(b)\1/; XRegExp.tag()`${backref1}${backref2}`.test('aabb'); // -> true
XRegExp.test(str, regex, [pos], [sticky])
Executes a regex search in a specified string. Returns true
or false
. Optional pos
and
sticky
arguments specify the search start position, and whether the match must start at the
specified position only. The lastIndex
property of the provided regex is not used, but is
updated for compatibility. Also fixes browser bugs compared to the native
RegExp.prototype.test
and can be used reliably cross-browser.
| Parameters: |
|
|---|---|
| Returns: |
{Boolean }Whether the regex matched the provided value. |
Example
// Basic use XRegExp.test('abc', /c/); // -> true // With pos and sticky XRegExp.test('abc', /c/, 0, 'sticky'); // -> false XRegExp.test('abc', /c/, 2, 'sticky'); // -> true
XRegExp.uninstall(options)
Uninstalls optional features according to the specified options. Used to undo the actions of XRegExp.install
.
| Parameters: |
|
|---|---|
| Returns: |
{undefined }Does not return a value. |
Example
// With an options object XRegExp.uninstall({ // Disables support for astral code points in Unicode addons (unless enabled per regex) astral: true, // Don't add named capture groups to the `groups` property of matches namespacing: true }); // With an options string XRegExp.uninstall('astral namespacing');
XRegExp.union(patterns, [flags])
Returns an XRegExp object that is the union of the given patterns. Patterns can be provided as
regex objects or strings. Metacharacters are escaped in patterns provided as strings.
Backreferences in provided regex objects are automatically renumbered to work correctly within the larger combined pattern. Native
flags used by provided regexes are ignored in favor of the flags
argument.
| Parameters: |
|
|---|---|
| Returns: |
{RegExp }Union of the provided regexes and strings. |
Example
XRegExp.union(['a+b*c', /(dogs)\1/, /(cats)\1/], 'i'); // -> /a\+b\*c|(dogs)\1|(cats)\2/i XRegExp.union([/man/, /bear/, /pig/], 'i', {conjunction: 'none'}); // -> /manbearpig/i
XRegExp.version
The XRegExp version number as a string containing three dot-separated parts. For example, '2.0.0-beta-3'
.
<regexp>.xregexp.source
The original pattern provided to the XRegExp
constructor. Note that this differs from the <regexp>.source
property which holds the transpiled source in native RegExp
syntax and therefore can't be used to reconstruct the regex (e.g. <regexp>.source
holds no knowledge of capture names). This property is available only for regexes originally constructed by XRegExp
. It is null
for native regexes copied using the XRegExp
constructor or XRegExp.globalize
.
<regexp>.xregexp.flags
The original flags provided to the XRegExp
constructor. Differs from the ES6 <regexp>.flags
property in that it includes XRegExp's non-native flags and is accessible even in pre-ES6 browsers. This property is available only for regexes originally constructed by XRegExp
. It is null
for native regexes copied using the XRegExp
constructor or XRegExp.globalize
. When regexes originally constructed by XRegExp
are copied using XRegExp.globalize
, the value of this property is augmented with 'g'
if not already present. Flags are listed in alphabetical order.


[gecode-users] Implementing No-goods
Christian Schulte
cschulte at kth.se
Wed Sep 25 21:17:59 CEST 2013
It uses the same master (well, an equivalent one).
Best
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
> -----Original Message-----
> From: Kish Shen [mailto:kisshen at cisco.com]
> Sent: Wednesday, September 25, 2013 9:12 PM
> To: cschulte at kth.se
> Cc: gecode-users at gecode.org
> Subject: Re: [gecode-users] Implementing No-goods
>
> On 13/09/2013 12:20, Christian Schulte wrote:
> > In your idea of doing several searches after each other I assume that
> > you use the next() function to get a space and then continue search.
> > As the no-goods are posted in the master space they will be contained
> > in the space returned by next() as well (unless they already have been
> > found out to be useless).
>
>
> Hi Christian,
>
> I thought I better separate the two issues into different posts....
>
> Thinking about the restart search more, I think my question may arise from
a
> (mis)understanding of what the master space is. Please let me know if the
> following is correct:
>
> master(.., const Space* s, NoGoods& ng)
>
> I had assumed that each time master is called, there is a fresh copy of
the space
> s, i.e. a clone of the space before search was started. In this case, then
you need
> to remember NoGoods for all the previous restarts in ng.
>
> However, thinking about it more, it seems to make more sense that you use
the
> same master space (s) in all the restarts of a search; in this case ng
would only
> need to be the NoGoods in the single "pass" since the last restart,
because all
> the previous NoGoods would already be posted to s by previous calls to
> master().
>
> If a different search is done after this, as I suggested previously, then
you have a
> different master space s from the previous search.
>
> Cheers,
>
> Kish
>
More information about the users
mailing list


Terry P Martinez
Democrat
Currently I am a retired Educator - Was a teacher and Principal for 31 years in the Colorado Springs Schools - I currently am part time director for an arts nonprofit Concrete Couch, serve on the El Paso County Parks Advisory Board, the 4th Judicial Evaluation Committee and the Colorado Springs Law Enforcement Transparency and Accountability Commission.
Born and raised in the southern Colorado, Colorado Springs and Florence. I earned a BA in Chemistry from University or Northern Colorado with Teaching Certification. I also earned a MA in Educational Leadership from UCCS here in Colorado Springs. In addition to these formal degrees, I have training in a wide variety of decision making tools, collaboration strategies, and team facilitation through my tenure as a Principal.
80904
I was a candidate for the State House of Rep in 2018, but lost in the Primary. I was also a candidate for Colorado Springs City Council in Spring of 2019, but came up short as well. I regularly contribute to a variety of candidates and causes, including the Colorado Democratic Party, The committee to elect Joe Biden, and a variety of other statewide candidates.
I have been member of NAACP, Sierra Club, 350Colorado, the El Paso County Democrats, New Life Downtown Church, the El Paso County Parks Advisory Board, the 4th Judicial District Evaluation Committee, and Colorado Springs Law Enforcement Transparency and Accountability Commission.
I was an Elementary Principal for 14 years and during that time I was responsible for training, hiring, strategic planning, budget decisions, grant writing and supervising 50+ staff members yearly. I have facilitated districtwide trainings, participated in public forums and debates as a candidate.
Our democracy depends on fair and competitive voting maps. It is our jobs to make sure that our congressional districts are competitive as that will provide the best representation for the people who live in there.
I have worked through my career to develop consensus and decisions based on facts and data. Once consensus is decided, I will work tirelessly to make sure it is implemented and successful. As I said before my goal is to develop congressional districts that are as competitive as possible and represent the public not only in a general election, but also in primary decisions as well.
As a science devotee, decisions need to be made based on the best available data and facts. I am committed to delving into the problem, unpacking the mess, asking questions that can lead to relevant and productive conversations. I am fully committed to the best, fair, and balanced decision based on the available facts and data.
He/His


Udacity Reflection - Part 2
08 December 2016
What is grid based design?
Grid based design, is the design of a webpage based on ordering content based on an invisible grid that is across your webpage. This grid design is used in conjunction with the users natural eye flow of reading from left to right and top to bottom. Thinking of the page as a gird, when combined with understanding how a user is likely to look at a page helps designers and developers to organise content, and draw users to a certain section or sections of a page.
What’s all the hype about responsive webpages?
Responsive web design is vital given the wide range of devices users are using to browse the web. In the past developers’ would create a site specifically for desktop and another specifically for mobile - essentially they have built two separate sites. However, responsive sites allow developers to create one site that will dynamically adjust itself to provide the user the best experience regardless of what device they are using to view the page.
What is semantic structure?
Semantic structure is the use of html tags that make sense to both the web browser and to and people who are reading them. They are tags such as <h1> for heading, <nav> for navigation or <img> for image.
Any other points you found interesting and want to reflect on.
Having spent 3 years working for an agency that specialises in mobile marketing, advertising and development it was constantly surprising how little clients cared about their mobile site or mobile strategy, despite the fact that mobile users were counting for an increasing amount of traffic to their site. Making sure your websites are responsive is vitally important as it provides users with the best user experience and so I found the grid system and it all comes together to be really interesting. I think that it is great that responsive design and the importance of mobile is being taught and emphasized so early on in this course!


Bachelor of Science - Computer Science
Bachelor of Arts - Religious Studies
New Haven, CT
Class of 2020
Coursework: Natural Language Processing, Algorithms, Data Structures & Programming Techniques, Linear Algebra & Matrix Theory, Discrete Mathematics, Ordinary & Partial Differential Equations
Coursework: Mobile Software Development
Budapest, Hungary
June 2017 - July 2017
Evanston, IL
Class of 2016
Develop a year-long computer science curriculum applicable for students in grades 5 – 8 focused on teaching programming fundamentals that culminates in a final project.
New Haven, CT
January 2018 - Present
Organized a computer science project fair for more than 120 students to showcase student progress after a year of the Code Haven curriculum.
Directed a conference that will guide more than 25 teachers from elementary and middle schools across Connecticut on how to introduce computer science and programming software into their classrooms.
Teach computer programming and Android app development (using MIT App Inventor) to more than 120 middle schoolers per year in New Haven middle schools.
Develop introduction to computer science learning activities for middle school students in summer programs at the Evanston Public Library. Contribute to the development of the new computer science teaching tool for the District 65 School District called Code65.
Evanston, IL
May 2018 - Present
Teach review sessions, host office hours, grade assignments, and mentor final projects for the Introduction to Computer Science and Introduction to Programming courses, as well as participate in teacher training workshops.
New Haven, CT
January 2018 - Present
Fabbri, A., Li, I., Trairatvorakul, P., He, Y., Ting, T., Tung, R., Westerfield, C., Radev, D. (2018) “TutorialBank: Using a Manually-Collected Corpus for Prerequisite Chains, Survey Extraction and Resource Recommendation.” Association for Computational Linguistics.
Yale University
Redesign translation software for a cross-lingual information retrieval system specifically for low-density and surprise languages, with training data in Swahili and Tagalog.
September 2017 - Present
Create and update the All About NLP (AAN) website interface and database with a focus on improving search queries through machine learning as part of a team of developers.
September 2017 - Present
Northwestern University
Used R to research mutations in the RAS pathway in Caenorhabditis elegans to determine possible sites of cancer in the equivalent human pathway.
September 2015 - July 2016
Chicago, IL
June 2018 - August 2018
Designed a website called Run-A-Way in a team during the Summer Academy of Code boot camp focused on web development using the Google Maps API that allows a user to map out a running route and view the route using Google Street View.
Los Angelos, CA
August 2017
New Haven, CT
Create pathways for women engineers at Yale to explore post-graduate opportunities by hosting professional development events and organizing group attendance at the National SWE conference.
April 2018 - Present
May 2017 - March 2018
New Haven, CT
Foster greater community among Yale women and gender minorities in the computer science major through workshops, social events, town hall meetings with professors, and company partnerships.
May 2018 - Present
May 2017 - April 2018
Founded first ever club at Evanston Township High School to encourage more girls to participate in higher level science courses and pursue careers in STEM.
Organized shadow days at Northwestern University, design competitions, monthly meetings, and tutoring programs for more than 150 club members.
WE18 – Society of Women Engineers National Conference, Speaker (upcoming)
Grace Hopper Women in Technology Conference 2018, Microsoft Diversity Conference Scholarship Recipient (upcoming)
WECode 2018 – Women in Computer Science Collegiate Conference, Yale Sponsored Attendee
WE17 – Society of Women Engineers National Conference, Yale Sponsored Attendee


Built by Chad Smith.
Python works by compiling your source code to "bytecode". Bytecode is its own set of operations (aka opcodes), such as LOAD_NAME, POP_TOP, etc. that are read and executed by CPython. Python does this by taking an opcode and running it through a giant switch statement that looks at the opcode and runs its action. This is the Python Virtual Machine. Since it's written in C, it can easily be compiled to multiple platforms. Thus, the bytecode can be run on any CPU that can build C code.


Streamline your company
Become an Airtable Master
Airtable Master® is an online course that teaches you the ins and outs of Airtable. You'll get to know the techniques used by professionals, how to use the power of the cloud for you remote processes, and even learn to write you own Airtable Scripts!
Please contact us per Email for any further questions about Airtable Masters.
<EMAIL_ADDRESS>Airtable Master 2021 Logo
The logo of Airtable Master 2021 was decided through the logo competition from 8. June to 7. July.
See the past Airtable Masters
Take a look at the las two Airtable Master Sessions.


Constantly learning web technologies. Love to design and read books. Writing my ideas on DEV.to
I'm a Web Developer. I use jQuery and Bootstrap for Front End, and MySQL and
Laravel for Back End Development.
For design, I use Photoshop, and Adobe Experience Design for prototyping.
I am always learning code in which I've received my FreeCodeCamp Front End Development Certificate . In my free time I work on my pet projects which you can either find at CodePen or GitLab .
Most experienced with MySQL, HTML, CSS, and JavaScript
Some experience with Java and PHP
Dabbled on C/C++, COBOL, Java (Android), and Assembly Language - TASM
Dev Techs: Git, Bootstrap 3 & 4, Laravel 5, Code Igniter 3, and jQuery
Design Tools: Adobe Photoshop, Illustrator and Adobe XD
Web Projects I've built using Bootstrap and Code Igniter
Wanna connect? Don't hesitate and let's talk. You can also email me at<EMAIL_ADDRESS>Web Developer
I'm 21 years old and currently living in the
Philippines.
A FCC camper and an Information Technology Student.
In my free time, you can either find me working on my
personal projects learning
web technologies, designing
or reading books. I also write my ideas on
DEV.to


WickedCSS animations
Examples
Github
How to use?
Download
Examples
Github
How to use?
Download
Let's see them in action!

Add class .spinner
Maybe a meditating chill Buddha?
Add class .rotation
A cat making that parkour barrelRoll?
Add class .barrelRoll
A simple pulse?
Add class .pulse
A solid shake?
Add class .shake
That beat though?
Add class .pulsating
Play the ball as it lies!
Add class .rollerRight or .rollerLeft
swiggity swooty, I'm coming for that...
Add class .sideToSide
Are we there yet?
Yup. Slap that bass today.
Download


The Aiel broke camp early and were away from Rhuidean while the not-yet-risen sun still sharply silhouetted the far mountains. In three parties they wound around Chaendaer, down onto rough flats broken by hills and tall stone spires and flat-topped buttes, gray and brown and every hue between, some streaked with long swirls in shades of red and ocher. Occasionally a great natural arch loomed as they moved north and west, or strange, huge slabs of rock balanced improbably, forever on the brink of falling. Every way Rand looked, jagged mountains reared in the distance. All the wreckage of the Breaking of the World seemed gathered here in the place called the Aiel Waste. Where the hard ground was not cracked clay, yellow or brown or something between, it was stony and stark, and everywhere split by dry gulleys and hollows. The scattered vegetation was sparse and low, thorny bushes and leafless things with spines; the few blossoms, white, or red, or yellow, were startling in their isolation. Occasionally stretches of tough grass covered the ground, and rarely, there was a stunted tree also likely to have thorns or spines. Compared to Chaendaer and the valley of Rhuidean, it almost looked lush. The air was so clear, the land so barren, it seemed Rand could see for miles and miles.
That air was no less dry, though, the heat no less relentless, with the sun a lump of molten gold high in a cloudless sky. Rand had wrapped a shoufa around his head in an effort to keep the sun off, and drank from the waterbag on Jeade’en’s saddle frequently. Oddly, wearing his coat seemed to help; he did not sweat any less, but his shirt stayed damp beneath the red wool, cooling him somewhat.
Four hundred or so Jindo comprised their party; Rand and Mat rode at the front alongside Rhuarc and Heirn. The Aiel walked, of course, their tents and some of the booty from Tear on pack mules and horses. A number of the Jindo Maidens fanned ahead as scouts, and Stone Dogs trailed behind as a rear guard, with the main column hedged by watchful eyes, ready spears, and bows with arrows nocked. Supposedly the Peace of Rhuidean extended until those who had gone to Chaendaer returned to their own holds, but as Rhuarc explained to Rand, mistakes had been known to happen, and apologies and bloodprice did not bring the dead out of their graves. Rhuarc seemed to think a mistake especially likely this time, certainly in part because of the Shaido party.
The lands of the Shaido clan lay beyond those of the Jindo’s Taardad, in the same direction from Chaendaer, and they paralleled the Jindo some quarter of a mile distant. According to Rhuarc, Couladin should have waited another day for his brother to return. That Rand had seen Muradin after he had plucked out his own eyes made no difference; ten days was the time allotted. To leave sooner was to abandon whoever had entered Rhuidean. Yet Couladin had set the Shaido to folding their tents as soon as he saw the Jindo pack animals being loaded. The Shaido moved along now with their own scouts and rear guard, seemingly ignoring the Jindo, but the space between never widened much beyond three hundred paces. It was usual to have witnesses from perhaps half a dozen of the larger septs when a man sought the marking of a clan chief. Couladin’s people outnumbered the Jindo by at least two to one. Rand suspected that the third party, halfway between Shaido and Taardad, was the reason the interval did not narrow suddenly and violently.
The Wise Ones walked just like all the other Aiel, including those strange, white-robed men and women Rhuarc called gai’shain, who led their packhorses. Not servants, exactly, but Rand was unsure he really understood Rhuarc’s explanation about honor and obligation and captives; Heirn had been even more confusing, as though making an effort to explain why water was wet. Moiraine, Egwene and Lan rode with the Wise Ones, or at least the two women did. The Warder had his warhorse a little off on the side of the Shaido, watching them as closely as he did the rugged landscape. Sometimes Moiraine or Egwene or both got down to walk awhile, talking with the Wise Ones. Rand would have given his last penny to hear what they said. They looked in his direction often, quick glances that he was doubtless not supposed to notice. For some reason, Egwene was wearing her hair in two braids, plaited with lengths of red ribbon, like a bride’s. He did not know why. He had commented on them before leaving Chaendaer—just mentioned them—and she nearly took his head off.
“Elayne is the woman for you.”
He looked down at Aviendha in confusion. The challenging look was back in her blue-green eyes, but still layered atop stark dislike. She had been waiting outside the tent when he awoke that morning, and had not strayed more than three paces from him since. Clearly the Wise Ones had set her to spy, and clearly he was not supposed to realize it. She was pretty, and he was assumed to be fool enough not to see beyond that. No doubt that was the real reason she wore skirts now, and carried no weapon beyond a small beltknife. Women seemed to think men were simple-minded. Come to think of it, none of the other Aiel had commented at her change of clothing, but even Rhuarc avoided looking at her for too long. Probably they knew why she was there, or had some inkling of the Wise Ones’ plan, and did not want to speak of it.
Rhuidean. He still did not know why she had gone; Rhuarc muttered about “women’s business,” plainly reluctant to discuss it around her. Considering the way she clung to Rand’s side, that meant not discussing it at all. The clan chief was certainly listening now, and Heirn, and every Jindo in earshot. It was hard to tell with Aiel, sometimes, but he thought they looked amused. Mat was whistling softly, ostentatiously looking at anything but the two of them. Even so, this was the first time all day she had spoken to him.
“What do you mean?” he asked.
Her bulky skirts did not hinder her, walking along beside Jeade’en. No, not walking. Stalking. If she were a cat, she would be lashing her tail. “Elayne is a wetlander, your own kind.”  The short tail that Aiel warriors wore at the nape of the neck was missing. The folded scarf around her temples nearly enveloped her hair. “Exactly the woman for you. Is she not beautiful? Her back is straight, her limbs supple and strong, her lips like plump love-apples. Her hair is spun gold, her eyes blue sapphires. Her skin is smoother than the finest silk, her bosom fine and well-rounded. Her hips are—”
He cut her off frantically, his cheeks heating. “I know she’s pretty. What are you doing?”
“I am describing her.” Aviendha frowned up him. “Have you seen her in her bath? There is no need for me to describe her if you have seen—”
“I have not seen!” He wished he did not sound strangled. Rhuarc and the others were listening, faces too blank for anything but amusement. Mat rolled his eyes with an open, roguish grin.
The woman only shrugged and rearranged her shawl. “She should have arranged it. But I have seen her, and I will act as her near sister.” The emphasis seemed to say his “near sister” might have done the same; Aiel customs were strange, but this was mad! “Her hips—”
“Stop that!”
She gave him a sideways glare. “She is the woman for you. Elayne has laid her heart at your feet for a bridal wreath. Do you think there was anyone in the Stone of Tear who does not know?”
“I do not want to talk about Elayne,” he told her firmly. Certainly not if she meant to go on as she had begun. The thought made his face go hot again. The woman did not seem to care what she said, or who heard!
“You do well to blush, putting her aside when she has bared her heart to you.” Aviendha’s voice was hard and contemptuous. “Two letters she wrote, baring all as if she had stripped herself beneath your mother’s roof. You entice her into corners for kisses, then reject her. She meant every word of those letters, Rand al’Thor! Egwene told me so. She meant every word. What do you mean toward her, wetlander?”
Rand scrubbed a hand through his hair, and had to rearrange his shoufa. Elayne meant every word? In both letters? That was flat impossible. One contradicted the other nearly point for point! Suddenly he gave a start. Egwene had told her? About Elayne’s letters? Did women discuss these things among themselves? Did they plan out between them how best to confuse a man?
 Well, not more than once or twice. And she had never insulted him. Well, she had called him “sheepherder” a few times. But he felt comfortable around her, warm, in a strange way.
His silence seemed to irritate the Aiel woman more, if such was possible. Muttering to herself, striding along as though she wanted to trample something, she adjusted and readjusted her shawl half a dozen times. Finally her grumbling faded away. Instead, she began staring at him. Like a vulture. He could not see how she did not trip and fall on her face.
“Why are you looking at me like that?” he demanded.
“I am listening, Rand al’Thor, since you wish me to be silent.” She smiled around gritted teeth. “Do you not enjoy having me listen to you?”
He glanced beyond her at Mat, who shook his head. There was just no understanding women. Rand tried to set himself to considering what lay ahead, but it was difficult with the woman’s eyes on him. Pretty eyes, if they had not been full of spite, but he did wish she would look at something else.
Shading his eyes against the sun’s glare, Mat did his best to avoid looking at Rand and the Aiel woman striding along between their horses. He could not understand why Rand put up with her. Aviendha was pretty enough, to be sure—more than just pretty, especially now she wore a semblance of proper clothes—but with a viper for a tongue and a temper to make Nynaeve look meek. He was just glad Rand was stuck with her and not him.
 The heat and the eternal sun in his eyes were beginning to get to him. Was there no such thing as shade in this whole land? Sweat stung his wounds. He had refused Healing the night before, when Moiraine wakened him after he had finally gotten to sleep. A few cuts were a small price to avoid having the Power used on you, and the Wise Ones’ filthy-tasting tea had settled his headache. Well, after a fashion, anyway. What else ailed him, he did not think Moiraine could do anything about, and he had no intention of telling her until he understood it himself. If then. He didn’t even want to think of it.
Moiraine and the Wise Ones were watching him. Watching Rand, actually, he supposed, but it felt the same. Surprisingly, the sun-haired one, Melaine, had climbed up on Aldieb behind the Aes Sedai, riding awkwardly and holding Moiraine around the waist as they talked. He had not known Aiel would ride at all. A very pretty woman, Melaine, with those fiery green eyes. Except, of course, that she could channel.  Shifting in Pips’s saddle, he reminded himself that it did not matter to him what Aiel did.
I’ve been to Rhuidean. I’ve done what those snake folk said I had to. And what did he have to show for it?  I could go now. If I have any sense, I will.
He could go. Try to find his own way out of the Waste before he died of thirst or sunstroke. He could if Rand was not still pulling at him, holding him. The easiest manner of finding out was just to try leaving. Looking at the bleak landscape, he grimaced. A wind picked up—it felt as if it blew across an overheated cookstove—and small whirlwinds spun funnels of yellow dust across the cracked ground. Heat-haze made the distant mountains shimmer. Maybe it was best to stay around a while longer.
One of the Maidens who had been scouting ahead came trotting back and fell in beside Rhuarc, speaking for his ear alone. She flashed Mat a grin when she was done, and he busied himself picking a sharp burr out of Pips’s mane. He remembered her all too well, a red-haired woman named Dorindha, about Egwene’s age. Dorindha was one of those who had talked him into trying Maidens’ Kiss. She had collected the first forfeit. It was not that he did not want to meet her eyes, certainly not that he could not; keeping your horse free of burrs and the like was important.
“Peddlers,” Rhuarc announced when Dorindha sprinted off the way she had come. “Peddlers’ wagons, heading in this direction.” He did not sound pleased.
Mat brightened considerably, though. A peddler might be just the thing. If the fellow knew the way in, he knew the way out. He wondered if Rand suspected what he was thinking; the man had gone as blank faced as any of the Aiel.
The Aiel picked up their pace a little—Couladin’s people imitated the Jindo and the Wise Ones’ party with hardly a hesitation; their own scouts had probably brought word, too—a quick enough step that the horses had to maintain a brisk walk. The sun did not bother the Aiel at all, not even the gai’shain in their white robes. They flowed over the broken ground.
Less than two miles brought the wagons in sight, a dozen and a half of them, strung out in a line. All showed the wear of hard travel, with spare wheels lashed everywhere. Despite a coat of yellow dust, the first two looked like white-painted boxes on wheels, or little houses, complete with wooden steps at the back and a metal stove-chimney sticking through the roof. The last three, drawn by twenty-mule hitches, appeared no more than huge barrels, also white, doubtless full of water. Those in between could have done for peddlers’ wagons in the Two Rivers, with high stout-spoked wheels and clanking clusters of pots and things in big net bags tied all along the tall round canvas covers.
The wagondrivers drew rein as soon as they spotted the Aiel, waiting for the columns to come to them. A heavy man in a pale gray coat and dark, wide-brimmed hat climbed down from the back of the lead wagon and stood watching, now and then taking off his flat-crowned hat to wipe his forehead with a large white handkerchief. If he was nervous, looking at maybe fifteen hundred Aiel sweeping toward him, Mat could not blame him. The strange thing was the expressions on the Aiel nearest Mat. Rhuarc, trotting ahead of Rand’s horse, looked grim, and Heirn wore a face that could break rocks.
“I don’t understand,” Mat said.  That would certainly put paid to his hopes. “I thought there were three kinds of people you Aiel let come out here in the Waste; peddlers, gleemen, and the Traveling People.”
“Peddlers and gleemen are welcome,” Heirn replied curtly. If this was a welcome, Mat did not want to see Aiel being unwelcoming.
“What about the Traveling People?” he asked curiously. When Heirn kept silent, he added, “Tinkers? The Tuatha’an?”
Rand drew Jeade’en close to Pips. “I’d not mention Tinkers to the Aiel if I were you,” he said in a low voice.  Why would Tinkers be a touchy subject? “Looks to me like they’re being touchy enough about this peddler. Peddler! I can remember merchants who came to Emond’s Field with fewer wagons.”
“He came into the Waste,” Rand chuckled. Jeade’en tossed his head and danced a few steps. “I wonder if he will leave it again?” Rand’s twisted grin did not reach his eyes. Sometimes Mat almost wished Rand would decide whether he was mad or not and get, it over with. Almost.
Three hundred paces short of the wagons, Rhuarc signaled a halt, and he and Heirn went on alone. At least, that seemed to have been his intention, but Rand heeled his dapple stallion after them, and the inevitable bodyguard of a hundred Jindo followed. And Aviendha, of course, keeping close as though tied to Rand’s horse. Mat rode right with them. If Rhuarc sent this fellow packing, he did not mean to miss his chance to go along.
Couladin came trotting out from the Shaido. Alone. Perhaps he meant to do as Rhuarc and Heirn had intended, but Mat suspected the man was pointing out that he went alone where Rand needed a hundred guards. At first it seemed Moiraine was coming, too, but words passed between the Wise Ones and her, and they all stayed where they were. Watching, though. The Aes Sedai dismounted, playing with something small that sparkled, and Egwene and the Wise Ones clustered around her.
Despite his face mopping, the big, gray-coated fellow did not appear uneasy up close, although he jumped when Maidens suddenly rose out of the ground, encircling his wagons. The wagon drivers, hard-faced men with more than enough scars and broken noses to go around, looked ready to crawl under their seats; they were tough alley dogs compared to Aiel wolves. The peddler recovered right away. He was not fat for all his size; that heaviness was muscle. Rand and Mat on their horses earned his curious glances, but he singled out Rhuarc at once.  “I am Hadnan Kadere,” he said, “peddler. I seek Cold Rocks Hold, good sirs, but I will trade with one and all. I have many fine—”
Rhuarc cut him off like an icy knife. “You head well away from Cold Rocks, or any hold. How is it you have come this far from the Dragonwall without acquiring a guide?”
“I do not really know, good sir.” Kadere did not lose his smile, but the comers of his mouth tightened a trifle. “I have traveled openly. This is my first visit to the Threefold Land so far south. I thought perhaps here there are no guides.” Couladin snorted loudly, twirled one of his spears lazily. Kadere hunched his shoulders as if he felt steel sliding into his thick body already.
“There are always guides,” Rhuarc said coldly. “You have luck to have come so far without one. Luck that you are not dead, or walking back to the Dragonwall in your skin.” Kadere flashed an uneasy, toothy smile, and the clan Chief went on. “Luck to meet us. Had you continued this way another day or two, you would have reached Rhuidean.”
The peddler’s face went gray. “I have heard . . . ” He stopped to swallow. “I did not know, good sirs. You must believe, I would not do such a thing deliberately. Nor by accident,” he added hastily. “The Light illumine my words for truth, good sirs, I would not!”
“That is well,” Rhuarc told him. “The penalties are severe. You may travel with me to Cold Rocks. It would not do for you to become lost again. The Three-fold Land can be a dangerous place for those who do not know it.”
Couladin’s head came up defiantly. “Why not with me?” he said in a sharp voice. “The Shaido are the more numerous here, Rhuarc. By custom, he travels with me.”
“Have you become a clan chief when I did not see?” The fire-haired Shaido flushed, but Rhuarc showed no hint of satisfaction, only went on in that level voice. “The peddler seeks Cold Rocks. He will journey with me. The Shaido with you may trade with him as we travel. The Taardad are not so starved for peddlers that we try to keep them to ourselves.”
Couladin’s face went even darker, yet he moderated his tone, even if it did creak with the effort. “I will camp near Cold Rocks, Rhuarc. He Who Comes With the Dawn concerns all Aiel, not only the Taardad. The Shaido will have their proper place. The Shaido, too, will follow He Who Comes With the Dawn.” He had not, Mat realized, acknowledged that that was Rand. Peering at the wagons, Rand did not seem to be listening.
Rhuarc was silent a moment. “The Shaido will be welcome guests in the lands of the Taardad, if they come to follow He Who Comes With the Dawn.” And that could be taken two ways, as well.
Kadere had been mopping his face all this time, likely seeing himself in the middle of a battle between Aiel. He punctuated Rhuarc’s invitation with a heavy sigh of relief. “Thank you, good sirs. Thank you.” Probably for not killing him. “Perhaps you would care to see what my wagons have to offer? Some special thing you might like?”
“Later,” Rhuarc said. “We will stop at Imre Stand for the night, and you may show your wares then.” Couladin was already striding away, having heard the name of Imre Stand, whatever that was. Kadere started to put his hat back on.
“A hat,” Mat said, reining Pips closer to the peddler. If he had to remain in the Waste a bit longer, at least he could keep that bloody sun out of his eyes.
Mat looked around, and gave a start. The only woman in sight beside Aviendha and the Maidens was walking up from the second wagon, but she certainly did not match that voice, one of the loveliest he had ever heard. Rand frowned at her and shook his head, and he had cause. A foot shorter than Kadere, she must have weighed as much or more. Rolls of fat nearly hid her dark eyes, disguising whether they were tilted or not, but her nose was a hatchet that dwarfed the peddler’s. In a dress of pale-cream silk stretched tight around her bulk, with a white lace shawl held above her bead on elaborate ivory combs thrust into long, coarse black hair, she moved with incongruous lightness, almost like one of the Maidens.
“A good offer,” she said in those musical tones. “I am Keille Shaogi, peddler.” She snatched the hat away from Kadere and thrust it up at Mat. “Stout, good sir, and nearly new. You will need its like to survive the Three-fold Land.   Her sudden laugh had the same throaty, caressing quality as her voice. “Or a woman. A gold mark, you said.” When he hesitated, her half-buried eyes glittered raven black. “I seldom offer any man a bargain twice.”
A peculiar woman to say the least. Kadere made no protest beyond the slightest grimace. If Keille was his partner, there was no doubt who was the senior. And if the hat kept Mat’s head from broiling, it really was worth the price so far as he was concerned. She bit the Tairen mark he handed her before releasing the hat. For a wonder, it fit. And if it was no cooler under that wide brim, at least it was blessedly shady. The kerchief went into his coat pocket.
“Anything for the rest of you?” The stout woman ran her eye over the Aiel, murmuring, “What a pretty child” to Aviendha with a baring of teeth that might have been a smile. To Rand, she said sweetly, “And you, good sir?” That voice coming out of that face was truly jarring, especially when it took on this honeyed tone. “Something to shelter you from this desperate land?” Turning Jeade’en so he could peer at the wagon drivers, Rand only shook his head. With that shoufa around his face, he really did look like an Aiel.
“Tonight, Keille,” Kadere said. “We open trade tonight, at a place called Imre Stand.”
“Do we, now.” For a long moment she peered at the Shaido column, and at the Wise Ones’ party for a longer. Abruptly she turned for her own wagon, saying over her shoulder to the other peddler, “Then why are you keeping these good sirs standing here? Move, Kadere. Move.”
Rand stared after her, shaking his head again.
There was a gleeman back by her wagon. Mat blinked, thinking the heat had gotten to him, but the fellow did not vanish, a dark-haired man in his middle years wearing a patch-covered cloak. He watched the gathering apprehensively until Keille shoved him up the wagon’s step ahead of her. Kadere looked at her white wagon with less expression than one of the Aiel before stalking off to his own. Truly an odd lot.
“Did you see the gleeman?” Mat asked Rand, who nodded vaguely, eyeing the line of wagons as if he had never seen a wagon before. Rhuarc and Heirn were already on their way back to the rest of the Jindo. The hundred surrounding Rand waited patiently, dividing their gaze between him and anything that might hide even a mouse. The drivers began gathering their reins, but Rand did not move. “Strange people these peddlers, wouldn’t you say, Rand? But I suppose you have to be strange to come to the Waste. Look at us.” That brought a grimace from Aviendha, but Rand seemed not to have heard. Mat wanted him to say something. Anything. This silence was unnerving. “Would you have thought escorting a peddler would be such an honor Rhuarc and Couladin would argue over it? Do you understand any of this ji’e’toh?”
“You are a fool,” Aviendha muttered. “It had nothing to do with ji’e’toh. Couladin tries to behave as a clan chief. Rhuarc cannot allow that until—unless—he has gone to Rhuidean. The Shaido would steal bones from a dog—they would steal the bones and the dog—yet even they deserve a true chief. And because of Rand al’Thor we must allow a thousand of them to pitch their tents in our lands.”
“His eyes,” Rand said without looking away from the wagons. “A dangerous man.”
Mat frowned at him. “Whose eyes? Couladin’s?”
“Kadere’s eyes. All that sweating, going white in the face. Yet his eyes never changed. You always have to watch the eyes. Not what he seems.”
“Sure, Rand.” Mat shifted in his saddle, half lifted his reins as if to ride on. Maybe silence had not been so bad. “You have to watch the eyes.”
Rand changed his study to the tops of the nearest spires and buttes, twisting his head this way and that. “Time is the risk,” he murmured. “Time sets snares. I have to avoid theirs while setting mine.”
There was nothing up there that Mat could make out beyond an occasional scattering of brush and now and then a stunted tree. Aviendha frowned at the heights, then at Rand, adjusting her shawl. “Snares?” Mat said. Light, let him give me an answer that isn’t crazy. “Who’s setting snares?”
For a moment Rand looked at him as if he did not understand the question. The peddlers’ wagons were starting off with an escort of Maidens loping alongside, turning to follow the Jindo as they trotted past, mirrored by the Shaido. More Maidens sped ahead to scout. Only the Aiel around Rand stood still, though the Wise Ones’ party dawdled and watched, and from Egwene’s gestures, Mat thought she wanted to come check on them.
“You can’t see it, or feel it,” Rand said finally. Leaning a little toward Mat, he whispered loudly, as though pretending. “We ride with evil now, Mat. Watch yourself.” He wore that twisted grin again, as he watched the wagons lumber by.
“You think this Kadere is evil?”
“A dangerous man, Mat—the eyes always give it away—yet who can say? But what cause have I to worry, with Moiraine and the Wise Ones watching out for me? And we mustn’t forget Lanfear. Has any man ever been under so many watchful eyes?” Abruptly Rand straightened in his saddle. “It has begun,” be said quietly. “Wish that I have your luck, Mat. It has begun, and there is no turning back, now, however the blade falls.” Nodding to himself, he started his dapple after Rhuarc, Aviendha trotting alongside, the hundred Jindo following.
Mat was glad enough to follow too. Better than being left there, certainly. The sun burned high in a stark blue sky. There was a lot of traveling yet to be done before sunset. It had begun? What did he mean, it had begun? It had begun in Rhuidean; or better, in Emond’s Field on Winternight a year gone. “Riding with evil” and “no turning back”? And Lanfear? Rand was walking the razor’s edge, now. No doubt about it. There had to be a way out of the Waste before it was too late. From time to time Mat studied the peddlers’ wagons. Before it was too late. If it was not already.


Hi! my name is Ophir and I am a web developer.
My mission is to create beautiful and useful websites and web applications.


Calculation of ratios between two data sets containing environmental data like element concentrations by different methods. Additionally plant element concentrations can be corrected for adhering particles (soil, airborne dust).
| Version: | 1.2.0 |
| Depends: | R (≥ 2.10) |
| Imports: | stringr, data.table |
| Published: | 2018-02-18 |
| Author: | Solveig Pospiech [aut, cre], Wiebke Fahlbusch [ctb] |
| Maintainer: | Solveig Pospiech <s.pospiech at gmx.de> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | ratios results |
| Reference manual: | ratios.pdf |
| Package source: | ratios_1.2.0.tar.gz |
| Windows binaries: | r-devel: ratios_1.2.0.zip, r-release: ratios_1.2.0.zip, r-oldrel: ratios_1.2.0.zip |
| OS X binaries: | r-release: ratios_1.2.0.tgz, r-oldrel: ratios_1.2.0.tgz |
| Old sources: | ratios archive |
Please use the canonical form https://CRAN.R-project.org/package=ratios to link to this page.


Moon holding out hope that Japan-South Korea intel-sharing pact can be saved
SEOUL – South Korean President Moon Jae-in on Tuesday said he still has slim hopes that a military intelligence-sharing pact with Japan can be saved before it expires Saturday, saying Seoul will exert efforts to prevent that from happening.
Appearing on television for a question-and-answer session, Moon said South Korea will seek to settle the issue of the General Security of Military Information Agreement until the very last minute.
But even if the issue cannot be settled, he said, South Korea and Japan would still be able to cooperate on security matters.
Tokyo and Washington have both urged Seoul to reconsider its decision to end the three-year-old pact, as they are concerned about a possible weakening of the trilateral security cooperation.
The accord is mainly aimed at countering the North Korean nuclear and missile threat and facilitating three-way defense cooperation with the United States.
It had been automatically renewed annually since it was signed on Nov. 23, 2016, and was due to be extended until Seoul decided to abandon it.
Seoul insists it will only reconsider its August decision to scrap the agreement if Tokyo first reverses its move earlier this year to tighten controls on exports of some materials needed by South Korean manufacturers of semiconductors and display panels.
GET THE BEST OF THE JAPAN TIMES
IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


Neely's Notes
Posts
Third Post: HTML & CSS Trials
February 20th, 2015
Second Post: Doling Out Judgment based on Dieter Rams's Principles of Good Design
February 4th, 2015
First Post: Being Mobile First:Length units
May 17th, 2014


HELP WANTED !!
(You can
search any file or page on this web site by following the steps found by
clicking on Search.)
The Monroe County Chapter of the Ohio
Genealogical Society (MCC of OGS) is a very busy and exciting place! And, we
love it!! We would like to be even busier because the more that we can
accomplish the more resources will be available for our members and visitors.
We need your help!
One of the major benefits of being a member
of MCC of OGS is that by working together we can accomplish so much more than
as individual researchers. Everyone benefits. Just imagine how little progress
would be made if we each had to do ALL of the basic research to construct our family
trees. But, with each of us pooling the information we find and sharing such
efforts as compiling facts, taking inventory of cemeteries local to us,
compiling surname lists, sharing family tree documents, and such, our search is
much easier and a lot more fun.
All of these tasks can be a lot of fun;
particularly, when we work together. Almost any of us can choose the area we
would like to play in and the way we go about it. Some of us like to work in
groups -- some prefer to work separately. There is something for everyone.
You do not need a computer to help. For some
jobs it is a big help; for others it is not. But, for much of he original
research it is not necessary. Also, you do not have to live in Monroe County to
participate. You do not even have to live in the USA. Many of the projects can
be done anywhere -- many without ever leaving your own home.
In the list below, several activities have
been identified and the kinds of help needed is discussed. If you see something
that you can do or that particularly interests you, please volunteer. At the
moment we have a lot of things that we are trying to accomplish and very few
volunteers to make them happen. Really, it is a lot of fun and EVERYONE can
help. Please look over the list below and pick one or several things that you
would like to do. Give Karen Romick a call at (phone:<PHONE_NUMBER>),
drop her a letter or post card at the Monroe County Genealogical Society, P.O. Box
641, Woodsfield, OH 43793-0641, or
send her an e-mail at Karen Romick.
Tell her what you would like to work on and how you would like to help. Karen
would love to work with you.
One more thing -- the project that you are
interested in doing or the thing that needs to be done may not be on the list
below. If you think of something that should be done and that would contribute
to the body of information and tools of the Chapter, suggest it. Just remember
that you may be the best qualified to define the specific project that you wish
to undertake. This is particularly true when it comes to the things you know
best -- your own family; the history of the area where you live; the cemeteries
near your home; and the things that relate to your work.
Go ahead! Take the plunge -- contact Karen.
You will not regret it. Karen can tell you if a new project has been done
before or if there are others who would like to work in a particular area. She
can also suggest ways in which your assistance can be applied.
One point should be made before you start
looking through the several interesting projects below. In almost all of the
activities, Karen Romick is identified as the first contact point that you
should make. Obviously, Karen can not manage so many projects by herself. But,
as the MCC of OGS president, she is in the best position to put you in contact
with someone knowledgeable of the project. Also, if there is no lead person for
the project and you would be interested in being that person, please let Karen
know. You will probably get the job.
Below is a list of activities that are in
need of your help. Please look them over and choose one or more to work on.
LIST
OF THINGS FOR WHICH HELP IS DESPERATELY NEEDED
Volunteers needed for the
Monroe County Fair, 2002 -- Each year the Monroe County Chapter, OGS, sponsors a booth at the
Monroe County Fair during the month of August. We will be handing out
literature and also selling our publications. We are in need of volunteers who
will be willing to operate the booth. If you can help out for an afternoon, an
evening or a day, please let us know. Call Karen at<PHONE_NUMBER> or e-mail Karen Romick.
Computerize Inventory of the Research Room -- There is a need to prepare a computerized inventory of the contents of the MCC of OGS library or Research Room. The contents of the Research Room has already been inventoried and the resulting card catalog has been maintained up-to-date. The task of converting this card catalog to a computerized inventory involves typing the names of all of the books and documents that are there onto a computer disk. The task can be interrupted as necessary and completed as time may be available.
Inventory a
Cemetery -- One
of the important long term projects that the MCC of OGS has underway is the
location and inventory of all of the cemeteries in Monroe County. At present
220 private and public cemeteries have been identified. Perhaps 60% of these
have been inventoried to date and about 30% have been published. Publication is
proceeding and the rate of publication is currently controlled by the funds
available. This task of inventorying cemeteries is an opportunity to get
outdoors and enjoy the season while doing a very important job of preparing an
inventory of the cemetery monuments. The task requires visiting the cemetery of
your choice (coordinate with Karen Romick to avoid duplicating the work of
someone else) with a notebook and pen and recording the names, dates and any
other pertinent information from each monument. The name of the cemetery and
good directions for reaching it is also needed. The resulting list needs to be
eventually typed onto a computer by either the person making the inventory or
at a later date by someone else. Eventually, the results will be published and
credit given to the participants who implemented the task. There is
considerable experience within the Chapter with the best ways of conducting
this task, so contact Karen Romick to schedule a cemetery and to get any
assistance that might be available.
Maintaining
the MCC of OGS web site -- The
MCC of OGS has constructed and sponsors a major Internet web site as one of its
principle methods of communication with the members and the public in general.
This site can be accessed at: http://www.rootsweb.com/~ohmccogs/
. While the business of the MCC of OGS is fairly stable, from time-to-time
there is a need to change things that appear on the site. Changes of such
things as the current news items, meeting schedules, status of certain
projects, new items to be added and updated, etc. needs to be made
periodically. The task is primarily that of the webmaster for the site. This is
a fun job that does not require a computer jock to do. Some general knowledge
about the workings of a computer and a little experience with web sites are all
that is needed. Contact Karen Romick if you are interested in assisting with this
task.
Preserving
Church Records in Monroe County Churches -- Church records have been one of the major sources
of genealogical information over the centuries. The records of three German
that spanned the period between 1831 and 1948 that were translated by Dr.
Shirley Harmon and published in 2000 under the title, "Monroe County Church Records: Nineteenth Century Records of
Lewisville, Middle (St. John s) and Miltonsburg (St. Peter s) German
Evangelical Protestant Churches" are examples of the potential value of such records.
The MCC of OGS has initiated a long term project to try to locate and preserve
as many such records as possible. This is a project that is in need of a lead
person to help develop a plan for the effort. It is also an opportunity for
several volunteers who would work with the churches to locate and preserve
records in a way that meets the needs of the church and the project. Volunteers
may wish to limit their effort to only their own church or may choose to
operate on a wider basis. This could be an unusually exciting project with many
rewarding outcomes. Contact Karen Romick if this activity appeals to you at any
level.
Monroe
County Births, Deaths, Marriages, and Other Key Records -- One of the most arduous tasks in genealogy research
is that of plowing through a maze of Probate Court and Health Department
records in search of that specific ancestor or family line. It can be fun and
exciting but it is labor intensive and frequently uncertain. A slight loss of
concentration can cause an oversight of an important record or entry. Yet this
process is repeated many times each year as new researchers trod the same path,
looking through the same records and making the same mistakes as hundreds of others
before them. One of the major impacts of the records being searched by so many
people is the unfortunate damage and destruction to the documents themselves.
This is a task ideally suited for the
computer. Once the records are placed into the computer memory, highly accurate
searches can be done in a matter of a few seconds. Because of the ability of
the computer to find accurately locate all entries, the search is much more
conducive to discovering siblings, aunts, uncles, and all sorts of kin.
The MCC of OGS has undertaken several
projects designed to computerize some of the most important Monroe County data
to the genealogy community. These include records of birth, death and marriage
in Monroe County, Ohio. About 50 years of marriage records have also been
privately transcribed and published by Wes Cochran. Much more help in this area
is needed.
This is one of those projects that can be
worked on as time is available. Further, since most of these records are also
available on microfilm, any volunteer with access to an LDS Family Research
Centers can participate.
One of the interesting things about this task
is that as the information is typed, the volunteer is treated to an impressive
exposure to information that generates surprising insight about the people and
places of the time. It is almost like being able to step back into time and
witness many of the people and relationships of the day.
If you can spare a few hours a month (more or
less) and would like to help with one of these important projects, please
contact Karen Romick.
Computerize
"Surname File" -- One of
the big successes of the MCC of OGS has been the ever-growing surname file.
Members and non-members can submit surnames for which they are doing research.
People searching for common surnames may be able to exchange information of
value to both searchers. In many cases the searchers are related and it becomes
a useful way to discover relatives they never knew they had.
At present there are two somewhat limited
ways to access these surname files. One is to come to the MCC of OGS Research
Room and physically search through the files. The other is to happen to see the
surname in an issue of the MCC of OGS newsletter, the Navigator.
One of the projects of the MCC of OGS is the
computerize the Surname File so that it can be computer searched. This will not
only make the information more widely available, it will allow for comparisons
to be made among the surnames and searchers so that it will be easier to find
potential relatives and sources of genealogical information.
Since the Surname File cards already have the
information in written form, the primary task it to transfer the information to
a computer disk. This is one of those tasks that can be divided among several
people. If you have almost any kind of computer and could type data from the
cards to a computer disk, please contact Karen Romick and arrange to help with
this important project.
Typing
Hand-written Information onto Computer Disks -- You will have noticed in the above projects that many
may be originally recorded as hand-written information. For some projects such
as the 'Cemetery Inventory" projects, it is almost essential that the
original data be gathered as hand-written material. To convert these
hand-written notes and data into publishable format it is essential that it be
typed onto computer disks.
If you have a compute and a little time to
devote, your help is urgently needed to help with the important task of
converting material to computer media. Please contact Karen Romick and
volunteer your support.
Look Ups -- One of the services that the MCC of OGS tries to
provide is to respond to requests for information by people who are remotely
located from the source of information or otherwise are not able to access it.
As the expert source of Monroe County, Ohio genealogy, requests are frequently
received that requires that someone be able to go to appropriate records for
the answers. This labor-of-love is very rewarding in terms of friends made and
the opportunities to help people otherwise unable to progress in their quest
for their lineage. Queries vary widely from requests from information from
records to looking for a grave in a specific cemetery.
While most of the look-up requests that the
Chapter receives are likely to be for information in the Monroe County area,
sometimes requests come in for information that is available only from places
remote from Monroe County. An example might be a request for a look-up at a
location in Missouri for information about a Monroe County family that moved to
Missouri a century ago. The point is that you can be a look-up even though you
may live in an area that is quite remote from Monroe County.
If you would be willing to be included on a
list of possible 'Look Ups' please let Karen Romick know. The Look-up list is
not published but is kept by the Chapter as a resource list. Being included on
such a list does not commit you to perform look-ups that you may not wish to
do.
Help maintain the Research
Room -- The Research Room receives many visitors each year. It
is operated and maintained by local volunteers. If you would like to help
maintain the MCC of OGS Research Room, please contact Karen Romick at:
Monroe County Genealogical Society
P.O. Box 641
Woodsfield, OH 43793-0641
or, Telephone us at:
(740) 483-1481, Karen
Romick
or, e-mail us at: Karen Romick
Click here for the Short-Cut Table of Contents


mustache
- Logic-less templates.
A typical Mustache template:
Hello {{name}}
You have just won {{value}} dollars!
{{#in_ca}}
Well, {{taxed_value}} dollars, after taxes.
{{/in_ca}}
Given the following hash:
{
"name": "Chris",
"value": 10000,
"taxed_value": 10000 - (10000 * 0.4),
"in_ca": true
}
Will produce the following:
Hello Chris
You have just won 10000 dollars!
Well, 6000.0 dollars, after taxes.
Mustache can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object.
We call it "logic-less" because there are no if statements, else clauses, or for loops. Instead there are only tags. Some tags are replaced with a value, some nothing, and others a series of values. This document explains the different types of Mustache tags.
The Mustache language has a formal specification. The current manpage reflects version 1.3.0 of the specification, including the official-but-optional extensions for lambdas and inheritance.
Tags are indicated by the double mustaches. {{person}}
is a tag, as
is {{#person}}
. In both examples, we'd refer to person
as the key
or tag key. Let's talk about the different types of tags.
The most basic tag type is the variable. A {{name}}
tag in a basic
template will try to find the name
key in the current context. If
there is no name
key, the parent contexts will be checked recursively.
If the top context is reached and the name
key is still not found,
nothing will be rendered.
All variables are HTML escaped by default. If you want to return raw contents
without escaping, use the triple mustache: {{{name}}}
.
You can also use &
to return its raw contents: {{& name}}
. This may be
useful when changing delimiters (see "Set Delimiter" below).
By default a variable "miss" returns an empty string. This can usually be configured in your Mustache library. The Ruby version of Mustache supports raising an exception in this situation, for instance.
Template:
* {{name}}
* {{age}}
* {{company}}
* {{{company}}}
Hash:
{
"name": "Chris",
"company": "GitHub"
}
Output:
* Chris
*
* GitHub
* GitHub
Dotted Names
If the name
contains dots, it is split on the dots to obtain multiple
keys. The first key is looked up in the context as described above. If it
is found, the next key is looked up within the previous result. This is
repeated until a key is not found or until the last key is found. The
final result is interpolated as above.
Template:
* {{client.name}}
* {{age}}
* {{client.company.name}}
* {{{company.name}}}
Hash:
{
"client": {
"name": "Chris & Friends",
"age": 50
},
"company": {
"name": "GitHub"
}
}
Output:
* Chris & Friends
*
*
* GitHub
Implicit Iterator
As a special case, if the name
consists of only a dot and nothing else,
the value that is the current context is interpolated as a whole. This
is especially useful if the parent context is a list; see Sections
below.
Template:
* {{.}}
Current context:
"Hello!"
Output:
* Hello!
Lambdas
If any value found during the lookup is a callable object, such as a function or lambda, this object will be invoked with zero arguments. The value that is returned is then used instead of the callable object itself.
An optional part of the specification states that if the final key in
the name
is a lambda that returns a string, then that string should be
rendered as a Mustache template before interpolation. It will be rendered
using the default delimiters (see Set Delimiter below) against the
current context.
Template:
* {{time.hour}}
* {{today}}
Hash:
{
"year": 1970,
"month": 1,
"day": 1,
"time": function() {
return {
"hour": 0,
"minute": 0,
"second": 0
}
},
"today": function() {
return "{{year}}-{{month}}-{{day}}"
}
}
Output:
* 0
* 1970-1-1
Sections render blocks of text zero or more times, depending on the value of the key in the current context.
Lookup of dotted names works in the same way as with variables, except for slightly different treatment of lambdas. More on this below.
A section begins with a pound and ends with a slash. That is,
{{#person}}
begins a "person" section while {{/person}}
ends it.
The behavior of the section is determined by the final value of the key lookup.
False Values or Empty Lists
If the person
key exists and has a value of false or an empty
list, the HTML between the pound and slash will not be displayed.
Template:
Shown.
{{#person}}
Never shown!
{{/person}}
Hash:
{
"person": false
}
Output:
Shown.
Non-Empty Lists
If the person
key exists and has a non-false value, the HTML between
the pound and slash will be rendered and displayed one or more times.
When the value is a non-empty list, the text in the block will be displayed once for each item in the list. The context of the block will be set to the current item for each iteration. In this way we can loop over collections.
Template:
{{#repo}}
{{name}}
{{/repo}}
Hash:
{
"repo": [
{ "name": "resque" },
{ "name": "hub" },
{ "name": "rip" }
]
}
Output:
resque
hub
rip
The same effect as above can be obtained without nested objects, by using the implicit iterator (see Variables above).
Template:
{{#repo}}
{{.}}
{{/repo}}
Hash:
{
"repo": ["resque", "hub", "rip"]
}
Output:
resque
hub
rip
Lambdas
When any value found during the lookup is a callable object, such as a
function or lambda, the object will be invoked and passed the block of
text. The text passed is the literal block, unrendered. {{tags}}
will
not have been expanded.
An optional part of the specification states that if the final key in
the name
is a lambda that returns a string, then that string replaces
the content of the section. It will be rendered using the same delimiters
(see Set Delimiter below) as the original section content. In this way
you can implement filters or caching.
Template:
{{#wrapped}}{{name}} is awesome.{{/wrapped}}
Hash:
{
"name": "Willy",
"wrapped": function(text) {
return "" + text + ""
}
}
Output:
Willy is awesome.
Non-False Values
When the value is non-false but not a list, it will be used as the context for a single rendering of the block.
Template:
{{#person?}}
Hi {{name}}!
{{/person?}}
Hash:
{
"person?": { "name": "Jon" }
}
Output:
Hi Jon!
An inverted section begins with a caret (hat) and ends with a
slash. That is {{^person}}
begins a "person" inverted section while
{{/person}}
ends it.
While sections can be used to render text zero or more times based on the value of the key, inverted sections may render text once based on the inverse value of the key. That is, they will be rendered if the key doesn't exist, is false, or is an empty list.
Template:
{{#repo}}
{{name}}
{{/repo}}
{{^repo}}
No repos :(
{{/repo}}
Hash:
{
"repo": []
}
Output:
No repos :(
Comments begin with a bang and are ignored. The following template:

Today{{! ignore me }}.

Will render as follows:

Today.

Comments may contain newlines.
Partials begin with a greater than sign, like {{> box}}
.
 Just avoid infinite loops.
They also inherit the calling context. Whereas in ERB you may have this:
<%= partial :next_more, :start => start, :size => size %>
Mustache requires only this:
{{> next_more}}
Why? Because the next_more.mustache
file will inherit the size
and
start
methods from the calling context.
In this way you may want to think of partials as includes, or template expansion, even though it's not literally true.
For example, this template and partial:
base.mustache:

Names

{{#names}}
{{> user}}
{{/names}}
user.mustache:
{{name}}
Can be thought of as a single, expanded template:

Names

{{#names}}
{{name}}
{{/names}}
Dynamic Names
Partials can be loaded dynamically at runtime using Dynamic Names; an optional part of the Mustache specification which allows to dynamically determine a tag's content at runtime.
Dynamic Names consists of an asterisk, followed by a dotted name which follows
the same notation and the same resolution as in an variable tag. That is
{{>*dynamic}}
. It can be thought as the following hypothetical tag
(which is not allowed!): {{>{{dynamic}}}}
.
Templates:
main.mustache:
Hello {{>*dynamic}}
world.template:
everyone!
Hash:
{
"dynamic": "world"
}
Output:
Hello everyone!
A block begins with a dollar and ends with a slash. That is, {{$title}}
begins a "title" block and {{/title}}
ends it.
Blocks mark parts of the template that may be overridden. This can be done
with a block of the same name within a parent section in the calling
template (see Parents below). If not overridden, the contents of a
block render just as if the {{$title}}
and {{/title}}
tags weren't
there.
Blocks could be thought of as template parameters or as inline partials that may be passed to another template. They are part of the optional inheritance extension.
Template article.mustache
:

{{$title}}The News of Today{{/title}}

{{$body}}

Nothing special happened.

{{/body}}
Output:

The News of Today

Nothing special happened.

A parent begins with a less than sign and ends with a slash. That is,
{{
article}}
partial, a parent lets you expand another template
inside the current one. Unlike a partial, a parent also lets you override
blocks of the other template.
Blocks within a parent can again be overridden by another including template. Other content within a parent is ignored, like comments.
Template:
{{<article}}
Never shown
{{$body}}
{{#headlines}}

{{.}}

{{/headlines}}
{{/body}}
{{/article}}
{{<article}}
{{$title}}Yesterday{{/title}}
{{/article}}
Hash:
{
"headlines": [
"A pug's handler grew mustaches.",
"What an exciting day!"
]
}
Output, assuming the article.mustache
from before:

The News of Today

A pug's handler grew mustaches.

What an exciting day!

Yesterday

Nothing special happened.

Dynamic Names
Some mustache implementations may allow the use of Dynamic Names in parent tags, similar to dynamic names in partials. Here's an example of how Dynamic Names in parent tags work.
Templates:
{{!normal.mustache}}
{{$text}}Here goes nothing.{{/text}}
{{!bold.mustache}}
{{$text}}Here also goes nothing but it's bold.{{/text}}
{{!dynamic.mustache}}
{{<*dynamic}}
{{$text}}Hello World!{{/text}}
{{/*dynamic}}
Hash:
{
"dynamic": "bold"
}
Output:
Hello World!
Set Delimiter tags start with an equal sign and change the tag
delimiters from {{
and }}
to custom strings.
Consider the following contrived example:
* {{default_tags}}
{{=<% %>=}}
* <% erb_style_tags %>
<%={{ }}=%>
* {{ default_tags_again }}
Here we have a list with three items. The first item uses the default tag style, the second uses erb style as defined by the Set Delimiter tag, and the third returns to the default style after yet another Set Delimiter declaration.
According to ctemplates, this "is useful for languages like TeX, where double-braces may occur in the text and are awkward to use for markup."
Custom delimiters may not contain whitespace or the equals sign.
Mustache is Copyright (C) 2009 Chris Wanstrath
Original CTemplate by Google
mustache(1), http://mustache.github.io/


Classes
The following classes are available globally.
-
Handles communication between SDK and digi.me application
See moreDeclaration
Objective-C
@interface DMEAppCommunicator : NSObject
Swift
class DMEAppCommunicator : NSObject
-
Base configuration object used to initialize a client.
See moreDeclaration
Objective-C
@interface DMEBaseConfiguration : NSObject <DMEClientConfiguration>
Swift
class DMEBaseConfiguration : NSObject, DMEClientConfiguration
-
Base client object used for any authorization flow.
See moreDeclaration
Objective-C
@interface DMEClient : NSObject
Swift
class DMEClient : NSObject
-
Set of convenient cryptographical utility functions.
See moreDeclaration
Objective-C
@interface DMECryptoUtilities : NSObject
Swift
class DMECryptoUtilities : NSObject
-
Configuration object used by
See moreDMEPullClient
.Declaration
Objective-C
@interface DMEPullConfiguration : DMEBaseConfiguration
Swift
class DMEPullConfiguration : DMEBaseConfiguration
-
Configuration object used by
DMEPushClient
.Declaration
Objective-C
@interface DMEPushConfiguration : DMEBaseConfiguration
Swift
class DMEPushConfiguration : DMEBaseConfiguration
-
Serialized representation of a service provider from which the account data originated.
See moreDeclaration
Objective-C
@interface DMEServiceDescriptor : NSObject
Swift
class DMEServiceDescriptor : NSObject
-
Serialised representation of the account object.
See moreDeclaration
Objective-C
@interface DMEAccount : NSObject
Swift
class DMEAccount : NSObject
-
Serialised response object for json returned by the
See moregetSessionAccountsWithCompletion:
function onDMEPullClient
.Declaration
Objective-C
@interface DMEAccounts : NSObject
Swift
class DMEAccounts : NSObject
-
Serialized representation of the JSON object returned by
See moregetFileList
endpoint.Declaration
Objective-C
@interface DMEFileList : NSObject
Swift
class DMEFileList : NSObject
-
Scope object that can be used to limit the time period for which data can be requested from the user.
Declaration
Objective-C
@interface DMEScope : NSObject <DMEDataRequest>
Swift
class DMEScope : NSObject, DMEDataRequest
-
Session object managed by the SDK. Used for authorization and data interaction.
See moreDeclaration
Objective-C
@interface DMESession : NSObject
Swift
class DMESession : NSObject
-
Time Range convenience object that describes a date period.
See moreDeclaration
Objective-C
@interface DMETimeRange : NSObject
Swift
class DMETimeRange : NSObject
-
Postbox object that can be used to push data to user. Generated by the SDK. Requires user’s authorization.
See moreDeclaration
Objective-C
@interface DMEPostbox : NSObject
Swift
class DMEPostbox : NSObject


Online Election Portal
Home
Logout
Voter Election Page
About Election
Election Name:
Election ID:
Candidate Registration Deadline:
Polling Start Time:
Polling End Time:


---
layout: default
title: 'Lecture Slides'
---
Lecture Slides
Lecture Slides 1: Introduction to R
(HTML)
(Rmd)
Lecture Slides 2: Programming Fundamentals
(HTML)
(Rmd)
Lecture Slides 3: Data Visualization and Manipulation
(HTML)
(Rmd)
Lecture Slides 4: Regular Expressions and Strings
(HTML)
(Rmd)
Lecture Slides 5: Statistical Inference
(HTML)
(Rmd)
Lecture Slides 6: Debugging and Version Control
(HTML)
(Rmd)
Lecture Slides 7: Statistical Applications with SVD and PCA
(HTML)
(Rmd)
Lecture Slides 8: Statistical Prediction
(HTML)
(Rmd)
Lecture Slides 9: Software Development with Unit Testing, Automated Testing, and Packages
(HTML)
(Rmd)


Test::Branch::IntTestSpace Class Reference
Space for executing integer tests. More...
Public Member Functions | |
| IntTestSpace (int n, Gecode::IntSet &d) | |
| Initialize test space. | |
| IntTestSpace (IntTestSpace &s) | |
| Constructor for cloning s. | |
| virtual Gecode::Space * | copy (void) |
| Copy space during cloning. | |
Public Attributes | |
| Gecode::IntVarArray | x |
| Variables to be tested. | |
| Gecode::IntVarBranch | vara |
| Variable selection criteria. | |
| Gecode::IntVarBranch | varb |
| Gecode::IntValBranch | val |
| Varlue selection criterion. | |
Collection of possible arguments for integer branchers | |
|
| |
| const char * | int_var_branch_name [] |
| Names for integer variable selections. | |
| const int | n_int_var_branch |
| Number of integer variable selections. | |
| const char * | bool_var_branch_name [] |
| Names for Boolean variable selections. | |
| const int | n_bool_var_branch |
| Number of integer variable selections. | |
| const char * | int_val_branch_name [] |
| Names for integer value selections. | |
| const int | n_int_val_branch |
| Number of integer value selections. | |
| const char * | bool_val_branch_name [] |
| Names for Boolean value selections. | |
| const int | n_bool_val_branch |
| Number of Boolean value selections. | |
| double | int_merit (const Gecode::Space &, Gecode::IntVar x, int) |
| Test function for branch merit function. | |
| double | bool_merit (const Gecode::Space &, Gecode::BoolVar x, int) |
| Test function for branch merit function. |
Detailed Description
Space for executing integer tests.
Definition at line 66 of file branch.cpp.
Constructor & Destructor Documentation
| Test::Branch::IntTestSpace::IntTestSpace | ( | int | n, | |
| Gecode::IntSet & | d | |||
| ) | [inline] |
Initialize test space.
Definition at line 75 of file branch.cpp.
| Test::Branch::IntTestSpace::IntTestSpace | ( | IntTestSpace & | s | ) | [inline] |
Constructor for cloning s.
Definition at line 80 of file branch.cpp.
Member Function Documentation
| virtual Gecode::Space* Test::Branch::IntTestSpace::copy | ( | void | ) | [inline, virtual] |
Friends And Related Function Documentation
const char* int_var_branch_name[] [related] |
Names for integer variable selections.
Definition at line 157 of file branch.cpp.
const int n_int_var_branch [related] |
sizeof(int_var_branch_name)/sizeof(const char*)
Number of integer variable selections.
Definition at line 191 of file branch.cpp.
const char* bool_var_branch_name[] [related] |
{ "SINGLE VARIABLE", "BOOL_VAR_NONE", "BOOL_VAR_RND", "BOOL_VAR_MERIT_MIN", "BOOL_VAR_MERIT_MAX", "BOOL_VAR_DEGREE_MIN", "BOOL_VAR_DEGREE_MAX", "BOOL_VAR_AFC_MIN", "BOOL_VAR_AFC_MAX", "BOOL_VAR_ACTION_MIN", "BOOL_VAR_ACTION_MAX", "BOOL_VAR_CHB_MIN", "BOOL_VAR_CHB_MAX" }
Names for Boolean variable selections.
Definition at line 194 of file branch.cpp.
const int n_bool_var_branch [related] |
sizeof(bool_var_branch_name)/sizeof(const char*)
Number of integer variable selections.
Definition at line 210 of file branch.cpp.
const char* int_val_branch_name[] [related] |
{ "INT_VAL_MIN", "INT_VAL_MED", "INT_VAL_MAX", "INT_VAL_RND", "INT_VAL_SPLIT_MIN", "INT_VAL_SPLIT_MAX", "INT_VAL_RANGE_MIN", "INT_VAL_RANGE_MAX", "INT_VAL", "INT_VALUES_MIN", "INT_VALUES_MAX" }
Names for integer value selections.
Definition at line 221 of file branch.cpp.
const int n_int_val_branch [related] |
sizeof(int_val_branch_name)/sizeof(const char*)
Number of integer value selections.
Definition at line 235 of file branch.cpp.
const char* bool_val_branch_name[] [related] |
{ "BOOL_VAL_MIN", "BOOL_VAL_MAX", "BOOL_VAL_RND", "BOOL_VAL" }
Names for Boolean value selections.
Definition at line 238 of file branch.cpp.
const int n_bool_val_branch [related] |
sizeof(bool_val_branch_name)/sizeof(const char*)
Number of Boolean value selections.
Definition at line 245 of file branch.cpp.
| double int_merit | ( | const Gecode::Space & | , | |
| Gecode::IntVar | x, | |||
| int | ||||
| ) | [related] |
Test function for branch merit function.
Definition at line 213 of file branch.cpp.
| double bool_merit | ( | const Gecode::Space & | , | |
| Gecode::BoolVar | x, | |||
| int | ||||
| ) | [related] |
Test function for branch merit function.
Definition at line 217 of file branch.cpp.
Member Data Documentation
Variables to be tested.
Definition at line 69 of file branch.cpp.
Variable selection criteria.
Definition at line 71 of file branch.cpp.
Definition at line 71 of file branch.cpp.
Varlue selection criterion.
Definition at line 73 of file branch.cpp.
The documentation for this class was generated from the following file:
- test/branch.cpp


Patrick Kluivert: Ansu Fati has his feet on the floor
The Barca youth academy director spoke about the young forward
by SPORT.esPatrick Kluivert spoke about Ansu Fari to the club magazine.
"I chose to come to Barca because I know the club, after being here six years as a player and I have a good feeling with the club and the fans," Kluivert said of his own return to take charge of the youth academy.
"I have the feeling that I can bring a lot to La Masia and I didn't have to think much about taking the offer.
"It's important that the players feel at home and can perform to the max, as well as taking care of their health and the communication between the teams."
The idea is that players jump up to the first team eventually, like Carles Perez and Ansu Fati this season.
"It's good they're getting first team minutes and can show their worth. Ansu has his head straight and his feet on the ground. I've spoken a lot to him and he's very conscious of his situation.
"We have to respect the Cruyff philosophy, the club values and we are here to protect them, so it's essential to nourish the first team with youth players from the club."


http://action.vday.org/site/R?i=vyZen7gw_sJtSinnpV804Q
http://action.vday.org/site/R?i=tYgN2IDoHfdyI0YxQGkbDw
http://action.vday.org/site/R?i=zNsNnySsf3-axmyaf2vBcw
http://action.vday.org/site/R?i=tUenUZc2YVZGgLADPIsfjQ
http://action.vday.org/site/R?i=Cl88cy5XOLb5OZ4LJr3Oow
http://action.vday.org/site/R?i=XdBPWcrEBLeRGrOcsjRSmg
Stage an Event in 2015 - V-Registration Is Open!
Last year together we brought One Billion Rising for Justice to
communities and events worldwide! This year’s theme, ONE BILLION
RISING REVOLUTION
http://action.vday.org/site/R?i=siBDGEVLiQJPrGBBQQ6qkQ
, is a call to focus on revolution and change as an escalation of our
demand to end violence against women and girls once and for all.

With the tagline “Drum, Dance & Rise,” Risings will focus on
highlighting, creating and envisioning new, brave and radical artistic
initiatives to bring in the new revolutionary world of equality,
dignity and freedom for all women and girls.
V-season is now open for registration!
The 2015 V-Season will be a transitional year, during which the
structure of the V-Day campaigns will begin to shift to an even more
autonomous, activist based model.
2015 productions of “The Vagina Monologues” will be held during the
month of February, and if you wish to perform the play in other
months, you may purchase the rights from Dramatists Play Service.
http://action.vday.org/site/R?i=hhfiVTDyP2x-Z9JNd9rrvQ
By focusing the benefit performances during one month - February - we
maximize the impact. Beginning in 2016, “The Vagina Monologues” will
be available free of charge to registered activists, every year solely
in the month of February. These productions will continue to raise
money for anti-violence work, and support and guidance will come from
a strong network of fellow activists. In 2016 and beyond, those
wishing to present “The Vagina Monologues” outside of February will
purchase the rights through DPS.
http://action.vday.org/site/R?i=xiEE_MUZoMXMWYzQe7IUJQ
V-Day’s energy will channel into One Billion Rising. Revolutionize
your art and activism by creating your own OBR events, which can take
place any time during the year.
Please head to the V-Spot to get registered for your February event.
We understand that many of you may have already secured venues for
events in March or April of 2015. If this is the case, we are happy to
make an exception for you for the 2015 V-Season. As always, please let
us know at
http://action.vday.org/site/R?i=_bd3c_5lGqETd1pFzXUaFg
<EMAIL_ADDRESS>if you have any questions.
http://action.vday.org/site/R?i=xjLDGBjbLZ6tEf2k2lyyOQ
http://action.vday.org/site/R?i=HU7eKg6yBDpJZfWXm7GpKA
http://action.vday.org/site/R?i=mCRQarvUWV9Mp5L5-EoW-Q
http://action.vday.org/site/R?i=PLjjJ7-kJ-g1s3IR6y18oA
http://action.vday.org/site/R?i=FOQ-hM3nTm2QCOuJWbDAIQ
http://action.vday.org/site/R?i=X8zl97ignUKrh4kwOycskA
http://action.vday.org/site/R?i=f97qxLDat5LYCEHsYFRKhA
http://action.vday.org/site/R?i=fThPiUkHi6Oz4AmX3X87jg
unsubscribe
http://action.vday.org/site/CO?i=iMYBfJdnREJokHOExfS5KmVYZDoDO-C7&cid=1062
Powered By Blackbaud