I am Benjamin Bago currently studying BS in Computer Science had a few knowledge in different programming laguage like C#, C++, Java,Computer Routing,BatchFile and also visual basic hoping that in near future to be an programmer someday.
Since that im still studying, this video shows a few program which is working the video below i use the programming language C# and C++ and also BatchFile and hoping soon that i can develop a Good Web too.
A multi-language programmer with different skills in Java and C++ and some additional programming experience in VB and C#.During my tenure at Cavite State University College i also worked on multiple projects and researches, which allowed me to strengthen my skills and critical thinking
Cavite State University 2018 - 2019
Alfonso National High School 2013-2014
Java
Database Management
C#


Next: Ptrlist
Up: Graphcode
Previous: Self linking nodes
Contents
Index
objref
For every object in the Graphcode system, there is an objref
on
every processor referring to it.
Synopsis:
class objref
{
public:
GraphID_t ID;
unsigned int proc;
objref(GraphID_t id=0, int proc=myid(), object *o=NULL);
objref(GraphID_t id, int proc, object &o);
objref(const objref& x);
~objref();
objref& operator=(const objref& x);
object& operator*();
object* operator->();
const object* operator->() const;
const object* operator->() const;
void addref(object* o, bool mflag=false);
bool nullref() const;
void nullify();
};
- ID
- A unique integer value that identifies the object within a Graph
- proc
- The location of the active copy of the object
- *, ->
- Dereferencing an objref allows one to access the
object. It is an error to dereference a nullified objref.
- addref
- Add an object to this reference. The
mflag
parameter indicates whether the object is managed (created by new
or
lnew()
), and can be safely deleted
when nullified, or
is an external object that should not be deleted. An objref can also
be instantiated already pointing to an unmanaged object via its constructor.
- nullref
- whether this objref points to an object or not. If the
active copy is on this processor, then nullref should be false.
Otherwise, it may true or false depending on whether this processor
has a cached copy of the object.
- nullify
- Remove the object from the Graph (but leaving the
objref in place). It is an error to remove the active copy, without
replacing it with another object.
Next: Ptrlist
Up: Graphcode
Previous: Self linking nodes
Contents
Index
Russell Standish
2014-09-10


Create Countdown
×
Countdown Label
What time will it end?
Submit
Countdown
Your Countdowns
Countdown Label
Time Remaining
End Time
Remove
New Countdown


Enter the User ID for a valid user in your Apperian organization. The user must have valid permissions for adding applications to Apperian. Based on this User ID, the Apperian web service identifies your organization in the Apperian database. For more information on user permissions, see Managing Users (https://help.apperian.com/display/pub/Managing+Users) in the Apperian Documentation Center.
You can leave User ID and Password blank if you have stored valid credentials with the Jenkins Credentials plugin. Note that the plugin matches the domain set for the stored credentials with the domain in the API endpoint.


Chapter 12 - Grammar Summary
12.1 Pronunciation Summary
12.1.1 Vowels: Quenya vowels are pronounced similarly to those of Italian.
- Vowels: Quenya has five vowels, i, e, a, o, u.
- i = “ee” as in “meet”
- e = “eh” as in “guess”
- a = “ah” as in “father”
- o = “oh” as in “for”
- u = “oo” as in “goose”
- Long Vowels: í, é, á, ó, ú sound more-or-less the same as short vowels but are held longer.
- Diphthongs: Quenya has three i-diphthongs (ai, oi, ui) and three u-diphthongs (iu, eu, au).
- ai = “eye” (English “long i”) as in “rye”
- oi = “oy” as in “boy”
- ui = “wee” [roughly] as in “queen”
- iu = “yoo” as in “yule”
- eu = “ehoo” [very roughly]
- au = “ow” as in “how”
See also Chapter 2, Section §2.1.
12.1.2 Consonants: Quenya consonants are mostly pronounced like in English, except:
- c is always a “hard c” [k].
- hl, hr, hw, hy are frictional voiceless sounds roughly like h+l, h+r, h+w, h+y.
- ht is also more frictional, like German eht, aht, similar to the “ch” sound in “Bach”.
- l, r are always pronounced distinctly, as a “light l” and a “trilled r”.
- ny, ty; nw, qu [kw] are pronounced as single consonants roughly like n+y, t+y, n+w, k+w, but are treated as clusters for stress.
- x is pronounced like [ks], and is treated as a consonant cluster.
- [þ], [ñ], [w] indicate archaic pronunciations, whose modern pronunciations are s, n and v.
- Technically hl, hr are also archaic with modern pronunciations l, r, but Tolkien retained these letters consistently in spelling (as does this course).
See also Chapter 3, Section §3.1.
12.1.3 Stress: Quenya stress is very regular:
- Monosyllables are stressed on their only syllable.
- Disyllables are stressed on their first syllable.
- Longer words are stressed on their second-to-last syllable if it is heavy, and otherwise their third-to-last syllable.
- A syllable is heavy if (a) it has a long vowel, (b) it has a diphthong or (c) it is followed by a cluster of two or more consonants.
See also Chapter 2, Section §2.1.3.
12.1.4 Quenya Vowel Shifts: Quenya vowels can shorten, lengthen and even vanish under various conditions.
- Elision: Elision is when the last vowel of a word is lost before the first vowel of another word. This can happen with:
- Two-syllable prepositions like ara “beside”: ar’ i mindon “beside the tower”.
- An uninflected aorist verb preceding the definite article i: i atan mat’ i massa “the man eats the bread”.
- The directional suffixes -nna, -llo and -sse: márenn’ alassëo “to the home of happiness”.
- Long adjectives preceding the noun they modify: vanim’ ambarónë “a beautiful dawn”.
- Final syllable reductions: Long vowels in final syllables can be shortened when:
- A directional case suffix is added: Endórë + -nna → Endorenna “to Endórë”.
- It is the final syllable of a compound: Elda + már → Eldamar “to Elf-home”.
- Final consonant clusters are also reduced: Mori- + quend(e) → Moriquen (Moriquend-) “Dark-elf”.
- Prosodic lengthening: The last vowel in a word can be lengthened when suffixes are added. This happens when:
- The base word is three or more syllables long.
- The word ends in a vowel and the suffix begins with a single consonant: telumë + -va → teluméva.
- Alternately, the word ends in a single consonant and the suffix begins with a vowel (possible followed by one consonant): Atanatar + -i → Atanatári.
- The second-to-last syllable of the base word cannot be stressed:
- telumë + -li → teluméli but falassë + -li → falasseli
- However, lengthening becomes possible again if the suffix itself is two syllables:
- telumë + -lion → telumélion and falassë + -lion → falassélion
See also Chapter 6, Section §6.1.
12.2 Noun Summary
12.2.1 Major Noun Classes: Quenya has three major classes of nouns, vocalic, e-noun and consonantal. See Chapter 1, Section §1.2.1.
- Vocalic Nouns: Nouns ending in a vowel (excluding e): elda “elf”.
- E-Nouns: Nouns ending in the vowel e: aiwë “bird”.
- Consonantal Nouns: Nouns ending in a consonant: atan “man [human being]”.
12.2.2 Plural Nouns: Noun plurals vary by noun class.
- Vocalic nouns add -r: elda “elf” → eldar “elves”.
- o-nouns with u-stems use wi-plurals: ranco (rancu-) “arm” → ranqui [rankwi] “arms”.
- E-nouns change the final -e to -i: aiwë “bird” → aiwi “birds”
- ie-nouns and le-nouns use er-plurals: tië “road” → tiër “roads”; tyellë “grade” → tyeller “grades”.
- Consonantal nouns add -i: atan “man” → atani “men”
- This is added to the noun-stem if it is different from the base noun: oron (oront-) “mountain” → oronti “mountains”.
See also Chapter 4, Section §4.2.1.
12.2.3 Partitive Plurals: Partitive plurals describe an indefinite group that is less than the entire class, using the suffix -li = “some, many”.
- Vocalic nouns use the suffix -li, possibly with prosodic lengthening (see section §12.1.4 above):
- elda → eldali “some elves”.
- telumë → teluméli “some roofs”.
- ambarónë → ambaróneli “some dawns”.
- Consonantal nouns use -li with various assimilations, or (speculative) a joining vowel e (-eli) if there is no suitable assimilation:
- tál (tal-) → talli “some feet”.
- atan → atalli “some men [humans]”.
- nér (ner-) → nelli “some men [males]”.
- Speculative: cas (car-) → calli “some heads”.
- Speculative: nat → nateli “some things”.
- Speculative: hón (hom-) → homeli “some hearts”.
- Speculative: Moriquen (Moriquend-) → Moriquendeli “some Dark Elves”.
See also Chapter 6, Section §6.2.
12.2.4 Dual Nouns: Duals describe closely associated pairs.
- Consonantal nouns use the dual suffix -u: atan “a man” → atanu “a pair of men”.
- Vocalic nouns use the dual suffix -t: cirya “a ship” → ciryat “a pair of ships”.
- Nouns with t, d before the final vowel use u instead: alda “a tree” → aldu “a pair of trees”.
- Some (but not all) body parts also use older u: pirë “a toe” → piru “a pair of toes”.
- Speculative: Possessive pronouns are likely suffixed to the noun first, and thus typically use t-duals: hendinyat not **hendunya.
- Non-pairs simply use atta “two”, with the noun in the singular: atan atta “two man [men]” (see section §12.8.6 below).
- Pairs as a unit use yúyo “both”, with the noun in the singular: yúyo atan “both man [men]”.
See also Chapter 5, Section §<IP_ADDRESS>.
12.2.5 Specialized Noun Classes: Specialized noun classes are too complex to summarize cleanly. See Chapter 11, Section §11.3.
12.3 Noun Cases
Quenya has eight major noun cases. The default nominative case (used for subjects) is also used for direct objects and the object of pronouns (accusative), and thus might be better referred to as the “common” case.
| Vocalic | Sg. | Du. | Part. Pl. | Pl. |
| Nominative | cirya | ciryat | ciryali | ciryar |
| Dative | ciryan | ciryant | ciryalin | ciryain |
| Genitive | ciryo ¹ | ciryato | ciryalion | ciryaron |
| Possessive | ciryava | ciryatwa | ciryalíva | ciryaiva |
| Allative | ciryanna | ciryanta | ciryalinna(r) | ciryannar |
| Ablative | ciryallo | ciryalto | ciryalillo(n) | ciryallon |
| Locative | ciryasse | ciryatse | ciryalisse(n) | ciryassen |
| Instrumental | ciryanen | ciryanten | ciryalínen | ciryainen |
| E-noun | Sg. | Du. | Part. Pl. | Pl. |
| Nominative | lassë | lasset | lasseli | lassi ² |
| Dative | lassen | lassent | lasselin | lassin |
| Genitive | lassëo | lasseto | lasselion | lassion |
| Possessive | lasseva | lassetwa | lasselíva | lassíva |
| Allative | lassenna | lassenta | lasselinna(r) | lassennar |
| Ablative | lassello | lasselto | lasselillo(n) | lassellon |
| Locative | lassesse | lassetse | lasselisse(n) | lassessen |
| Instrumental | lassenen | lassenten | lasselínen | lassínen |
| Consonantal | Sg. | Du. | Part. Pl. | Pl. |
| Nominative | atar | ataru | atalli ³ | atari |
| Dative | ataren | atarun | atallin | atarin |
| Genitive | ataro | ataruo | atallion | atarion |
| Possessive | atarwa | atarúva | atallíva | ataríva |
| Allative | atarenna | atarunna | atallinna(r) | atarinnar |
| Ablative | atarello | atarullo | atallillo(n) | atarillon |
| Locative | ataresse | atarusse | atallisse(n) | atarissen |
| Instrumental | atarmen ⁴ | atarúnen | atallinen | atarínen |
- Note ¹: The genitive -o replaces the vowel in singular a-nouns and o-nouns, but is suffixed to other vocalic nouns.
- Note ²: The e-nouns differ from other vocalic nouns in that they usually retain more their ancient i-plurals, the main exception being ie-nouns and (most) le-nouns which use r-plurals.
- Note ³: The partitive plurals of consonantal nouns often show various assimilations: -lli. Speculative: Where such assimilations are not possible, the joining vowel e is used: -eli.
- Note ⁴: The instrumental singular of consonantal nouns often shows various assimilations; see §12.3.5 below. Speculative: Where such assimilations are not possible, the joining vowel a is used: -anen.
12.3.1 Dative: The dative noun case is for indirect objects, equivalent to English “to, for”.
- The dative in most situations is formed by adding -n to the singular, plural, partitive plural or u-dual stem.
- For singular consonantal nouns, it is formed by adding -en to the stem, with a joining vowel e.
- For plural vocalic nouns, it is formed by adding -in to the noun stem.
- For duals that are normally formed with -t (t-duals), the dative dual is formed by adding -nt to the noun stem.
See also Chapter 5, Section §5.3
12.3.2 Genitive: The genitive noun case is for relationships similar to those with English preposition “of”:
- Singular and dual nouns simply add -o.
- Singular nouns ending in -a or -o replace their last vowel with -o.
- Plural nouns add the suffix -on to their plural form: -ion, -ron or (partitive plural) -lion.
The genitive is used for:
- Relationships between people: seldë Elerondo “daughter of Elrond”, aran eldaron “king of the elves”.
- The origin of someone or something: eldar Lóriendo “elves of Lórien”, róma Oromëo “horn of [created or given by] Oromë”.
- Composition or components of something: macil ango “sword of iron”, má i atano “hand of the man”.
- A description of someone or something: alcar i arano “glory of the king”, raxi i taurëo “dangers of the forest”.
See also Chapter 6, Section §6.3.1
12.3.3 Possessive: The possessive noun case is for relationships similar to those with English apostrophe-s (’s).
- For nouns ending in a vowel, add -va.
- For nouns ending in a consonant (including t-duals), add -wa.
- Speculative: Where the addition of -wa produces an unsuitable cluster, the suffix becomes -ua.
- For the plural possessive of vocalic nouns, the suffix -iva is added to the stem.
- For other plural, partitive plural or dual forms, any final i, u is lengthened when -va is added.
As with adjectives, the final vowel a of the possessive becomes ë when the thing possessed is in the plural: atanwë macili “a man’s swords”, atanívë macili “men’s swords”.
The possessive is used for:
- Ownership of a thing: macil atanwa “a man’s sword”, róma Oroméva “horn of [belonging to] Oromë”.
- An adjectival description of something: i alcar aranwa “the glory of [the] king = the king’s glory”, aran eldaiva “king of the Elves = Elvish king”.
This second descriptive use is often interchangeable with the genitive. The main distinction in descriptive use is that -va tends to be used for innate attributes, while -o is used of attributes applicable in the moment: alcar Oromëo = “Orome’s glory (in the moment)” vs. alcar Oroméva = “Orome’s (inherent) glory”.
See also Chapter 6, Section §6.3.2
12.3.4 Directional Cases: The three direction cases are used as follows.
- Allative: Movement towards object: -(e)nna “to(wards)”.
- Ablative: Movement away from an object: -(e)llo “from”.
- Locative: Location at object: -(e)ssë “in, at, on”.
- Vocalic nouns add the basic directional suffix.
- Singular consonantal nouns use the joining vowel e.
In the plural they have an additional plural marker: r or n.
- Allative: -(i)nnar “to(wards) [pl.]”.
- Ablative: -(i)llon “from [pl.]”.
- Locative: -(i)ssen “in, at, on [pl.]”.
- Vocalic nouns add the basic directional suffix.
- Plural consonantal nouns use the joining vowel i.
The plural marker is optional for the partitive plural: ciryalinna(r), ciryalillo(n), ciryalisse(n).
See also Chapter 7, Section §7.3
12.3.5 Instrumental: The instrumental case indicates the means by which an action occurs and uses the suffix -nen after vowels. Speculative: The singular instrumental case often assimilates to the final consonant of a noun:
- After r, l, it becomes -men: nér (ner-) → nermen “by (means of) a man [male]”; tál (tal-) → talmen “by (means of) a foot”.
- After n, t, c it becomes -wen: nén (nen-) → nenwen “by (means of) water”, nat → natwen “by (means of) a thing”.
- After s (stem r-), it becomes -(r)men, with r replacing the final s: cas (car-) → carmen “by (means of) a head”.
- After more complex noun stems, it becomes -anen: umbar (umbart-) → umbartanen “by (means of) fate”.
This last formation, with -anen, may have gradually replaced the assimilated forms in modern Quenya: neranen, etc.
See also Chapter 7, Section §7.3.5
12.4 Pronoun Summary
Quenya has four main sets of pronouns:
- Independent pronouns used for direct objects and declined pronouns: ni “me”.
- Subject suffixes for pronominal suffixes appended to verbs: -n(yë) “I”.
- Possessive suffixes appended to nouns before any case suffix or plural marker: -nya “my”.
- Emphatic pronouns usable as both subject and object: inyë “even I”.
| Indep. | Subject | Poss. | Emph. |
| 1st sg. “me, I, my” | ni | -n(yë) | -(i)nya | inyë |
| 2nd sg. fam. “you, your (familiar)” | tye | -t(yë) ¹ | -(i)tya | *ityë |
| 2nd sg. pol. “you, your (polite)” | lye | -l(yë) | -(e)lya | elyë |
| 3rd sg. anim. “him/her, he/she, his/her” | se | -s(së) | -(r)ya ² | issë |
| 3rd sg. inan. “it, its” | sa | -s(sa) | — | *issa |
| 1st pl. excl. “us, we, our (but not you)” | me | -lmë | -(e)lma | elmë |
| 1st pl. incl. “us, we, our (including you)” | ve | -lvë | -(e)lva | elvë |
| 2nd pl. “you, your (plural)” | le | -ldë | -(e)lda | *eldë |
| 3rd pl. anim. “them, they, their” | te | -ntë ³ | -(i)nta | intë |
| 3rd pl. inan. “them, they (neuter)” | tai | -nta | — | *inta |
| 1st du. excl. “us two (but not you)” | met | -mmë | -(e)mma | ^emmë |
| 1st du. incl. “both of us” | vet | -nquë | -(i)nqua | inquë |
| 2nd du. “you two” | tyet/let | -stë | -(e)sta | *estë |
| 3rd du. “them two” | tu | -ttë | -(e)tta | ^ettë |
- Note ¹: Singular subject pronouns have short and long forms, with the short form being more common unless object suffixes are added. The exception is -t(yë), where the long form -tyë is much more common and short -t should generally be avoided.
- Note ²: The possessive suffixes require a joining vowel when added to a noun ending in a consonant. The exception is -(r)ya, which uses -ya after a consonant and -rya after a vowel. Speculative: The joining vowel seems to be the same as the initial vowel of the emphatic form.
- Note ³: Popular variants of the 3rd pl. pronoun suffixes are -ltë, -(i)lta; both -ltë and -ntë were used often enough by Tolkien that it is hard to say which he preferred. This course uses -ntë throughout for consistency.
Quenya has other pronouns which can be found in the vocabulary.
- Indefinite Pronouns: Chapter 7, Section §<IP_ADDRESS>.
- mo “someone”, ma “something”.
- Fourth Person Pronouns: Chapter 7, Section §<IP_ADDRESS>.
- hyë “other person”, hya “other thing”.
- Relative Pronouns: Chapter 10, Section §10.1.1.
- i “who, which, that (indeclinable relative)”.
- ya “which, that (impersonal relative)”.
- ye “who, that (personal relative)”.
- Demonstrative Pronouns: Chapter 10, Section §10.2.
- si “this”, ta “that”, etc.
- Reflexive Pronouns: Chapter 10, Section §10.3.
- imni “myself”, imlë “yourself”, etc.
12.5 Verb Summary
12.5.1 Major Verb Classes: The most common Quenya verb conjugations can be broken down into three large categories of verbs:
- Basic Verbs: End in a consonant like mat- “to eat”, tul- “to come”.
- A-stem Verbs: End in the vowel a like fara- “to hunt”, lelya- “to travel”.
- This class actually include various more specialized verb classes; see section §12.5.10 below.
- U-stem Verbs: End in the vowel u like celu- “to flow”, tolu- “to stand up”.
| Basic | mat- | tul- |
| Gloss | “eat” | “come” |
| Aorist | matë | tulë |
| Present | máta | túla |
| Future | matuva | tuluva |
| Past | mantë | túlë ¹ |
| Perfect | amátië | utúlië |
| Gerund | matië | tulië |
- Note ¹: The Quenya past tense is fairly irregular. See section §12.5.5 for common patterns.
| U-stem | liru- | niqu- |
| Gloss | “sing (gaily)” | “freeze” |
| Aorist | liru | nique ¹ |
| Present | lírua | níqua |
| Future | lirúva | *nicúva ² |
| Past | lirunë | nicunë |
| Perfect | ilírië | *iníquië ² |
| Gerund | liruyë | *niquië ² |
- Note ¹: There appears to be a small class of variant u-verbs whose stems originally ended in ku (or kw). These verbs have qu in the aorist, present and (presumably) perfect tenses, but cu in the past and (presumably) future tenses. This course represents their stem as ending in qu to highlight these alternate conjugations.
- Note ²: These forms for the qu-verbs are not attested.
| A-stem | fara- | lelya- |
| Gloss | “hunt” | “travel” |
| Aorist | fara | lelya |
| Present | fárëa | lelyëa |
| Future | faruva | lelyuva |
| Past | faranë | lendë ¹ |
| Perfect | afárië | elélië ² |
| Gerund | *farië | lelië ² |
- Note ¹: The Quenya past tense is fairly irregular. See section §12.5.5 for common patterns.
- Note ²: The y in the perfect and gerund of ya-stem verbs is also lost.
See also Chapter 2, Section §2.2.1.
12.5.2 Aorist Tense: Equivalent to the English simple present, for timeless or habitual actions: matë “eats”.
- Basic Verbs: Add an –ë to the stem, or i with further inflections.
- mat- “to eat”: i atan matë “the man eats”, i atani matir “the men eat” (mat-i-r), matin “I eat” (mat-i-n).
- A-stem Verbs: Use the stem unmodified, to which further inflections are added.
- lelya- “to travel”: i atan lelya “the man travels”, i atani lelyar “the men travel” (lelya-r), lelyan “I travel” (lelya-n).
- U-stem Verbs: Use the stem unmodified, to which further inflections are added.
- celu- “to flow”: i sírë celu “the river flows”, i síri celur “the rivers flow” (celu-r), celus “it flows” (celu-s).
See also Chapter 2, Section §2.2.2.
12.5.3 Present Tense: Equivalent to the English present continuous: máta “is eating”.
- Basic Verbs: Lengthen the base vowel and add an –a to the stem, then add any inflections.
- mat- “to eat”: i atan máta “the man is eating”, i atani mátar “the men are eating” (máta-r), mátan “I am eating” (máta-n).
- A-stem Verbs: Lengthen the base vowel (if possible) and change the final –a to -ëa, then add any inflections.
- fara- “to hunt”: i atan fárëa “the man is hunting”, i atani fárëar “the men are hunting” (fárëa-r), fárëan “I am hunting” (fárëa-n).
- lelya- “to travel”: i atan lelyëa “the man is travelling”, i atani lelyëar “the men are travelling” (lelyëa-r), lelyëan “I am travelling” (lelyëa-n).
- caita- “to lie (down)”: i atan caitëa “the man is lying (down)”, i atani caitëar “the men are lying (down)” (caitëa-r), caitëan “I am lying (down)” (caitëa-n).
- U-stem Verbs: Lengthen the base vowel (if possible) and add an –a to the stem, then add any inflections.
- celu- “to flow”: i sírë célua “the river is flowing”, i síri céluar “the rivers are flowing” (célua-r), céluas “it is flowing” (célua-s).
See also Chapter 2, Section §2.2.3.
12.5.4 Future Tense: Describes events occurring in the future: matuva “will eat”.
- Basic Verbs: In most cases the suffix -uva is added directly to the stem: tul- “to come” → tuluva “will come”.
- For basic verb stems ending in v, the v in the stem is lost: tyav- “to taste” → tyauva “will taste”.
- For basic verb stems ending in uv, the suffix becomes -ua: tuv- “to discover” → tuvua “will discover”.
- A-stem Verbs: The suffix -uva generally replaces the final a: lelya- “to travel” → lelyuva “will travel”.
- U-stem Verbs: The suffix -uva generally lengthens the final u: celu- “to flow (forth)” → celúva “will flow forth”.
See also Chapter 3, Section §3.4.1.
12.5.5 Past Tense: Describes events in the past: mantë “ate”.
Quenya past tenses are fairly irregular and the summary below only discusses the common patterns. This can be considered an “advanced topic” since things are quite complex. Beginners are often better off memorizing past tenses.
- Past Origins: The strong past tense of basic verbs arose from ancient nasal-suffixion (✶tul-nē) or infixion (✶tu-n-l-ē).
- The result varied depending on the final consonant of the verb stem.
- Verbs sometimes modified their ancient pasts to align with other verb forms.
- Many basic verbs have a long-vowel past based on their perfect: túlë “came” from utúlië “has come”.
- Derived verbs (a-stem and u-stem verbs) sometimes also have strong pasts derived from their ancient root.
- Basic verbs ending in p, t, c: These have past forms with mp, nt, nc:
- tup- “to cover” → tumpë “covered” from √TUP.
- mat- “to eat” → mantë “ate” from √MAT.
- nac- “to bite” → nancë “bit” from √NAK.
- Basic verbs ending in f, h: These have past forms with double pp, cc:
- raf- “to snatch” → rappë “snatched” from √RAPH.
- lah- “to kick” → laccë “kicked” from √LAKH.
- Basic verbs ending in s (classical þ): These usually have pasts reformed to ns, more rarely with tt (the original form):
- ces- [þ] “to search” → censë “searched” from √KETH.
- Basic verbs ending in r: These depend on the ancient origin of the r.
- From ancient r - past forms with rn:
- car- “to do, make” → carnë “did” from √KAR.
- From ancient s - past forms with ss, sometimes reformed to rn:
- hlar- “to hear” → hlassë “heard” from √SLAS.
- virya- “to change” → virnë “changed” from √WIS (strong past of a derived verb).
- From ancient d - past forms with nd, reformed to rn or long-vowel pasts from the perfect:
- rer- “to sow” → rendë “sowed” from √RED.
- nir- “to press, push” → nirnë “pressed, pushed” from √NID.
- ser- “to rest” → sérë “rest” from √SED.
- Basic verbs ending in v: These have past forms with mb (rare) or long-vowel pasts from the perfect (common):
- cav- “to receive” → cambë “received” from √KAB.
- lav- “to lick” → lávë “licked” from √LAB.
- Basic verbs ending in l: These have past forms with ll (common), ld (rare) or long-vowel pasts from the perfect:
- vil- “to fly” → villë “flew” from √WIL.
- ala- “to flourish, grow” → †aldë “flourished, grew” from √GAL (strong past of a derived verb).
- tul- “to come” → túlë “came” from √TUL.
- Basic verbs ending in m, n: These have past forms with mn, nn:
- nem- “to seem” → nemnë “seemed” from √NEM.
- cen- “to see” → cennë “saw” from √KEN.
- Strong pasts from y, w: These arise mainly as strong pasts of derived verbs, but are fairly common:
- coita- “to live (is alive)” → coinë “lived (was alive)” from √KOY.
- lauta- “to abound” → launë “abounded” from √LAW.
- Half-strong pasts: Formative verbs (ya-formative, ta-formative) have half-strong pasts with the nasal inserted before the ya/ta suffix and preceded by the base vowel:
- nahta- “to slay” → nacantë “slew” from √NDAK + tă.
- orya- “to rise” → oronyë “rose” from √OR + yă.
- Weak pasts: Other a-stem and u-stem verbs frequently have weak pasts adding the -në suffix to the verb stem:
- fara- “to hunt” → faranë “hunted” from √PHAR + ā.
- celu- “to flow (forth)” → celunë “flowed forth” from √KEL + ū.
- orta- “to raise” → ortanë “raised” from √OR + tā.
See also Chapter 4, Section §4.4.
12.5.6 Perfect Tense: The perfect tense is for completed actions whose effects are still felt in the present: amátië “has eaten”.
- Simple Perfect: Most perfects are formed with three simple rules.
- The base vowel is prefixed to the verb as an augment.
- The base vowel lengthens if possible (not for diphthongs or before consonant clusters).
- The suffix -ië is added, replacing the final vowel if any.
- For a ya-verb, the suffix -ië replaces the entire ya: orya- “to rise” → orórië “has raised”.
- Some examples:
- mat- “to eat” → amátië “has eaten”.
- fara- “to hunt” → afárië “has hunted”.
- celu- “to flow” → ecélië “has flowed”.
- caita- “to lie (down)” → acaitië “has lied (down)”.
- tulta- “to send (for)” → utultië “has sent (for)”.
- Variant Augments: There is some variability in augments.
- The augment is optional, especially in poetry.
- Verbs beginning with a vowel may reduplicate the first two letters: orta- “to raise” → orortië “has raised”.
See also Chapter 5, Section §5.4.
12.5.7 Verb Inflections: Verbs have various suffixes indicating the subject or (less common) object of the verb.
- Subject suffixes: When the subject is a pronoun, this pronoun is suffixed to the verb; see section §12.4 above.
- Plural Verbs: Add -r if the subject is plural and is not a pronoun suffixed to the verb.
- Dual Verbs: Use the dual suffix -t if the subject is a dual, two items or (speculative) two nouns joined by yo “both ... and”.
- Object suffixes: There are two object suffixes that may be added to verbs: -s “him/her” and -t “them”.
- Speculative: If added directly to the aorist tense, the vowel remains e rather than becoming i: i atan mates “the man eats it”.
- If added to a subject suffix, the long suffix form must be used: melinyes: “I love him/her”.
- See also Chapter 4, Section §<IP_ADDRESS>.
12.5.8 Infinitives and Gerunds: Infinitives and gerunds are verb forms that often take the role of nouns in a sentence (subjects and objects).
- Simple Infinitive: The simple infinitive is the uninflected aorist stem.
- It typically follows another verb as its object: merin cenë i osto “I want [to] see the city”.
- It cannot receive any suffixes.
- Particular Infinitive: The particular infinitive is formed with the suffix -ita.
- It can take suffixes and can serve as the sentence’s subject: caritas mára (ná) “To do it (is) good”.
- It uses possessive rather than subject suffixes: caritalyas mára (ná) “Your doing it (is) good”.
- It cannot receive noun case suffixes, however.
- Gerund: The gerund is formed with the suffix -ië: mat- → matië “eating”.
- This replaces the final a of a-stem verbs: anta- → antië “giving”.
- The y of ya-stem verbs is also lost: lelya- → lelië “traveling”.
- The suffix becomes -yë for u-stem verbs: liru- → liruyë “(gaily) singing”.
- The gerund functions like a noun and can receive noun cases, but cannot (usually) be made plural.
See also Chapter 7, Section §7.2.
12.5.9 Verbal Adjectives: Quenya can form various adjectives from verbs.
- Active Participles: Formed with the suffix -ila added to the verb stem indicating the action the noun is performing.
- matila elda “an eating elf” ← mat- “to eat”.
- liruila atan “a singing man” ← liru- “to sing (gaily)”.
- taltaila mindon “a collapsing tower” ← talta- “to collapse”.
- Passive Participles: Formed with the suffix -(i)na combined with the verb stem indicating an action performed on the noun.
- Basic verbs: matina orva “an eaten apple” ← mat- “to eat”.
- U-verbs: liruna laitë “a sung poem” ← liru- “to sing (gaily)”.
- A-stem verbs: These vary slightly depending on the most specific verb class:
- A-verbs: farina ráca “a hunted wolf” ← fara- “to hunt”.
- Half-strong: nahtina atan “a slain man” ← nahta- “to slay”.
- Weak: tultaina ohtar “a summoned soldier” ← tulta- “to summon”.
- Ya-verbs: ferina macil “a readied sword” ← ferya- “to ready”.
- See section §12.5.10 below for more on the specialized verb classes.
- Other Verb Suffixes:
- -ima “able to be done” (with vowel lengthening): mátima “edible = able to be eaten”.
- -itë “able to do” (with added base vowel): mataitë “able to eat”.
- -ula “prone to do”: matula “prone to eat = edacious, with ravenous appetite”.
See also Chapter 9, Section §9.1.
12.5.10 Specialized Verb Classes: The a-stem verbs can be further broken down into more specialized verb classes.
- A-verbs: These align with the simplified a-stem rules and generally have weak pasts: fara- “to hunt” → faranë.
- Take care to distinguish a-stem verbs (the larger group) from a-verbs (this specific verb class)
- Formative Verbs: Half-strong nahta- “to slay”, orya- “to rise”.
- Past: Use half-strong pasts nacantë, oronyë.
- Present: Have (archaic) ia-presents †nahtia, †ória.
- Ya-formatives: Ya-formatives lose their y in the present, perfect and gerund: órëa, (or)órië, orië.
- There are, however, examples where ya-formatives retain their y in the present: melya- → present melyëa (PE17/77).
- For simplicity, the exercises in this course assume the y is retained in the present tense.
- Talat-stem Verbs: These generally become either half-strong (conjugated like formative verbs above) or weak (conjugated like derivative verbs below).
- You can tell by their past tenses: half-strong talantë vs. weak sulpanë.
- Causative verbs: Weak tulta- “to summon”, tulya- “to lead”.
- Past: Use weak pasts: tultanë, tulyanë.
- Future: Have auva-futures: tultauva, tulyauva (for simplicity this can be ignored).
- Perfect: Sometimes have weak perfects (most useful for ya-causatives): utulyanië.
- Ya-causatives: Lose their y in gerunds: tulië.
- Derivative Verbs: Weak henta- “to read, scan”, tengwa- “to read (writing)”.
- Past: Use weak pasts: hentanë, tengwanë.
- Perfect: May or may not have weak perfects: ehentanië vs. etengwië.
See also Chapter 8, Section §8.1.
12.6 Verbal Moods
12.6.1 Commands and Wishes:
- Commands: The imperative particle á is placed before uninflected aorist form of the verb: á tulë “come”.
- More urgent commands suffix á to the verb stem: tulá “come!”, pronounced “too-LAAH”.
- Indirect commands are also possible, with the subject noun following the verb: á tulir i atani “let the men come”.
- Wishes: The adverb nai “may (it be that)” is placed before the wished-for statement, usually in the future tense.
- Examples: nai tuluvas enar “may he/she come tomorrow”; nai hiruvalyes “may you find it”.
- More rarely the present tense is used: nai Eru mantëa tye “may God bless you [including now]”.
- Wishes for “to be” statements generally omit ná “be”: nai hínalya alassëa “may your child [be] happy”.
See also Chapter 3, Section §3.4.
12.6.2 Impersonal Verbs and Passive Voice:
- Impersonal Verbs: These verbs omit their subject in Quenya: ulë “[it] rains”.
- Passive Voice: Quenya has three ways of expressing passive voice, where the object of the action is emphasized over the subject (which may be entirely unexpressed).
- Omitting the subject in an impersonal construction: matë ni “[it] eats me”.
- Using an indefinite pronoun mo or ma: mo matë ni “one eats me”.
- Using a passive participle: nanyë matina “I am eaten”.
See also Chapter 9, Section §9.2.
12.6.3 Modal Verbs: Verbal moods for possibility, necessity or permissibility can be expressed in Quenya as follows.
- “I can do that” (I am capable of doing that) = polin carë sa (physically able) or istan carë sa (know how).
- “I may do that” (I am permitted to do that) = lertan carë sa (have no impediment to doing).
- “I might do that” (It is possible that I will do that) = ecë nin carë sa (imminent) or ecuva nin carë sa (future).
- More literally “there is a chance for me to do it” (impersonal).
- Speculative: “I must do that” (I am required to do that) = mauya nin carë sa.
- More literally “it is compelled for me to do it” (impersonal).
See also Chapter 10, Section §10.4.
12.6.4 Compound Tenses, Speculative: The compound tenses combine basic verb tenses with -në to put them in the past or -(u)va to put them in the future.
- Past imperfect mátanë “was eating” for actions that were ongoing in the past.
- Past perfect (a)mátiénë “had eaten” for actions that were completed in the past before some other past action.
- Past future matúvanë “was going to eat” for actions that were going to be performed after some other past action.
- Future imperfect mátauva “will be eating” for actions that will be ongoing in the future.
- Future perfect (a)mátiéva “will have eaten” for actions that will be complete before some other future action.
- Past future perfect [rare] (a)mátiévanë “would have eaten” for past hypothetical actions.
See also Chapter 11, Section §11.1.
12.6.5 Subjunctive, Speculative: Quenya’s basic adverbs and conjunctions of uncertainty are as follows.
- qui “if”: the weakest level of uncertainty, mostly used in conditionals as a conjunction meaning “if”.
- quiquië “whenever”: for more complex or habitual conditionals.
- cé “maybe, may”: the normal adverb of uncertainty, marking a statement as possibly unreal.
- This adverb is likely related to the impersonal verb ec- “may, have a chance to” described in Chapter 10, Section §10.4.1.
- céla “maybe not” is a negated variant of the above.
- quí(ta) “supposing, possibly, might”: the strongest level of uncertainty, for things that are very unlikely or known to be false, pure hypotheticals.
- This also functions as an “emphatic” hypothetical when the result is surprising or counterintuitive.
See also Chapter 11, Section §11.2.
12.7 Adjective and Adverb Summary
12.7.1 Adjectives: Adjectives generally precede the noun they modify, and must be plural if the noun they modify is plural (or partitive plural):
- Consonantal adjectives (usually ending in n) add i in the plural: locin “bent” → pl. locini.
- a-adjectives change the final a to ë: linta “swift” → pl. lintë.
- ëa-adjectives change the final ëa to ië: laurëa “golden” → pl. laurië.
- e-adjectives change the final ë to i: luinë “blue” → pl. luini.
- Speculative: o-adjectives (rare) change the final o to wi or ui: lungo “heavy” → pl. lungwi.
See also Chapter 4, Section §4.2.2.
12.7.2 Adverbs: Quenya has three ways of forming adverbs:
- Bare adjectives can be used as an adverb after the verb: nornes linta “he ran swift[ly]”.
- This is used when the adverb may be an attribute of the subject.
- The suffix -vë can be used to turn an adjective into an adverb: nornes andavë “he ran long”.
- This is used when the adverb is not an attribute of the subject or is far removed from the verb.
- Abstract nouns can be used as adverbs, often in an instrumental sense: nornes lintië “he ran [with] speed”.
- This last option is more obscure than the other two.
See also Chapter 9, Section §9.3.
12.7.3 Comparison and Intensives: Quenya doesn’t have a true comparative adjective form like English “brighter”, but has various intensive forms instead: ancalima “very bright”, arcalima “most bright”.
- Intensive: The intensive prefix is an(a)- “very” added to adjectives.
- The prefix is an- before vowels and most consonants.
- This is written an- before c, qu, but the pronunciation is añ-.
- Before m, p the prefix is am-.
- Before l, r, hl, hr the prefix is ana-. The forms before hr, hr are speculative.
- Superlative: The superlative prefix (actually a greater intensive) is ar(i)- “exceedingly, most”.
- In most cases the ar- prefix is simply added to the adjective.
- Comparison: The basic formula for comparison uses the preposition lá “beyond”.
- Anar (ná) calima lá Isil “the Sun is bright beyond the Moon”, meaning “the Sun is brighter than the Moon”.
- The Greatest: The formula for the greatest of a group is the intensive/superlative combined with the genitive plural.
- Eärendil ancalima elenion “Eärendil [is] very bright among stars”.
- Anar arcalima elenion “The Sun [is] most bright among stars” = “brightest”.
- Anar arcalima ilyaron “The Sun is brightest of all”.
- Comparative Adjective and Adverb: The adjective amba “more” and adverb ambë “more” may also be used.
- á anta nin amba lúmë “give me more time”.
- á serë ambë “rest more”.
See also Chapter 9, Section §9.4.
12.8 Syntax Summary
12.8.1 Word Order: Quenya word order is similar to English, but not identical:
- The basic Quenya word order is: subject, verb, object.
- Adjectives usually precede their noun and prepositions precede their phrase.
- Words with noun cases are freer in their word order.
- There are number of special circumstances where the usual order is violated, especially in poetry and with pronouns.
- The subject suffix comes after the verb.
- Pronoun objects sometimes precede the verb.
See also Chapter 4, Section §4.3.1.
12.8.2 Definite Article: The Quenya definite article is i “the”, but it is used less often than in English.
- Article Use: The article i is used:
- When a prior indefinite referent becomes definite: Elda túlë i ostonna. I elda mernë quetë i aranen. “An elf came to the city. The elf wanted to talk to the king”.
- When the referent is being marked as specific in this situation: Á latya i lattin “Open the window”.
- When the referent is specified as an abstract concept: I macil (ná) turwa tamma ohto “The sword is a powerful tool of war”.
- Article Non-Use: The article i is not used:
- With universally unique things: menel vs. “[the] heavens”.
- With epithets following a name: Elendil Voronda vs. “Elendil [the] Faithful”.
- When the noun is defined by a determining adjective: telda elda vs. “[the] last elf”.
- When the referent is defined by a genitive or possessive: má atano “[the] hand of a man”, atanwa macil “a man’s sword”.
- Note that the article is omitted from the modified noun, but may still be applied to the modifying noun.
- má i atano “[the] hand of the man”, i atanwa macil “the man’s sword”
See also Chapter 6, Section §6.4.
12.8.3 “To Be” Verb:
- ná-: The verb ná- is used to equate a (pro)noun to a noun or adjective like English “to be”.
- Aorist/Present: ná “is/am/are”
- Past: nánë “was/were”
- Perfect: anaië “has/have been”
- Future: nauva “will be”
- The aorist/present form ná favors the long forms of pronoun suffixes (nanyë, nalyë) except for nás “he/she/it is”.
- The verb ná can appear in various places in a phrase:
- Omitted completely: For simple subject-predicate statements in the present/aorist:
- i nauco hesto “the dwarf [is] a captain”, i elda halla “the elf [is] tall”.
- Before the predicate: With inflected forms (past/future or with pronouns):
- i nauco nánë hesto “the dwarf was a captain”, nalyë halla “you are tall”.
- After the predicate: In complex or impersonal expressions:
- i nauco i marë i orontessë hesto ná “the dwarf who lives in the mountain is a captain”, lauca ná “it is warm”.
- ëa-: The verb ëa- is equivalent to English “exist” and can only be followed by adverbs (usually of time) or prepositional expressions.
- Aorist/Present: ëa “exists”
- Future: euva “will exist”
- Past: engë “existed”
- Perfect: engië “has existed”, archaic †éye.
See also Chapter 2, Section §2.3.
12.8.4 Negation
- Quenya has a negative verb ui- “to not be”.
- Aorist/Present: ui “is/am/are not”
- Past: únë “was not”
- Perfect: uië “has/have not been”
- Future: úva “will not be”
- When used to negate verbs, ui- carries only the pronoun suffix (if any); the tense is carried on the negated verb:
- i atan ui mantë “the man did not eat”
- uin(ye) mantë “I did not eat”
See also Chapter 5, Section §5.5.
12.8.5 Subordinate Clauses
- The indeclinable relative pronoun i “who, which, that” is used to form a subordinate clause if the relative pronoun is the subject or the object of that clause.
- The verb in the clause must agree with the plurality of the original noun (referent) if the relative pronoun is the subject of the clause.
- The declinable relative pronoun ya “which, that” and ye “who, that” is used if the relative pronoun is declined into a noun case: yanna “to which”, yello “from who”.
- If the original noun (referent) is plural, the relative pronoun uses the plural form of the noun case. In the case of ye, it also uses its plural base form i-: yannar = ya-nna-r “which-to-(pl.)”, illon = i-llo-n “(who pl.)-from-(pl.)”
- Speculative: The declinable forms are also used if the relative pronoun is the object of a preposition.
See also Chapter 10, Section §10.1.
12.8.6 Numbers: Smaller numbers are as follows.
- min num. “one”
- atta num. “two”
- neldë num. “three”
- canta num. “four”
- lempë num. “five”
- enquë num. “six”
- otso num. “seven”
- toldo num. “eight”
- nertë num. “nine”
- quëan num. “ten”
- minquë num. “eleven”
- yunquë num. “twelve”
Larger numbers are:
- *nelquë num. “thirteen”
- *canquë num. “fourteen”
- lepenquë num. “fifteen”
- enenquë num. “sixteen”
- otoquë num. “seventeen”
- *tolquë num. “eighteen”
- neterquë num. “nineteen”
- !yuquain num. “twenty”
- !nelquain num. “thirty”
- !canquain num. “forty”
- !lepenquain num. “fifty”
- !enquain num. “sixty”
- !otoquain num. “seventy”
- !tolquain num. “eighty”
- !neterquain num. “ninety”
Two special numbers are used for solitary items and pairs:
- er adj. and adv. “one, alone”
- yúyo adj. “both”
Numbers larger than one follow the noun:
- atta “two” is used with singular nouns: elda atta “two elf”.
- Larger numbers are used with plural nouns: eldar neldë “three elves”.
- atta “two” uses “The Last Declinable Word” rule: quenten elda attan “I spoke to two elf”.
- Larger numbers are not declined: quenten eldain neldë “I spoke to three elves”.
Ordinal numbers (mostly) change the final vowel to -ëa:
- minya num. “first”
- attëa num. “second”
- neldëa num. “third”
- otsëa num. “seventh”
- quainëa num. “tenth”
Combined numbers put the smaller digit first, followed by the larger one: canta lepenquain “four fifty”, instead of the English order “fifty four”.
See also Chapter 6, Section §6.5.
12.9 Tengwar Summary
This chart shows the tengwar values used in Quenya. It is a modified version of the table from Appendix E with the addition of the tyelpetéma (series V).
|
I |
II |
III |
IV |
V |
| 1. |
t t |
p p |
c c |
qu qu |
ty ty |
| 2. |
nd nd |
mb mb |
ng ng |
ngw ngw |
ndy ndy |
| 3. |
þ s [þ] |
f f |
h -h- |
hw hw |
hy hy |
| 4. |
nt nt |
mp mp |
nc nc |
nqu nqu |
nty nty |
| 5. |
n n |
m m |
ñ n [ñ] |
ñw nw [ñw] |
ny ny |
| 6. |
r -r |
v v |
— |
w w |
y y |
| 7. |
7 r- |
rd rd |
l l |
ld ld |
ry ry |
| 8. |
s s̄ |
i ṡ |
ss ss |
, ss |
ly ly |
| 9. |
9 h- |
hr hr |
hl hl |
l i |
. u |
Quenya uses five vowel tehtar which can appear on short carriers (`), long carriers (~) or on preceding consonants (such as 1 = t):
- i = `B, í = ~B, ti = 1T
- e = `V, é = ~V, te = 1R
- a = `C, á = ~C, ta = 1E
- o = `N, ó = ~N, to = 1Y
- u = `M, ú = ~M, tu = 1U
The Quenya i-diphthongs use l and the u-diphthongs use .:
- ai = ai
- oi = oi
- ui = ui
- iu = iu
- eu = eu
- au = au
The tehtar for modifying Quenya consonants are:
- y-tehta: A pair of underdots Ï indicating a “y” sound; see series V in the tengwar chart above.
- long-tehta: An underbar ' indicating a double consonant - cc, ll, mm, nn, pp, rr, tt = cc ll mm nn pp rr tt.
- s-hook: A curl + indicating a following s - ps, ts, x [ks] = ps ts ks.
Tengwar punctuation symbols are:
- Comma “,” = =
- Period “.” = -
- Paragraph/document end = -= or --
- Question mark “?” = À
- Exclamation point “!” = Á
- Quotation marks “ ” = “ ”
See also Chapter 4, Section §4.1 and Chapter 5, Section §5.1.


Home
Docs
GitHub
Search
Welcome to page
TechRacers
Bringing Technology in Life
Empower every person and every organization on the planet to achieve more.


 Cow porchetta corned beef shoulder tail capicola. Tongue shoulder pastrami swine landjaeger andouille. Swine flank pancetta meatloaf.
MongoDB is a database. MongoDB's great manual, to get started with NoSQL and MongoDB.
Express is an app server. Check out The Express Guide or StackOverflow for more info.
AngularJS is web app framework. Angular's webiste offers alot. The Thinkster Popular Guide and Egghead Videos are great resources.
Node.js is a web server. Node's website and this stackOverflow thread, are great resources.


A JXTA {@link net.jxta.endpoint.MessageTransport} implementation which which provides message verification by examining message signatures. A virtual transport, the messages are transfered between peers using some other message transport.


create_hotkey(self,
folder,
description,
modifiers,
key,
contents)
| source code
|
Create a text hotkey
Usage: engine.create_hotkey(folder, description, modifiers, key,
contents)
When the given hotkey is pressed, it will be replaced with the given
text. Modifiers must be given as a list of strings, with the following
values permitted:
<ctrl> <alt> <super> <hyper> <shift>
The key must be an unshifted character (i.e. lowercase)
- Parameters:
folder - folder to place the abbreviation in, retrieved using
engine.get_folder()
description - description for the phrase
modifiers - modifiers to use with the hotkey (as a list)
key - the hotkey
contents - the expansion text
- Raises:
Exception - if the specified hotkey is not unique
|


{% extends "page.html" %} {% block stylesheet %} {{ super() }} {% endblock %} {% block loading_message %} {% endblock %} {% block site %}
Please click the back button to return to the previous page, or click here to go to the home page.
If you think this is an error, please contact us.
{% endblock %}


Module that creates and modifies parse trees of well formed boolean formulas.#
A parse tree of a boolean formula is a nested list, where each branch is either
a single variable, or a formula composed of either two variables and a binary
operator or one variable and a unary operator. The function parse produces
a parse tree that is simplified for the purposes of more efficient truth value
evaluation. The function polish_parse()
produces the full parse tree of a boolean formula which is used in functions
related to proof and inference. That is,
parse()
is meant to be used with functions
in the logic module that perform semantic operations on a boolean formula,
and polish_parse()
is to be used with
functions that perform syntactic operations on a boolean formula.
AUTHORS:
Chris Gorecki (2007): initial version
Paul Scurek (2013-08-01): added polish_parse, cleaned up python code, updated docstring formatting
Paul Scurek (2013-08-06): added
recover_formula()
,recover_formula_internal()
,prefix_to_infix()
,to_infix_internal()
Paul Scurek (2013-08-08): added get_trees, error handling in polish_parse, recover_formula_internal, and tree_parse
EXAMPLES:
Find the parse tree and variables of a string representation of a boolean formula:
sage: import sage.logic.logicparser as logicparser
sage: s = 'a|b&c'
sage: t = logicparser.parse(s)
sage: t
(['|', 'a', ['&', 'b', 'c']], ['a', 'b', 'c'])
Find the full syntax parse tree of a string representation of a boolean formula:
sage: import sage.logic.logicparser as logicparser
sage: s = '(a&b)->~~c'
sage: logicparser.polish_parse(s)
['->', ['&', 'a', 'b'], ['~', ['~', 'c']]]
Find the tokens and distinct variables of a boolean formula:
sage: import sage.logic.logicparser as logicparser
sage: s = '~(a|~b)<->(c->c)'
sage: logicparser.tokenize(s)
(['(', '~', '(', 'a', '|', '~', 'b', ')', '<->', '(', 'c', '->', 'c', ')', ')'], ['a', 'b', 'c'])
Find the parse tree of a boolean formula from a list of the formula’s tokens:
sage: import sage.logic.logicparser as logicparser
sage: t = ['(', 'a', '->', '~', 'c', ')']
sage: logicparser.tree_parse(t)
['->', 'a', ['~', 'c', None]]
sage: r = ['(', '~', '~', 'a', '|', 'b', ')']
sage: logicparser.tree_parse(r)
['|', 'a', 'b']
Find the full syntax parse tree of a boolean formula from a list of tokens:
sage: import sage.logic.logicparser as logicparser
sage: t = ['(', 'a', '->', '~', 'c', ')']
sage: logicparser.tree_parse(t, polish = True)
['->', 'a', ['~', 'c']]
sage: r = ['(', '~', '~', 'a', '|', 'b', ')']
sage: logicparser.tree_parse(r, polish = True)
['|', ['~', ['~', 'a']], 'b']
- sage.logic.logicparser.apply_func(tree, func)#
Apply
func
to each node oftree
, and return a new parse tree.INPUT:
tree
– a parse tree of a boolean formulafunc
– a function to be applied to each node of tree; this may be a function that comes from elsewhere in the logic module
OUTPUT:
The new parse tree in the form of a nested list.
EXAMPLES:
This example uses
apply_func()
wherefunc
switches two entries of tree:sage: import sage.logic.logicparser as logicparser sage: t = ['|', ['&', 'a', 'b'], ['&', 'a', 'c']] sage: f = lambda t: [t[0], t[2], t[1]] sage: logicparser.apply_func(t, f) ['|', ['&', 'c', 'a'], ['&', 'b', 'a']]
- sage.logic.logicparser.get_trees(*statements)#
Return the full syntax parse trees of the statements.
INPUT:
*statements
– strings orBooleanFormula
instances
OUTPUT:
The parse trees in a list.
EXAMPLES:
This example illustrates finding the parse trees of multiple formulas.
sage: import sage.logic.propcalc as propcalc sage: import sage.logic.logicparser as logicparser sage: f = propcalc.formula("((a|b)&~~c)") sage: g = "a<->(~(c))" sage: h = "~b" sage: logicparser.get_trees(f, g, h) [['&', ['|', 'a', 'b'], ['~', ['~', 'c']]], ['<->', 'a', ['~', 'c']], ['~', 'b']]
sage: i = "(~q->p)" sage: j = propcalc.formula("a") sage: logicparser.get_trees(i, j) [['->', ['~', 'q'], 'p'], ['a']]
sage: k = "p" sage: logicparser.get_trees(k) [['p']]
AUTHORS:
Paul Scurek (2013-08-06)
- sage.logic.logicparser.parse(s)#
Return a parse tree from a boolean formula
s
.INPUT:
s
– a string containing a boolean formula
OUTPUT:
A list containing the parse tree and a list containing the variables in a boolean formula in this order:
the list containing the parse tree
the list containing the variables
EXAMPLES:
This example illustrates how to produce the parse tree of a boolean formula
s
:sage: import sage.logic.logicparser as logicparser sage: s = 'a|b&c' sage: t = logicparser.parse(s) sage: t (['|', 'a', ['&', 'b', 'c']], ['a', 'b', 'c'])
- sage.logic.logicparser.parse_ltor(toks, n=0, polish=False)#
Return a parse tree from
toks
, where each token intoks
is atomic.INPUT:
toks
– a list of tokens. Each token is atomic.n
– (default: 0) an integer representing which order of operations are occurringpolish
– (default:False
) a boolean; whenTrue
, double negations are not cancelled and negated statements are turned into list of length two.
OUTPUT:
The parse tree as a nested list that depends on
polish
as follows:If
False
, then return a simplified parse tree.If
True
, then return the full syntax parse tree.
EXAMPLES:
This example illustrates the use of
parse_ltor()
whenpolish
isFalse
:sage: import sage.logic.logicparser as logicparser sage: t = ['a', '|', 'b', '&', 'c'] sage: logicparser.parse_ltor(t) ['|', 'a', ['&', 'b', 'c']]
sage: import sage.logic.logicparser as logicparser sage: t = ['a', '->', '~', '~', 'b'] sage: logicparser.parse_ltor(t) ['->', 'a', 'b']
We now repeat the previous example, but with
polish
beingTrue
:sage: import sage.logic.logicparser as logicparser sage: t = ['a', '->', '~', '~', 'b'] sage: logicparser.parse_ltor(t, polish = True) ['->', 'a', ['~', ['~', 'b']]]
- sage.logic.logicparser.polish_parse(s)#
Return the full syntax parse tree from a boolean formula
s
.INPUT:
s
– a string containing a boolean expression
OUTPUT:
The full syntax parse tree as a nested list.
EXAMPLES:
This example illustrates how to find the full syntax parse tree of a boolean formula:
sage: import sage.logic.logicparser as logicparser sage: s = 'a|~~b' sage: t = logicparser.polish_parse(s) sage: t ['|', 'a', ['~', ['~', 'b']]]
AUTHORS:
Paul Scurek (2013-08-03)
- sage.logic.logicparser.prefix_to_infix(prefix_tree)#
Convert a parse tree from prefix form to infix form.
INPUT:
prefix_tree
– a list; this is a full syntax parse tree in prefix form
OUTPUT:
A list containing the tree in infix form.
EXAMPLES:
This example illustrates converting a prefix tree to an infix tree:
sage: import sage.logic.logicparser as logicparser sage: import sage.logic.propcalc as propcalc sage: t = ['|', ['~', 'a'], ['&', 'b', 'c']] sage: logicparser.prefix_to_infix(t) [['~', 'a'], '|', ['b', '&', 'c']]
sage: f = propcalc.formula("(a&~b)<->~~~(c|d)") sage: logicparser.prefix_to_infix(f.full_tree()) [['a', '&', ['~', 'b']], '<->', ['~', ['~', ['~', ['c', '|', 'd']]]]]
Note
The function
polish_parse()
may be passed as an argument, buttree_parse()
may not unless the parameterpolish
is set toTrue
.AUTHORS:
Paul Scurek (2013-08-06)
- sage.logic.logicparser.recover_formula(prefix_tree)#
Recover the formula from a parse tree in prefix form.
INPUT:
prefix_tree
– a list; this is a full syntax parse tree in prefix form
OUTPUT:
The formula as a string.
EXAMPLES:
This example illustrates the recovery of a formula from a parse tree:
sage: import sage.logic.propcalc as propcalc sage: import sage.logic.logicparser as logicparser sage: t = ['->', ['&', 'a', ['~', ['~', 'c']]], ['~', ['|', ['~', 'c'], 'd']]] sage: logicparser.recover_formula(t) '(a&~~c)->~(~c|d)' sage: f = propcalc.formula("a&(~~c|d)") sage: logicparser.recover_formula(f.full_tree()) 'a&(~~c|d)' sage: r = ['~', 'a'] sage: logicparser.recover_formula(r) '~a' sage: s = ['d'] sage: logicparser.recover_formula(s) 'd'
Note
The function
polish_parse()
may be passed as an argument, buttree_parse()
may not unless the parameterpolish
is set toTrue
.AUTHORS:
Paul Scurek (2013-08-06)
- sage.logic.logicparser.recover_formula_internal(prefix_tree)#
Recover the formula from a parse tree in prefix form.
INPUT:
prefix_tree
– a list; this is a simple tree with at most one operator in prefix form
OUTPUT:
The formula as a string.
EXAMPLES:
This example illustrates recovering the formula from a parse tree:
sage: import sage.logic.logicparser as logicparser sage: import sage.logic.propcalc as propcalc sage: t = ['->', 'a', 'b'] sage: logicparser.recover_formula_internal(t) '(a->b)' sage: r = ['~', 'c'] sage: logicparser.recover_formula_internal(r) '~c' sage: s = ['d'] sage: logicparser.recover_formula_internal(s) 'd'
We can pass
recover_formula_internal()
as an argument inapply_func()
:sage: f = propcalc.formula("~(d|c)<->(a&~~~c)") sage: logicparser.apply_func(f.full_tree(), logicparser.recover_formula_internal) '(~(d|c)<->(a&~~~c))'
Note
This function is for internal use by
logicparser
. The function recovers the formula of a simple parse tree in prefix form. A simple parse tree contains at most one operator.The function
polish_parse()
may be passed as an argument, buttree_parse()
may not unless the parameterpolish
is set toTrue
.AUTHORS:
Paul Scurek (2013-08-06)
- sage.logic.logicparser.to_infix_internal(prefix_tree)#
Convert a simple parse tree from prefix form to infix form.
INPUT:
prefix_tree
– a list; this is a simple parse tree in prefix form with at most one operator
OUTPUT:
The tree in infix form as a list.
EXAMPLES:
This example illustrates converting a simple tree from prefix to infix form:
sage: import sage.logic.logicparser as logicparser sage: import sage.logic.propcalc as propcalc sage: t = ['|', 'a', 'b'] sage: logicparser.to_infix_internal(t) ['a', '|', 'b']
We can pass
to_infix_internal()
as an argument inapply_func()
:sage: f = propcalc.formula("(a&~b)<->~~~(c|d)") sage: logicparser.apply_func(f.full_tree(), logicparser.to_infix_internal) [['a', '&', ['~', 'b']], '<->', ['~', ['~', ['~', ['c', '|', 'd']]]]]
Note
This function is for internal use by
logicparser
. It converts a simple parse tree from prefix form to infix form. A simple parse tree contains at most one operator.The function
polish_parse()
may be passed as an argument, buttree_parse()
may not unless the parameterpolish
is set toTrue
.AUTHORS:
Paul Scurek (2013-08-06)
- sage.logic.logicparser.tokenize(s)#
Return the tokens and the distinct variables appearing in a boolean formula
s
.INPUT:
s
– a string representation of a boolean formula
OUTPUT:
The tokens and variables as an ordered pair of lists in the following order:
A list containing the tokens of
s
, in the order they appear ins
A list containing the distinct variables in
s
, in the order they appear ins
EXAMPLES:
This example illustrates how to tokenize a string representation of a boolean formula:
sage: import sage.logic.logicparser as logicparser sage: s = 'a|b&c' sage: t = logicparser.tokenize(s) sage: t (['(', 'a', '|', 'b', '&', 'c', ')'], ['a', 'b', 'c'])
- sage.logic.logicparser.tree_parse(toks, polish=False)#
Return a parse tree from the tokens in
toks
.INPUT:
toks
– a list of tokens from a boolean formulapolish
– (default:False
) a boolean; whenTrue
,tree_parse()
will return the full syntax parse tree
OUTPUT:
A parse tree in the form of a nested list that depends on
polish
as follows:If
False
, then return a simplified parse tree.If
True
, then return the full syntax parse tree.
EXAMPLES:
This example illustrates the use of
tree_parse()
whenpolish
isFalse
:sage: import sage.logic.logicparser as logicparser sage: t = ['(', 'a', '|', 'b', '&', 'c', ')'] sage: logicparser.tree_parse(t) ['|', 'a', ['&', 'b', 'c']]
We now demonstrate the use of
tree_parse()
whenpolish
isTrue
:sage: t = ['(', 'a', '->', '~', '~', 'b', ')'] sage: logicparser.tree_parse(t) ['->', 'a', 'b'] sage: t = ['(', 'a', '->', '~', '~', 'b', ')'] sage: logicparser.tree_parse(t, polish = True) ['->', 'a', ['~', ['~', 'b']]]


To: Kit Transue From: Tatiana Obolentseva
Re: Test plan Date: 6/20/01
FUNCTIONAL AREAS FOR SYSTEM TESTING
The following is a grid of the various elements of CodeRover that require testing. The introduction of additional languages makes the amount of time required for complete testing combinatoric. Needless to say exhaustive testing becomes extremely expensive:
Total time for exhaustive testing all functionality on all platforms for all languages: ~512 hours
“General” indicates functionality that is commonly used and central to the product. The time required is as follows:
Total time for system testing on two platforms (NT, Win2000) for one language:
~128 hours * 2 platforms = ~256 hours
Total time for system testing on two platforms (NT, Win2000) for two languages: ~256 hours * 2 languages = ~512 hours
When the release is ready and the last of the defects repaired, the final requirement is general testing on the major platforms and smoke testing on the others. This is to insure the quality of the final build.
Total time for Release Testing, General Functionality two platforms (NT, Win2000) for two languages
~87.5 hours * 2 platforms* 2 languages = ~350 hours
|
AREA |
Hours per platform |
NT C++ |
NT JAVA |
Win2000 C++ |
Win2000 JAVA |
Comments |
|
Modelbuild |
9.0/6.0 |
X |
X |
X |
X |
|
|
1. CodeRover modelbuild |
3.0 |
X |
X |
X |
X |
|
|
without QA Caliper information |
1.0 |
X |
X |
X |
X |
|
|
with QA Caliper information |
2.0 |
X |
X |
X |
X |
|
|
2. Batch Mode modelbuild |
3.0 |
X |
X |
X |
X |
|
|
without QA Caliper information |
1.0 |
X |
X |
X |
X |
|
|
with QA Caliper information |
2.0 |
X |
X |
X |
X |
|
|
3. Project Editor modelbuild |
3.0 |
X |
X |
X |
X |
|
|
without QA Caliper information |
1.0 |
X |
X |
X |
X |
|
|
with QA Caliper information |
2.0 |
X |
X |
X |
X |
|
|
CodeRover |
68.5/39.0 |
X |
X |
X |
X |
|
|
1. Service Chooser window |
0.5 |
X |
X |
X |
X |
|
|
Connect to the server using LAN connection |
0.25 |
X |
|
X |
|
|
|
Connect to the server using HTTP connection |
0.25 |
X |
|
X |
|
|
|
2. Preferences |
25/2.0 |
X |
X |
X |
X |
|
|
Integration with External Editors |
4.0/2.0 |
X |
X |
X |
X |
|
|
a. Microsoft Visual Studio |
1.0 |
X |
|
X |
|
|
|
b. Emacs |
1.0 |
X |
X |
X |
X |
|
|
c. VIM |
1.0 |
X |
X |
X |
X |
|
|
d. JBuilder |
1.0 |
|
X |
|
X |
|
|
Look & Feel |
3.0 |
X |
|
X |
|
|
|
a. Window |
1.0 |
X |
|
X |
|
|
|
b. Metal |
1.0 |
X |
|
X |
|
|
|
c. Motif |
1.0 |
X |
|
X |
|
|
|
Memory test |
8.0 |
X |
|
X |
|
|
|
Connect to the Proxy |
10.0 |
X |
X |
X |
X |
|
|
3. Check “Export” and “Print” functionality |
3.0 |
X |
|
X |
|
|
|
4. Project pane |
1.0 |
X |
X |
X |
X |
|
|
AREA |
Hours per platform |
NT C++ |
NT JAVA |
Win2000 C++ |
Win2000 JAVA |
Comments |
|
Check the consistency between Project Tree and Browser list |
1.0 |
X |
|
X |
|
|
|
5. Browser pane |
8.0/7.5 |
X |
X |
X |
X |
|
|
Check all queries and verify results |
4.0 |
X |
X |
X |
X |
|
|
Check “Search” ,“Filter” and “Sort” functionality |
0.5 |
X |
X |
X |
X |
|
|
Verify history buttons |
0.5 |
X |
|
X |
|
|
|
Verify queries from pop up menu |
1.0 |
X |
|
X |
|
|
|
Verify integration with External Editors and Internal View |
2.0 |
X |
X |
X |
X |
|
|
6. Source pane |
4.0/3.5 |
X |
X |
X |
X |
|
|
Verify queries from pop up menu |
1.0 |
X |
X |
X |
X |
|
|
Text find functionality |
0.5 |
X |
|
X |
|
|
|
Verify integration with External Editors |
2.0 |
X |
X |
X |
X |
|
|
Verify history buttons |
0.5 |
X |
|
X |
|
|
|
7. Call Tree pane |
3.0 |
X |
X |
X |
X |
|
|
Verify “Call tree” and “Where called” graphs |
1.0 |
X |
X |
X |
X |
|
|
Verify integration with External Editors and Internal View |
2.0 |
X |
X |
X |
X |
|
|
8. Inheritance pane |
3.0 |
X |
X |
X |
X |
|
|
Verify “Superclasses” and “Subclasses” graphs |
1.0 |
X |
X |
X |
X |
|
|
Verify integration with External Editors and Internal View |
2.0 |
X |
X |
X |
X |
|
|
9. Caliper pane |
9.0/8.0 |
X |
X |
X |
X |
|
|
Verify QA Caliper results for each query |
2.0 |
X |
X |
X |
X |
|
Check the consistency between Project Tree and QA Browser (make sure that the result in the QA Browser is for selected projects or modules in the Project Tree or Browser pane).
1.0
X
X
X
X
Verify “New”, “Removed” and “Unchanged” hits for QA Caliper Delta
2.0
X
X
X
X
Verify user attributes functionality
1.0
X
X
X
X
Verify integration with External Editors and Internal View
2.0
X
X
X
X
Verify Report generation
1.0
X
X
X
X
10.  Impact pane
6.0
X
X
X
X
AREA
Hours per platform
NT
C++
NT
JAVA
Win2000
C++
Win2000
JAVA
Comments
Check all queries for all entity kinds (class etc) and verify results
3.0
X
X
X
X
Verify integration with External Editors and Internal View
2.0
X
X
X
X
Verify Report generation
1.0
X
X
X
X
12.  Verify AST Tree GUI
2.0
X
X
X
X
2. Verify TPM scripts generation
functionality
2.0
X
X
X
X
3. Generate TPM scripts results for
different scopes
3.0
X
X
X
X
4.  Check “Open”, “Save”, “Save as” etc
functionality
1.0
X
X
2. Project Query Editor pane
3.0/2.0
X
X
X
X
Verify disable and enable (folders, queries) functionality for projects (subprojects or files)
2.0
X
X
X
X
Check change value and arguments for queries and folders in the QA Project Tree
1.0
X
X
3.  Build model with QA Information using
new policy file and verify QA
information
3.0
X
X
X
X
Project Editor
9.5/8.0
X
X
X
X
1. Generate new project (verify “Add
files (projects, subprojects)” and
“Delete” functionality
2.0
X
X
X
X
2. Verify all functions from “View” menu
1.0
X
X
X
X
3. Verify “Filter” functionality
0.5
X
X
4. Verify “Extensions settings” in the
“Compiling options” pane
2.0
X
X
X
X
5. Check “Open”, “Save”, “Save as” etc
functionality
1.0
X
X
6. Run modelbuild and verify modelbuild
messages in the message box
3.0
X
X
X
X
CodeRover Help
10.0
X
X
1. Verify CodeRover Help GUI
5.0
X
X
Check “Table of contents” pane
1.0
X
X
Check “Index” pane
1.0
X
X
Verify “Search” functionaity
1.0
X
X
Check all links in the text panel
2.0
X
X
2. Verify contents sensitive functionality
For each pane (window) in the CodeRover GUI
3.0
X
X
AREA
Hours per platform
NT
C++
NT
JAVA
Win2000
C++
Win2000
JAVA
Comments
3. Check documentation in the CodeRover
help and verify that it is up-to-date
2.0
X
X
Documentation
3.0
X
X
1. Check documentation that it is
up-to-date
3.0
X
X
License Management
1.0
X
X
1. Verify the effectiveness of licenses to
prevent unwanted use
1.0
X
X
CodeRover InstallShield package
6.0
X
X
1. Install/Uninstall functionality
1.0
X
X
2. Test new licensing mechanism using
different Serial Numbers
3.0
X
X
3. Check prebuild models, documentations
and release notes
2.0
X
X


presented at
November 12, 2012
via Introduction to Events by Quirksmode.org
Show Pointless Alert
via JavaScript Events Best Practices on Stackoverflow
OMGWTFBBQ?!?!
element.addEventListener('click', functionName, false);
click not onclick
via Advanced Event Registration Models by Quirksmode
element.attachEvent('onclick', functionName);
via JavaScript vs. jQuery by AlbertoPL
(Pseudo code)
$('selector').event(function() {
//Your Code Goes Here
});
$('a').click(function() {
alert('Hello World');
});
Just kidding. There's more…
this is a special variable that refers to the specific element triggering the event.
$('a').click(function () {
alert(this.href);
});
You can use this as a selector and use jQuery methods just like any other element.
$('li').click(function() {
alert( $(this).text() );
});
Using keyup() attached to an input field, we can check if the value of the input meets a certain criteria.
$('input').keyup(function() {
$(this).attr('class', '');
var val = $(this).val();
if( val.length < 4 ) {
$(this).addClass( 'bad' );
}
});
This is useful for checking if certain fields are completed or you want to perform an AJAX request.
$('form').submit(function() {
if( condition == false ) {
//returning false cancels the form from being submitted.
return false;
}
//returning true will allow the form to be submitted.
return true;
});
Displays a confirmation box asking if you want to search for the entered term on Google.
$('form').submit(function() {
return confirm('Are you sure you want to search Google?');
});
jQuery passes an event object to the function being triggered by the event.
The event object is normalized across different browsers and contains extra data about the context of the event.
Get x most recent followers and move them around the screen as a swarm based on where you click.
$(document).mouseup(function(e) {
imgAttract(e.pageX, e.pageY);
});
via Follow the Twitter by Me
Tweet me, @kingkool68, or contact me.


CEO of 3Degrees, Steve McDougal, on offsetting carbon emissions with transportation
To tackle climate change, 3Degrees helps corporations implement renewable energy strategies. Recently, more corporations are beginning to tap into the opportunity to also reduce their transportation emissions with renewables and offsets. Steve McDougal discusses 3Degrees’ partnership with Lyft and Etsy to offset their carbon emissions. He also shares his optimism for 2020, where he hopes that more progressive transportation policies will be implemented and low-carbon fleets will be scaled across large corporations.


!DOCTYPE html>
In high school, I took computer networking classes called Cisco Networking Academy & Cisco Networking Professional.
Academy: prepping for Cisco Certified Networking Associate (CCNA) examination (Certfied July 2013 - 2016). Learned:
Professional: Delve deeper into concepts from Academy.


There was a late episode from "Star Trek: The Next Generation" which had the new Enterprise crew rescue Scotty from the old series. Through the course of this episode, Scotty gets homesick, and, through the magic of the holodeck, he visits the bridge of the old Enterprise and reminisces over a bottle of Romulan ale (or somesuch).
I'm told that this old Enterprise bridge was borrowed from a Star Trek fan club: the fan club actually went and built the bridge in precise detail, and Paramount found it easier to rent it than build their own.
I'm surprised this story didn't make it into the documentary, "Trekkies". It would have fit in, alongside the stories of the 15-year-old fan whose club is making a movie -- he's doing the special effects on his PC -- or the dentist who dresses up as a Star Fleet officer to see his patients (and has his receptionists and assistants dress in uniform, also). Or, for that matter, with the Whitewater juror who came to court every day in her Commander's uniform. Such is the energy and zeal being unleashed on things Star Trek by its fans, and spilling out into the mainstream world.
I have to admit that I can identify an undisclosed number of Star Trek episodes given only a five-second sample, but not all of them, and probably not the majority from ST:DS9 or ST:V. I have never worn Vulcan ears and remain horrified by the "Q Virus" story from "Trekkies". As a more casual fan, seeing all this wackiness from more ardent fans is a treat: there's sufficient familiarity with the milieu to identify with much of the more extreme behavior, and to be surprised in a good way by the creative ways fan devotion is expressed. Yes, I know that Commander Sisko shaved his head and grew a goatee midway through the series, but would I have imagined that a fan would take the Sisko action figure, file off its plastic hair and paint a little goatee on it?
And Star Trek is a positive force, with notions of public service deeply embedded in its vision of the future (for an interesting discussion, take a look at this Salon article: http://www.salonmag.com/ent/movies/feature/1999/06/15/brin_main/index.html). This moral vision has not been lost on its fans. The woman who wore the Commander's uniform to the Whitewater jury, for example, heads up a local fan club, and her reasoning for wearing the uniform is that the fan club is dedicated to community service, and what better represents civic duty than serving on a jury? The uniform is merely the visible symbol of this ideal of service. Indeed, the idea of community service crops up here and there among the fans highlighted in "Trekkies", from the aforementioned Commander to the local Klingon crew. The dentist who dresses up in uniform is just trying to make his patients feel better -- the hokey transporter set up over the dentist's chair is meant to transport the patient away from the root canal procedure. Overall, Star Trek has been a positive influence, whether as a spark for individual creativity or as a larger framework for public consciousness. There can be worse things than being a Trekkie.
So, is there a real difference between the story of Babe Ruth visiting sick kids in the hospital and Kate Mulgrew, Capt. Janeway from ST:V, doing the same? Both are indulging the passions of their fans, giving them a chance to feel a bit better in their illnesses. Baseball and other sports are more revered and accepted than Star Trek by the mainstream -- we don't give weird and slightly disgusted looks to people who know who won the Cy Young in 1966, and we think the guys who paint their bodies in the team's colors and stand half naked in subzero weather are just jolly clowns -- but it's just a particular pastime, hobby or passion. [A Userfriendly cartoon has nice swipe at this silly bias: http://www.userfriendly.org/cartoons/archives/99may/19990516.html]
"Trekkies" is a good documentary, but like most documentaries, it doesn't get much screen time. In New York, it's currently playing at the local 2nd-run movie house (known as the $3-movie theater in a city where the average ticket is $9) without having actually made it to the first-run houses. A pity: it's worth it for both fans and non-fans to see Trek followers at their most ardent, and see that, while their behavior may appear kooky or extreme, it's not really a bad thing, all things considered.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Class that can read features from a Kaldi archive and process them (cmvn and splicing)
More...
|
| def | __init__ (self, scpfile, cmvnfile, utt2spkfile, context_width) |
| | create a FeatureReader object More...
|
| |
| def | getUtt (self) |
| | read the next features from the archive, normalize and splice them More...
|
| |
| def | nextId (self) |
| | only gets the ID of the next utterance (also moves forward in the reader) More...
|
| |
| def | prevId (self) |
| | only gets the ID of the previous utterance (also moves backward in the reader) More...
|
| |
|
def | split (self) |
| | split of the features that have been read so far
|
| |
|
|
| reader |
| |
|
| reader_cmvn |
| |
|
| utt2spk |
| |
|
| context_width |
| |
Class that can read features from a Kaldi archive and process them (cmvn and splicing)
§ __init__()
| def batchdispenser.FeatureReader.__init__ |
( |
|
self, |
|
|
|
scpfile, |
|
|
|
cmvnfile, |
|
|
|
utt2spkfile, |
|
|
|
context_width |
|
) |
| |
create a FeatureReader object
- Parameters
-
| scpfile | path to the features .scp file |
| cmvnfile | path to the cmvn file |
| utt2spkfile:path | to the file containing the mapping from utterance ID to speaker ID |
| context_width | context width for splicing the features |
§ getUtt()
| def batchdispenser.FeatureReader.getUtt |
( |
|
self | ) |
|
read the next features from the archive, normalize and splice them
- Returns
- the normalized and spliced features
§ nextId()
| def batchdispenser.FeatureReader.nextId |
( |
|
self | ) |
|
only gets the ID of the next utterance (also moves forward in the reader)
- Returns
- the ID of the uterance
§ prevId()
| def batchdispenser.FeatureReader.prevId |
( |
|
self | ) |
|
only gets the ID of the previous utterance (also moves backward in the reader)
- Returns
- the ID of the uterance
The documentation for this class was generated from the following file:


Since 2003, cases of people who fell victim to fraud committed by these study-abroad agencies has raised public attention.
China Central Television (CCTV) reported on several common tricks used by these agencies. Some lie about their certification, what they could do for their customers ability and the situation overseas to unknowing clients. They would pocket the customers’ money, shirk their responsibilities when caught.
“These institution and individuals took advantage of Chinese parents’ aspirations for their children and their blind trust on foreign-related companies, in order to make profit unethically and organize illegal activities,” said the report.
In response, the Ministry of Education launched the website of Foreign - related Education Information Supervision Network (FE Network) on 2003. The network lists of legal foreign education institutions and study-abroad agencies that have gained the recognition of the Chinese government.
The website also publishes national policies updates, important events and notifications related to foreign education.
Every study-abroad related agency in the country needs to submit annual report about its business situation and future plans to local education and policy departments.
Failing to do so or if the report is problematic, the State Administration for Industry and Commerce has the right to force the agencies to rectify and reform until they meet the requirements.
Improved regulations and policies plus a rising middle class in China have meant more and more students are able to study overseas.This, in turn, led to increasing competition to get into good schools.
Some agencies try to convince students that they should first study so-called preparatory courses in the countries they wanted to go to before applying to universities.
“Some classmates of mine chose to study at community colleges first in the U.S., then apply to other universities after that,” said Shan Tongxun, a girl from Beijing who is now studying in New York.
But some students soon realise that shelling out a lot of money to the agencies was no guarantee for places at top universities.
“There are tough criteria such as high scores in the SAT and other academic evaluation,” said Shan.
Coco Ren, a school mate of Shan in Beijing, agreed.“Some hard working students do end up in good universities after community college,” Coco said.
Some though are misguided in the approach to getting an oversea education. In some cases, the diplomas they were awarded turned out to be fake, or invalid.
Tang Jun, for example, became notorious in 2010. He was the founder of a consultant company who claimed to have worked for some big companies such as MicroSoft. Tang was accused of lying about going to had The California Institute of Technology in his book by Fang Zhouzi, a scientific writer who is well known for his campaigns against various pseudoscience and fraud in China.
Also, the school where he gained his doctorate degree, Pacific Western University (now California Miramar University), was a “diploma mill” that’s not qualified to issue doctorates.
According to Chicago Sun-Times, Pacific Western University’s license was suspended between 1994 to 1996, yet Tang claimed that he gained the degree in 1995.
Tang and the authenticity of his diplomas stirred a heated debate. In 2011, Tang admitted in an interview that he bought a diploma from Pacific Western University for $3000 U.S.
“That was because I felt shameful that I didn’t have a doctorate degree,” said Tang in the interview, “I have to say it was out of vanity.”
The scandal of Tang Jun’s fake diploma rang alarm bells for these diploma mills. The Ministry of Education then published a list of unqualified universities which study-abroad agencies tried to cheat their customers into attending.
In recent decades, the number of Chinese students who wish to study abroad has exploded. This, in turn, created business opportunities. English education institutions, visa helper centers and later study-abroad agencies, which act as one stop shops for students who want to go overseas, are now all over China
In 1978, when the Chinese government began Reform and Opening up, the 40-years’ break of Chinese education due to war and political instability was finally ended, families who could afford it, tried every which way to send their children abroad. The patriarch leader, Deng Xiaoping, expanded the quota of students who could go overseas from “around ten”, to “hundreds and thousands” (要成千上萬地派，不是只派十個八個").
In 1980, China began to grant approval for self-funded students to study abroad. Those seeking a foreign education increased ten times between 1983 and 1986, said a documentary about the history of oversea education done by Phoenix TV. Only one year later by 1987, 100 thousand Chinese students went abroad for education.
According to Prof.Wang’s analysis, over 220 thousands student went to over 100 different countries and regions for education during 1978 to 2000, covered almost every science and social science majors.
In late 1980s and early 1990s, many institutions opened up to prepare students for life outside China. Not only did they provide English classes, they also arranged applications to schools and universities overseas and helped with visa preparation. New Oriental Education, the biggest English education institution in China today with more than 67 branch offices now, was founded at that time.
A major obstacle for Chinese students in that period was a lack of access to information on education institutions overseas. They didn’t know how to apply nor did they know what would happen once they went abroad.
Agents, consultants and so-called “foreign ambassadors” then appeared. They worked for English education companies and helped to sort out applications for the students.
The lack of regulation on how these companies and agents operate led to cases of fraud and exploitation of families who aspired for a better future for their children.
Yun Jiang (not her real name) was a high school student at Beijing. One day in 2003, she saw an advertisement for a China Education Service Center” (CESC) in a newspaper. It offered services for students who wanted to go to university in Germany.
Yun thought her dream of going overseas would come true, but it turned out to be a nightmare.
That October, Yun’s father and her signed a contract with CESC and paid 15,000 RMB. The institution promised that after a one-year language course, and if Yun could pass the test, she could be admitted to a public university in Germany.
The family then paid another 12,200 Euros, approximately 90,000 RMB. That was supposed to include all the tuition, processing fees, accommodation and other course charges, Yun and four other students from Beijing signed similar contracts with CESC. They arrived in Augsburg, Germany, in February 2004.
Ten months’ study later, the four students received a notification from the Germany language school in Augsburg, saying that the school had not received their tuition fees since October, 2004. They also found that of the ten months’ worth of insurance fee they paid through CESC, only one month’s was actually paid to the German school.
The parents contacted CESC manager, Li Jingyan. Li told them that CESC would fix the problem. But that never happened.
In order to keep their visas, the four students had no choice but to pay the rest of the fees themselves.
A year later, Yun passed the language test.
But CESC never helped her to apply to the university she wanted to go. Yun then started to apply to a private school herself. Her father then found out that Chinese high school students were not allowed to apply for public universities in Germany without a qualified preparation course’s diploma. It was only then that they realisd CESC had been lying to them.
Yun’s family then filed a fraud claim against CESC.
In an email, CESC told JingHua Newspaper that the manager Li Jingyan, had colluded with a man named Yang Zheng. They apparently pocketed the money. The company, the email said, had never hired Yang Zheng. They claimed they had already fired Li by the time they received the claim.
The email also pointed out that Yun and other students’ parents were responsible too because they didn’t follow the contract to give the money directly to the company. Instead they paid Li.
“The company can’t supervise the actions of every employee everyday,” CESC said in the reply, “it’s very likely that they took the money for themselves”.
CESC was founded on 1984 by the National Education Commission of the People’s Republic of China as one of four official institutions that dealt with study-abroad affairs. But it changed into a limited company in 2001. In 2005, CESC’s publications still claimed that it was operating under the Ministry of Education. In 2009, the Ministry of Education stated on their official website that “although it has the title of ‘China education’, CESC did not belong to the ministry in any form.”
Yun told JingHua Newspaper in 2005 that she was frustrated, anxious and busy. A preparatory entrance test for the private school she was interested in might be cancelled because not enough students had registered.
She rented a place with several other people and could only afford one meal a day: “It’s very expensive here,” said Yun.
Little did Yun know that she was just one of many victims of fraudulent study-abroad agencies, similar things happened to another kid that was reported by the Ministry of Education as a warning case.
Due to low information accessibility and transparency, the same trick of language school, preparatory courses and public university that some agencies played had hoodwinked a lot of Chinese high school students in the early 2000s, as recorded by the Ministry of Education.
According to the Ministry of Education, one student was cheated out of more than 10,000 RMB in expenses and 15,000 RMB in agency fees. He spent three years studying at a language center in Köln,Germany. The student, who wanted to remain anonymous, was settled in a house that was remote from the city.
His teachers were immigrants from the former Soviet Union and not native German speakers. For three years, the agency kept changing its claim of what it could do for the student’s study plan and his visa arrangement.
He was initially promised that he would share an apartment with only one other person, get a German language qualification, have the chance of being admitted into a German university. None of it came true.
A certain Mr. Xu, the so-called “Chief of Student Union” in Germany showed up at the language school, forced the students to sign contracts with language center without mutually agreement on the payment and intrigued new students to buy expensive traffic plans to get kickback from the traffic companies.
Despite Yun’s case and another boy’s case been reported by the Ministry of Education at that time, several study agencies linked to CESC continue to operate today.
In April 2017, CESC’s website still claimed that it “originally belong to the Ministry of Education”. The website though had not been updated for ten years.
According to the Ministry of Education’s study-abroad information website, CESC’s was still on the list of licensed agencies that are qualified to deal with study-abroad business, not as what they claimed on the their website, that it was expired by 2010.
The site directs users to the advertisement page of another education agency, earthedu.com.
This new agency shared the same address and business license as CESC, except the liable party named in the licence was “China Center for International Information Exchange” or “Eastday.com study-aboard”. Clicking around, the website turned out to be an advertisement of another agency: study-abroad 360.
At the same time, CESE’s Baidu page claims that the agency has been working with yet another a study-abroad website: juesheng.com since 2012.
The Baidu page also states that CESC has a group of education consultants, several of whom, it says, are senior government officers and university professors. The identities of these individuals could be confirmed on the official websites of the institutions they belonged, but there is no proof of the links with CESC.
As for juesheng.com, it is introduced as an organization to organization education gateway.
Moreover, several institutions that claimed to be CESC’s sub-companies in Yangzhou, Wuhan and other Chinese cities continue to hold conferences and sharing sessions on studying overseas. They share the same logo claiming their links to the Ministry of Education, on their websites.
(Caption: Logo of CESE's sub-company in Hubei)


Fathom is dynamic software that’s fun and effective for teaching data analysis and statistics. It’s also a powerful tool for high school students to use for modeling with mathematics, as required by the Common Core State Standards. In addition to helping students understand algebra, precalculus and statistics, Fathom’s powerful data analysis capabilities make it an excellent tool for the physical and biological sciences, as well as for social science courses.


Motivation
Poland started the Family 500+ program to provide families benefits in an effort to fight high
levels of childhood poverty. Families receive 500PLN per month for each child
after the first until the child’s 18th birthday. The program was announced in early-mid 2015 and
went into effect April 2016. At the same time, Poland has been experiencing a declining birth rate
for many years and the Family 500+ program hoped to encourage fertility. I decided to focus on
what effects this program has had on the country’s birth rate.
Narrative Visualization
The hybrid narrative structure I used for this visualization is Interactive Slideshow.
I am using this structure to tell a short story regarding two areas of investigation. It is organized
with an introduction, an "About" slide the viewer can navigate down to. Navigating right brings the viewer to
the first slide where they read a short description of the information presented and then navigate
through chart scenes with a "Next" button or individual scene buttons to see the story, and ending with an opportunity to further explore data.
The viewer then navigates right to the next slide where they view the second chart's scenes for the story
and individual data exploration. Arrows in the lower right hand corner navigate slides.
Scenes
The stories in the slides are told in a consistent manner throuh the use of annotations on each scene in
addition to the detailed info on the side. The viewer can choose to step through the scenes in any order
based on the scene numbers in the buttons at the top of the graph. Following the natural progression
through the numbered scenes by clicking the "Next" button or scene numbers viewers are guided through the information I chose to highlight.
The first slide consists of multiple scenes covering the total births over the past
decade as well as births by birth order. The viewer can choose to step through the scenes in any order
based on the scene numbers in the buttons at the top of the graph, and following those scenes in order
tells the story of the overall decreasing birth rate in the country until the start of
the Family 500 program, after which overall birth rate increases. The viewer then learns that the
births of second and third children increase greatly, which are the children targeted by the program,
indicating a measurable level of success. The final scene in this slide allows the viewer to explore further.
The viewer can then transition the presentation to the next slide where they are presented with an
investigation on the age of mothers when they gave birth. It is a stacked bar chart with each years'
data being a stack of births broken down by marital status and location, grouped by mother's
age. This identifies the demographics most affected by the introduction of the program.
This follows the same scene presentation as the first slide by
providing scene navigation buttons at the top of the chart. It also follows the consistent
annotation structure to tell the story across scenes following the natural progression of the numbered
slides. The viewer is told the story on decreasing or slowing birth rate, especially in younger mothers,
until the start of the program when birth rate goes up across all age groups, espcially older mothers.
The viewer can explore the full data at the final scene.
Annotations
Annotations are used in the scenes to highlight meaningful elements of
the data in the charts. They have conistent format across slides and scenes. Changing the scene
through the use of the numbered scene buttons will provide a new, different view of the data with different
annotations providing information for the time frame of that scene. In the first chart they have lines to data points.
In the second slide they describe the data on the columns they sit across. They are cleared on transition between scenes,
and displayed by clicking a scene. Final scene annotations are click-to-close and descibed as such in the annotation.
Additionally, hovering over data elements gets tooltips with more information.
Parameters
The main parameter in each slide is the scene number provided in the buttons. These scene number change the years for which data is provided, so year is partially a parameter. Clicking the scene parameter buttons will update the view to provide the chart with essentially the "page" of the story so that the story can be told. Stepping through the pages will highlight information with annotations as the text of each page's story. In the first slide's final chart scene, parameters are the birth orders of Total births, 1st, 2nd, 3rd, 4th, or 5th+ child. Toggling these parameters will filter the data on/off by the viewer and provide the viewer control of the data for investigation. Year parameter jumps to point in the story's time.
Triggers
As this is an interactive slideshow, triggers are used with the reveal.js arrows in the lower right
hand corner for transitioning the slides. These arrows highlight on hover to indicate they are
interactive and appear only on valid transitions. The "Next" and numbered scene buttons
in each slide drive the changes the for the charts. They highlight on hover
to indicate they are interactive. Current scene button is grayed out to indicate position, "Next" is grayed out at end scene. A labeled "Year"
dropdown triggers charts to jump to specified year.
The first chart on total births and birth order has triggers for data filtering. Clicking items in the
legend will enable/disable birth order category lines in the chart which not only toggle the lines to
filter the data,
but they also rescale the axes for only the currently enabled data. These instructions are labeled
beneath the legend to inform the viewer of the control. The viewer can zoom in on data with mouse scroll
to see more detail. The user can also click-drag the chart to pan across the data. Hovering over lines
will trigger a tooltip with more information about the year in the mouse hover range. Additionally,
this hover trigger draws circles over the data points for which more data is being displayed in the tooltip. These controls are provided
in a final tooltip that asks you to click-to-close, as well as below the chart in the final scene. Has a labeled year dropdown trigger to map to year parameter.
The second chart has less interactivity than the first, but still provides methods for further investigation
of the data by the viewer. Hovering over bar segments in the stacked bar chart triggers a tooltip
which provides more information for the bar segment hovered in the current age group chart. Has a labeled year dropdown trigger to map to year parameter.


👨🚀 Astronouts
📷 NASA APOD
🔊
ISS Now
Pass Time
Set
Track ISS
Earth Rotation
Screen Rotation Detected
❌
Mobile Vertical is Best UI view 📱
Make sure Auto-rotation is OFF 🚫
Please Do Not Change Screen Sizes Repeatedly 💻
You Have Been Warned ❗ You May Proceed Now 👍
Background audio track provided by
Noises.Online
under a
CC 3.0 BY
license.


Random
Interface for creating random numbers and strings.
File information
Classes
IRandom
class IRandom {
public:
static void Init(dword seed);
static dword GetRandom();
static void GetChars(char * out, dword len, random_char_t type = random_chars_url);
};
Overview
The IRandom interface can be used to create random numbers or strings. Before it can be used, it should be initialized with a seed that should contain some entropy.
Public functions
Init (static function)
Initializes the random number generator. This function should be called once when the app is started.
Parameters
| dword seed |
A 32-bit value that should contain some entropy. Make sure that the app does not use the same value over and over again.
|
GetRandom (static function)
Returns a random number.
Return value
| dword |
A 32-bit unsigned integer.
|
GetChars (static function)
Writes a number of random characters to a buffer. Please note that the function does not do any null-termination.
A typical application of this function is to create random passwords.
Parameters
| char * out |
The buffer to write the random characters to. It must be big enough for len characters.
|
| dword len |
The number of random characters that shall be written.
|
| random_char_t type |
Optional parameter that specifies set of characters that shall be used.
- random_chars_url
-
- random_chars_ice
-
|
Remarks
For each written character there are 64 different possibilities. So the random string contains only len/4 bytes of randomness.
Data types
random_char_t
enum random_char_t {
random_chars_url,
random_chars_ice
};
Overview
The random_char_t enum defines the different charsets for random strings that are supported by the library.
Values
| random_chars_url | A set of characters that doesn't need escaping in URLs. (a-z A-Z 0-9 ! _) |
| random_chars_ice | The set of characters needed for ICE/STUN passwords. (a-z A-Z 0-9 + /) |
Code Example
Creating a random number
dword number = IRandom::GetRandom();
Creating a random string
char out[17];
IRandom::GetChars(out, 16, random_chars_url);
out[16] = 0;
debug->printf("random string: %s", out);


---
title: InstantClick’s documentation
---
Documentation
require('includes/documentation_order.php') ?>
foreach ($documentation_order as $title => $chapters): ?>
= $title ?>
foreach ($chapters as $chapter): ?>
-
= get_page_h1($chapter) ?>
if ($chapter == 'download'): ?>
← Start here
endif ?>
endforeach ?>
endforeach ?>