| 3 ἴᾱσι | ἴωσι | ἴοιεν | ἰόντων | ᾖσαν or ᾔεσαν |
Infinitive: ἰέναι . Participle: ἰών, ἰοῦσα, ἰόν, gen. ἰόντος, ἰούσης, ἰόντος, etc.
Verbal Adjectives: ἰτός (poet.), ἰτέος, ἰτητέος.
a. The imperative 3 pl. ἴτωσαν occurs rarely in Xenophon and Plato.
b. The participle ἰών is accented like a second aorist. The accent of the simple form of participle and infinitive is kept in composition, as παριών, παριοῦσα, ἀπιέναι. Otherwise the compounds have recessive accent so far as the rules allow: πάρειμι, ἄπεισι, but ἀπῇα, προσῇμεν.
Hom. has 2 sing. εἶσθα (Hesiod εἶς); subj. ἴῃσθα and ἴῃς, ἴῃσιν and ἴῃ, ἴομεν and ἴ̄ομεν; opt. ἰείη and ἴοι; infin. ἴμεναι, ἴμεν, and ἰέναι (twice). Imperf.: 1 sing. ἤϊα, ἀνήϊον, 3 sing. ἤϊε, ᾖε, ᾔει (at the verse-end, ᾖε?), ἴε; dual ἴτην, pl. ᾔομεν, ἤϊσαν, ἐπῇσαν, ἴσαν, ἤϊον. For ἤϊα, ἤϊε, ἤϊσαν some write ᾔεα, ᾔεε, ᾔεσαν. Future: εἴσομαι Ω 462, ο 213. ϝείσομαι Ξ 8 and ϝείσατο, ἐϝείσατο probably come from ϝί̄εμαι strive (778).
Hdt.: ἤϊα, ἤϊε, ἤϊσαν (Mss.), but ῃ for ηι is correct.
εἶμι in the indicative present means I shall go, I am going. See 1880. For I go ἔρχομαι is used in the present indicative, but not (in prose) in the imperfect, or in the other moods. The scheme of moods and tenses is as follows: Present: indic. ἔρχομαι, subj. ἴω, opt. ἴοιμι or ἰοίην, imper. ἴθι, inf. ἰέναι, part. ἰών. Imperfect: ᾖα. Future: εἶμι, ἐλευσοίμην, ἐλεύσεσθαι, ἐλευσόμενος.
In the imperfect the older prose writers usually have ᾖα, ᾔεισθα, ᾔει-ν, the later have ᾔειν, ᾔεις, ᾔει. The plural forms ᾔειμεν and ᾔειτε are not classical. Prose writers seem to prefer ᾔεσαν to ᾖσαν. The ῃ here is the stem ει augmented.
The part., the subjv., and the opt. are inflected with the thematic vowel; and so also some of the dialectical forms.
ἵ̄ημι (ἑ-, ἡ-) send is inflected nearly like τίθημι (p. 135). The inflection of the present and second aorist systems is as follows:
| ACTIVE | MIDDLE (PASSIVE) MIDDLE | ||||
| INDICATIVE | INDICATIVE | ||||
| Pres. | Imperf. | Second Aor. | Pres. | Imperf. | Second Aor. |
| S. 1 ἵ̄ημι | ἵ̄ην | ( ἧκα ) | ἵ̄εμαι | ἱ̄έμην | — εἵμην |
| 2 ἵ̄ης, ἱ̄εῖς (746 b) | ἵ̄εις (746 b) | ( ἧκασ ) | ἵ̄εσαι (465 a) | ἵ̄εσο | — εἷσο |
| 3 ἵ̄ησι | ἵ̄ει | ( ἧκε ) | ἵ̄εται | ἵ̄ετο | — εἷτο |
| D. 2 ἵ̄ετον | ἵ̄ετον | — εἷτον | ἵ̄εσθον | ἵ̄εσθον | — εἷσθον |
| 3. ἵ̄ετον | ἱ̄έτην | — εἵτην | ἵ̄εσθον | ἱ̄έσθην | — εἵσθην |
| P. 1 ἵ̄εμεν | ἵ̄εμεν | — εἷμεν | ἱ̄έμεθα | ἱ̄έμεθα | — εἵμεθα |
| 2 ἵ̄ετε | ἵ̄ετε | — εἷτε | ἵ̄εσθε | ἵ̄εσθε | — εἷσθε |
| 3 ἱ̄ᾶσι (463 d) | ἵ̄εσαν | — εἷσαν | ἵ̄ενται | ἵ̄εντο | — εἷντο |
| S. 1 ἱ̄ῶ | — ὧ | ἱ̄ῶμαι | — ὧμαι |
| 2 ἱ̄ῇς | — ᾗς | ἱ̄ῇ | — ᾗ |
| 3 ἱ̄ῇ | — ᾗ | ἱ̄ῆται | — ἧται |
| D. 2 ἱ̄ῆτον | — ἧτον | ἱ̄ῆσθον | — ἧσθον |
| 3 ἱ̄ῆτον | — ἧτον | ἱ̄ῆσθον | — ἧσθον |
| P. 1 ἱ̄ῶμεν | — ὧμεν | ἱ̄ώμεθα | — ὥμεθα |
| 2 ἱ̄ῆτε | — ἧτε | ἱ̄ῆσθε | — ἧσθε |
| 3 ἱ̄ῶσι | — ὧσι | ἱ̄ῶνται | — ὧνται |
| S 1 ἱ̄είην | — εἵην | ἱ̄είμην | — εἵμην (758 c) |
| 2 ἱ̄είης | — εἵης | ἱ̄εῖο | — εἷο |
| 3 ἱ̄είη | — εἵη | ἱ̄εῖτο | — εἷτο |
| (— οἷτο ) | |||
| D. 2 ἱ̄εῖτον or | — εἷτον or | ἱ̄εῖσθον | — εἷσθον |
| ἱ̄είητον | — εἵητον | ||
| 3 ἱ̄είτην or | — εἵτην or | ἱ̄είσθην | — εἵσθην |
| ἱ̄ειήτην | — εἱήτην | ||
| P. 1 ἱ̄εῖμεν or | — εἷμεν or | ἱ̄είμεθα | — εἵμεθα |
| ἱ̄είημεν | — εἵημεν | (— οἵμεθα ) | |
| 2 ἱ̄εῖτε or | — εἷτε or | ἱ̄εῖσθε | — εἷσθε |
| ἱ̄είητε | — εἵητε | (— οἷσθε ) | |
| 3 ἱ̄εῖεν or | — εἷεν or | ἱ̄εῖντο | — εἷντο |
| ἱ̄είησαν | — εἵησαν | (— οἷντο ) | |
| IMPERATIVE | |||
| S. 2 ἵ̄ει (746 b) | — ἕς | ἵ̄εσο | — οὗ |
| 3 ἱ̄έτω | — ἕτω | ἱ̄έσθω | — ἕσθω |
| D. 2 ἵ̄ετον | — ἕτον | ἵ̄εσθον | — ἕσθον |
| 3 ἱ̄έτων | — ἕτων | ἱ̄έσθων | — ἕσθων |
| P. 2 ἵ̄ετε | — ἕτε | ἵ̄εσθε | — ἕσθε |
| 3 ἱ̄έντων (466. 2, b) | — ἕντων | ἱ̄έσθων (466. 2, b) | — ἕσθων |
| INFINITIVE | |||
| ἱ̄έναι | — εἷναι | ἵ̄εσθαι | — ἕσθαι |
| ἱ̄είς, ἱ̄εῖσα, ἱ̄έν | —εἵς, —εἷσα, —ἕν | ἱ̄έμενος | — ἕμενος |
Future: — ἥσω in prose only in composition; — ἥσομαι only in composition.
First Aorist: ἧκα in prose usually in comp., — ἡκάμην ; both only in the indic.
Perfect Active: — εἷκα only in composition.
Perfect Middle (Passive): — εἷμαι (plup. — εἵμην ), — εἵσθω , — εἷσθαι , — εἱμένος , only in composition.
Aorist Passive: — εἵθην , — ἑθῶ , — ἑθῆναι , — ἑθείς , only in composition.
Future Passive: — ἑθήσομαι , only in composition.
Verbal Adjectives: — ἑτός , — ἑτέος , only in composition.
1. In Hom. ἵημι usually has the initial ι short. Present: -ἱεῖς, ἵησι and -ἱεῖ, ἱεῖσι from ἱε-ντι, inf. ἱέμεναι and -ἱέμεν. Imperf.: -ἵειν, -ἵεις, -ἵει, 3 pl. ἵεν. Future: ἥσω, once ἀν-έσει. First Aorist: ἧκα and ἕηκα, ἐνήκαμεν once, ἧκαν once. Second Aorist: for the augmented εἱ-forms Hom. has usually the unaugmented ἑ-; as ἕσαν, ἕντο. In the subjunctive μεθείω, μεθήῃ, ἀφέῃ, μεθῶμεν.
2. Hdt. has -ἱεῖ (accented -ἵει), ἱεῖσι, imperf. -ἵ̄ει, perf. ἀνέωνται for ἀνεῖνται, part. με-μετ-ι-μένος for μεθειμένος.
3. Dor. has perf. ἕωκα, ἕωμαι.
Since ἵημι is reduplicated (probably for σι-ση-μι) the initial ι should be short, as it is in Hom. (rarely in Attic poetry). ῑ is probably due to confusion with the ῑ of Hom. ἵ̄εμαι (ϝί̄εμαι) strive, a meaning that ἵεμαι occasionally shows in Attic. ἵεμαι meaning hasten occurs only in the present and imperfect.
ει is for ε ¨ ε in the second aorist active (ἐ-ἑ-μεν ῀ εἷμεν), perfect active (ἑ-ἑ-κα ῀ εἷκα), perfect middle (ἑ-ἑ-μαι ῀ εἷμαι), second aorist passive (ε᾽ ¨ ἑ-θην ῀ εἵθην). In the aorists ε᾽ is the augment, in the perfects the first ἑ is the reduplication of the weak stem ἑ-. The first aorist ἧ-κα has the strong stem form. Present subj. ἱ̄ῶ, ἱ̄ῇς, etc., are for ἱ̄ἑω, ἱ̄ἑῃς, etc.; aor. subj. -ὧ, -ᾗς, etc., are for -ἕ-ω, -ἕ-ῃς, etc.
Much confusion exists in the Mss. as regards the accentuation. Thus for ἱ̄εῖς we find ἵεις, and in Hom. προΐει (present), as if from ἵω. See 746 c.
For ἀφί̄οιτε, ἀφί̄οιεν and προοῖτο, προοῖσθε, προοῖντο (also accented πρόοιτο, etc.) see 746 c.
The imperfect of ἀφί̄ημι is either ἀφί̄ην or ἠφί̄ην (450).
φημί (φα-, φη-, cp. Lat. fā-ri) say, say yes , or assent is inflected in the present as follows:
| PRESENT | IMPERFECT | |||
| Indic. | Subj. | Opt. | Imper. | |
| Sing. 1 φημί | φῶ | φαίην | ἔφην | |
| 2 φῄς | φῇς | φαίης | φαθί or φάθι | ἔφησθα or ἔφης |
| 3 φησί | φῇ | φαίη | φάτω | ἔφη |
| Dual 2 φατόν | φῆτον | not found | φάτον | ἔφατον |
| 3 φατόν | φῆτον | not found | φάτων | ἐφάτην |
| Plur. 1 φαμέν | φῶμεν | φαῖμεν or φαίημεν | ἔφαμεν | |
| 2 φατέ | φῆτε | φαίητε | φάτε | ἔφατε |
| 3 φᾱσί | φῶσι | φαῖεν or φαίησαν | φάντων | ἔφασαν |
Infin.: φάναι ; Partic.: poet. φά̄ς, φᾶσα, φάν (Attic prose φάσκων ); Verbal Adj.: φατός (poet.), φατέος .
Future: φήσω, φήσειν, φήσων.
First Aorist: ἔφησα, φήσω, φήσαιμι, —, φῆσαι, φήσᾱς.
Perf. Pass. Imper.: πεφάσθω let it be said.
1. Hom. has φῇσθα for φῄς; subj. φήῃ and φῇσι (463 c. D) for φῇ; imperf. ἔφην, φῆν, ἔφησθα, φῆσθα, ἔφης, φῆς, 3 s. ἔφην, rarely φῆ, 1 pl. φαμέν, 3 pl. ἔφασαν, φάσαν, ἔφαν, φάν.
2. Doric φᾱμί, φᾱτί, φαντί; imperf. ἔφᾱ, φᾶ; inf. φάμεν; fut. φά̄σω, φά̄σομαι; aor. ἔφᾱσα.
3. Aeolic φᾶμι or φαῖμι, φαῖσθα, 3 s. φαῖσι, 3 pl. φαῖσι.
All the forms of the present indicative except φῄς are enclitic (181 c). —In composition σύμφημι, σύμφῃς (but the Mss. often have συμφῄς and συμφῇς), συμφῶ, σύμφαθι.
In the optative φαῖτε does not occur, perhaps by chance (461, 683 a). φαῖμεν, φαῖεν are ordinary Attic; φαίημεν, φαίησαν are rare.
Middle forms in present, imperfect, and future are dialectic.
Middle forms of φημί are rare or unknown in Attic (Plato has perf. imper. πεφάσθω), but common in other dialects; yet the pres. indicative middle is rare. Hom. has imperf. ἐφάμην, ἔφατο or φάτο, etc., imper. φάο, φάσθω, etc., inf. φάσθαι (and in choral poetry), part. φάμενος (also in Hdt.). These middle forms are active in meaning.
οὔ φημι means refuse (Lat. nego). In the meaning assert, φάσκω is commonly used outside of the indicative. In the meaning say often, φάσκω is used. ἔφησα and φήσω are aor. and fut. in the meanings say yes and assent. ἔφην, ἔφη (and φάναι) often correspond to Lat. inquam, inquit.
ἔφην and φῶ, φαίην may have an aoristic force. ἔφην and poet. ἐφάμην are both imperfect and second aorist.
ἧμαι (ἡσ-) sit is inflected only in the present system. The ς of the verb-stem appears only before -ται, -το.
| PRESENT | IMPERATIVE | IMPERFECT | ||||
| ἧμαι | ἥμεθα | ἥμην | ἥμεθα | |||
| ἧσαι | ἧσθον | ἧσθε | ἧσο | ἧσο | ἧσθον | ἧσθε |
| ἧσται | ἧσθον | ἧνται | ἥσθω , etc. | ἧστο | ἥσθην | ἧντο |
The subjunctive and optative are wanting; present infinitive ἧσθαι ; participle ἥμενος .
a. Uncompounded ἧμαι occurs only in Epic, tragedy, and Herodotus. The missing tenses are supplied by ἕζομαι, ἵζω and ἵζομαι.
Hom. has εἵαται, and ἕαται (twice), εἵατο, and ἕατο once (once ἧντο). ἡ- is probably the correct spelling for εἱ-.
In place of ἧμαι we find usually κάθ-ημαι in Attic prose and comedy. κάθημαι sometimes is perfect in meaning (I have sat, I have been seated). The ς of the verb-stem does not appear except before -το .
| PRESENT | IMPERFECT | ||||
| Indicative | Subjunctive | Optative | Imperative | Indicative | |
| S. 1 κάθημαι | καθῶμαι | καθοίμην | ἐκαθήμην (450) | or καθήμην | |
| 2 κάθησαι | καθῇ | καθοῖο | κάθησο | ἐκάθησο | καθῆσο |
| 3 κάθηται | καθῆται | καθοῖτο | καθήσθω | ἐκάθητο | καθῆστο or |
| καθῆτο | |||||
| D. 2 κάθησθον | καθῆσθον | καθοῖσθον | κάθησθον | ἐκάθησθον | καθῆσθον |
| 3 κάθησθον | καθῆσθον | καθοίσθην | καθήσθων | ἐκαθήσθην | καθήσθην |
| P. 1 καθήμεθα | καθώμεθα | καθοίμεθα | ἐκαθήμεθα | καθήμεθα | |
| 2 κάθησθε | καθῆσθε | καθοῖσθε | κάθησθε | ἐκάθησθε | καθῆσθε |
| 3 κάθηνται | καθῶνται | καθοῖντο | καθήσθων | ἐκάθηντο | καθῆντο |
Infinitive: καθῆσθαι ; Participle: καθήμενος .
a. The imperative has κάθου in comedy for κάθησο. In the imperfect ἐκαθήμην is used about as often as καθήμην.
b. The missing tenses are supplied by καθέζομαι, καθίζω, καθίζομαι.
Hom. has 3 pl. καθείατο (καθήατο?). Hdt. has κατέαται, κατέατο; καθῆστο not καθῆτο.
κεῖμαι (κει-) lie, am laid, regularly used in the present and imperfect instead of the perfect and pluperfect passive of τίθημι place.
| PRESENT | IMPERFECT | |||
| Indic. | Subj. | Opt. | Imper. | Indic. |
| Sing. 1 κεῖμαι | ἐκείμην | |||
| 2 κεῖσαι | κεῖσο | ἔκεισο | ||
| 3 κεῖται | κέηται | κέοιτο | κείσθω | ἔκειτο |
| Dual 2 κεῖσθον | κεῖσθον | ἔκεισθον | ||
| 3 κεῖσθον | κείσθων | ἐκείσθην | ||
| Plur. 1 κείμεθα | ἐκείμεθα | |||
| 2 κεῖσθε | ( δια ) κέησθε | κεῖσθε | ἔκεισθε | |
| 3 κεῖνται | ( κατα ) κέωνται | ( προσ ) κέοιντο | κείσθων | ἔκειντο |
Infinitive: κεῖσθαι ; Participle: κείμενος .
Future: κείσομαι, κείσῃ or κείσει, κείσεται, etc.
a. In the subjunctive and optative κει- becomes κε- before a vowel (43).
b. Compounds have recessive accent in the present indicative and imperative: παράκειμαι, παράκεισο, but παρακεῖσθαι.
Hom. has 3 pl. pres. κείαται, κέαται, κέονται; imperf. κεῖντο, κείατο, κέατο, iter. κέσκετο; subj. κῆται, and κεῖται for χε([ιγλιδε])-ε-ται; fut. κείσομαι.
Hdt. has 3 sing. pres. κέεται and κεῖται, 3 pl. κέαται; imperf. ἔκειτο, pl. ἐκέατο.
ἠ-μί (cp. Lat. a-io) say occurs only in the present and imperfect 1 and 3 sing., and is used in parentheses (as Lat. inquam, inquit).
Forms: ἠμί, ἠσί; ἦν, ἦ. Examples: παῖ, ἠμί, παῖ boy, I say, boy! (emphatic repetition). ἦν δ᾽ ἐγώ said I, ἦ δ᾽ ὅς said he (1113).
Hom has ἦ, Doric ἠτί, Aeolic ἦσι.
χρή it is necessary is really an indeclinable substantive meaning necessity with the verb understood. In the present indicative ἐστί is to be supplied. Elsewhere χρή unites with the form of the verb to be supplied; as subj. χρῇ (χρὴ ¨ ᾖ), opt. χρείη (χρὴ ¨ εἴη), inf. χρῆναι (χρὴ ¨ εἶναι), part. indeclinable χρεών (χρὴ ¨ ὄν); imperf. χρῆν (χρὴ ¨ ἦν), and less commonly ἐχρῆν with an augment because the composite character of χρῆν was forgotten, fut. χρῆσται (χρὴ ¨ ἔσται).
a. ἀπόχρη it suffices has pl. ἀποχρῶσι, part. ἀποχρῶν, -χρῶσα, -χρῶν, imperf. ἀπέχρη, fut. ἀποχρήσει, aor. ἀπέχρησε.
Hdt. has χρή, χρῆν, χρῆναι, but ἀπροχρᾷ, ἀποχρᾶν.
οἶδα (ἰδ, εἰδ-ε, οἰδ- originally with ϝ; cp. Lat. video) know is a second perfect with the meaning of a present, and formed without reduplication. The second perfect and second pluperfect are inflected as follows:
| SECOND PERFECT | SECOND PLUPERFECT | |||||
| Indic. | Subj. | Opt. | Imper. | Indic. | ||
| Sing. 1 οἶδα | εἰδῶ | εἰδείην | ᾔδη | or ᾔδειν | ||
| 2 οἶσθα | εἰδῇς | εἰδείης | ἴσθι | ᾔδησθα | or ᾔδεις | |
| 3 οἶδε | εἰδῇ | εἰδείη | ἴστω | ᾔδει ( ν ) | ||
| Dual 2 ἴστον | εἰδῆτον | εἰδεῖτον | ἴστον | ᾖστον | ||
| 3 ἴστον | εἰδῆτον | εἰδείτην | ἴστων | ᾔστην | ||
| Plur. 1 ἴσμεν | εἰδῶμεν | εἰδεῖμεν | or εἰδείημεν | ᾖσμεν | or ᾔδεμεν | |
| 2 ἴστε | εἰδῆτε | εἰδεῖτε | εἰδείητε | ἴστε | ᾖστε | ᾔδετε |
| 3 ἴσᾱσι | εἰδῶσι | εἰδεῖεν | εἰδείησαν | ἴστων | ᾖσαν | ᾔδεσαν |
Infinitive εἰδέναι ; Participle εἰδώς, εἰδυῖα, εἰδός (309); Verbal Adj. ἰστέος ; Future εἴσομαι . Compound σύνοιδα am conscious of.
1. Hom. has οἶδας α 337, ἴδμεν, ἴσᾱσι (ἴσσᾱσι for ἴ̄σᾱσι I 36); subj. εἰδέω π 236 and ἰδέω (? Ξ 235), εἴδομεν and εἴδετε with short thematic vowels; inf. ἴδμεναι, ἴδμεν; part. εἰδυῖα and ἰδυῖα. Pluperf. ᾔδεα, ᾔδησθα τ 93, ἠείδεισ(-ης?) X 280 with η as augment (433), ᾔδη, ᾔδεε, ἠείδει ι 206, 3 pl. ἴσαν for ἰδ-σαν. Fut. εἴσομαι, inf. εἰδησέμεν and -σειν.
2. Hdt. has οἶδας, ἴδμεν and οἴδαμεν (rarely), οἴδᾱσι, subj. εἰδέω, plup. ᾔδεα, ᾔδεε (ᾔδει?), -ᾐδέατε, ᾔδεσαν, fut. εἰδήσω.
3. Dor. has ἴσᾱμι (pl. ἴσαμεν, ἴσαντι) and οἶδα. Boeotian has ἴττω for ἴστω. Aeolic has ϝοίδημι and οἶδα.
The verb-stem has the meaning find out; hence the perfect οἶδα means I have found out and hence I know.
In Ionic and late Greek we find οἶδας, οἴδαμεν, etc. These forms are rare in Attic. οἶσθας occurs in comedy.
In the optative dual and plural prose writers have either the shorter or the longer forms; the poets only the shorter forms.
Pluperfect ᾔδειν, ᾔδεις occur in later Attic (Demosthenes), but are suspicious in earlier writers. ᾔδεισθα occurs in the best Mss. of Plato and elsewhere, but it is less correct Attic. ᾔδης is incorrect. ᾔδει is rare. ᾖστον, ᾔστην are almost entirely poetic. In the plural ᾔδειμεν, ᾔδειτε, ᾔδεισαν are post-classical. ᾔδεμεν, ᾔδετε occur rarely in the Attic poets.
οἶσθα is from οἰδ ¨ θα; ἴστε from ἰδ ¨ τε; ἴσθι from ἰδ ¨ θι (83). ἴσμεν (older ἴδμεν) gets its ς from ἴστε (87). ἴσᾱσι is from ἰδ ¨ σαντι, with ς from (Hom.) ἴσαν ῀ ἰδ-σαν with the ending -σαν (cp. εἴξᾱσι 704 d). ᾔδη is for ἠ-είδη with η as augment (433).
Some verbs in the present appear in classical Greek in the active voice only, as βαίνω go, ἕρπω creep, τρέω tremble; others in the middle only, as ἅλλομαι leap, βούλομαι wish, κάθημαι sit, κεῖμαι lie.
Outside of the present some active verbs show middle forms especially in the future, as βήσομαι shall go, ἀκούσομαι shall hear (805); and some verbs exclusively or chiefly deponent show active forms especially in the perfect, as γίγνομαι become γέγονα, μαίνομαι rage μέμηνα, δέρκομαι poet., 2 aor. ἔδρακον, perf. δ<*>δορκα.
For the passive voice the middle forms sufficed in most cases; many middle futures are still used passively (807, as ἀδικήσο- μαι shall be wronged; and traces of the passive use of the aorist middle appear in Hom., as ἔβλητο was hit. This use was largely abandoned when -ην and -θην came to be used as special marks of the passive. Originally neither -ην nor -θην was passive in meaning.
Hom. has ἐκτάμην was killed, ἐσχόμην was stayed. Cp. also ᾐδεσάμην and αἴδεσθεν (αἰδέομαι respect), ὀἱ̄σατο and ὠίσθην (οἴομαι think), ἐχολωσάμην and ἐχολώθην (χολόω enrage).
The second aorist in -ην is primarily intransitive and shows active inflection (as ἔστην stood). Many so-called passive forms are in fact merely intransitive aorists of active verbs, as ἐρρύην from ῥέω flow, κατεκλίνην from κατακλί̄νω lie down, and do not differ in meaning from the aorists of deponent verbs, as ἐμάνην from μαίνομαι rage.
The aorists in -θην that are called passive are often active or middle in meaning, as ἥσθην took pleasure in from ἥδομαι, ᾐσχύνθην felt ashamed from αἰσχύ̄νω disgrace, αἰσχύ̄νομαι am ashamed; ὠργίσθην became angry from ὀργίζω anger.
Future Middle with Active Meaning.—Many verbs have no active future, but use instead the future middle in an active sense: λαμβάνω take λήψομαι, γιγνώσκω know γνώσομαι.
a. Most such verbs denote a physical action, as the action of the vocal organs; the action of the organs of sight, hearing, smell, touch; the action of throat, mouth, lips; bodily activity in general, voluntary or involuntary; and other aspects of the physical side of human organism.
In the following list of active verbs with middle futures those marked * have also an active future; those marked † sometimes have an active future in late Greek. All verbs adding -αν- to form the present stem (523, b, c) have a middle future except αὐξάνω, λανθάνω, ὀφλισκάνω. Verbs denoting praise or blame usually have both an active and a middle future.
| *ᾁδω | †βοάω | εἰμί | *κλάζω | οἶδα | πί̄πτω | *τίκτω |
| †ἀκούω | †γελάω | *ἐμέω | *κλαίω | †οἰμώζω | πλέω | †τλάω (ἔτλην) |
| ἀλαλάζω | *γηράσκω | *ἐπαινέω | κρά̄ζω | ὀλολύζω | πνέω | τρέχω |
| †ἁμαρτάνω | γηρύ̄ω | ἐρυγγάνω | †κύπτω | †ὄμνῡμι | *ποθέω | τρώγω |
| †ἀπαντάω | γιγνώσκω | ἐσθίω | †κωκύ̄ω | ὁράω | ῥέω | τυγχάνω |
| †ἀπολαύω | *γρύζω | θαυμάζω | λαγχάνω | ὀτοτύζω | *ῥοφέω | τωθάζω |
| *ἁρπάζω | δάκνω | *θέω | λαμβάνω | οὐρέω | †σῑγάω | φεύγω |
| βαδίζω | δείδω | *θιγγάνω | λάζκω | παίζω | †σιωπάω | *φθάνω |
| βαίνω | (see 703) | -θνῄσκω | μανθάνω | πάσχω | σκώπτω | χάσκω |
| †βιόω | -διδρά̄σκω | θρῴσκω | *νεύω | †πηδάω | †σπουδάζω | χέζω |
| *βλέπω | *διώκω | κάμνω | νέω swim | πί̄νω | (late) | *χωρέω |
| βλώσκω | *ἐγκωμιάζω | κι(γ)χάνω |
a. Compounds of χωρέω with ἀπο-, συγ-, παρα-, προσ- have both active and middle futures; other compounds have only the active futures.
Future Middle with Passive Meaning.—In many verbs the future middle has the meaning of the future passive, as ἀδικέω wrong, ἀδικήσομαι shall be wronged.
The following verbs commonly use the future middle in a passive sense. (All of these have the future passive in late Greek, except ἀμφις βητέω, ἐάω, εἴργω, ἐνεδρεύω, οἰκέω, παιδαγωγέω, προαγορεύω, στρεβλόω, στυγέω.)
| ἀγνοέω not to know | εἴργω shut | μαστῑγόω whip | στρεβλόω rack |
| ἀγωνίζομαι contend | ἐκπλύ̄νω wash out | οἰκέω inhabit | στυγέω hate (poet.) |
| ἀδικέω wrong | ἐνεδρεύω lie in wait | ὁμολογέω agree | ταράττω disturb |
| ἀμφισβητέω dispute | for | ὀνειδίζω reproach | τηρέω guard |
| ἀνοίγνῡμι open, C.I.A. | ἐπιβουλεύω plot | παιδαγωγέω edu- | τρέφω nourish |
| 2. 1054 (not found | against | cate | τρί̄βω rub |
| in literature) | ἐχθαίρω hate | πολεμέω wage war | ὕ̄ω rain |
| ἄρχω rule | ἔχω have | προαγορεύω fore- | φιλέω love |
| διδάσκω teach | θεραπεύω tend | tell | φυλάττω guard |
| ἐάω permit | κωλύ̄ω prevent | σταθμάω measure |
Some verbs use in a passive sense both a future middle form and a future passive form; on the difference in meaning see 1738.
| ἄγω lead, ἄξομαι, ἀχθήσομαι. | μαρτυρέω bear witness, μαρτυρήσομαι, |
| ἀπατάω deceive, ἀπατήσομαι, ἐξαπατη- | μαρτυρηθήσομαι. |
| θήσομαι. | πολιορκέω besiege, πολιορκήσομαι, πολι- |
| αὐξάνω increase, αὐξήσομαι, αὐξηθήσομαι. | ορκηθήσομαι. |
| βλάπτω hurt, βλάψομαι, βλαβήσομαι. | πρά̄ττω do, πρά̄ξομαι (rare), πρᾱχθήσομαι. |
| δηλόω manifest, δηλώσομαι, δηλωθήσο- | στερέω deprive, ἀποστερήσομαι, ἀποστε- |
| μαι. | ρηθήσομαι. |
| ζημιόω fine, ζημιώσομαι, ζημιωθήσομαι. | τῑμάω honour, τῑμήσομαι, τῑμηθήσομαι. |
| καλέω call, καλοῦμαι (rare), κληθήσομαι. | ὑβρίζω insult, ὑβριοῦμαι, ὑβρισθήσομαι. |
| κηρύ̄ττω proclaim, κηρύξομαι (rare), κη- | φέρω bear, οἴσομαι, οἰσθήσομαι, κατενε- |
| ρυχθήσομαι. | χθήσομαι. |
| κρί̄νω judge, κρινοῦμαι, κριθήσομαι. | φρονέω: καταφρονήσομαι despise, κατα- |
| λέγω say, λέξομαι (tragic), λεχθήσομαι. | φρονηθήσομαι. |
| λείπω leave, ἀπολείψομαι, ἀπολειφθήσομαι. | ὠφελέω aid, ὠφελήσομαι, ὠφεληθήσομαι. |
Middle Deponents.—Deponent verbs whose aorists have an active or middle meaning with middle forms are called middle deponents. The aorist passive of such verbs, when it occurs, has a passive force. Thus αἰτιάομαι accuse, ᾐτιᾱσάμην accused, ᾐτιά̄θην was accused. Others 813 c.
Passive Deponents.—Deponent verbs whose aorists have the passive form but the active or middle meaning are called passive deponents; as βούλομαι wish, aor. ἐβουλήθην. The future is usually middle in form. Most passive deponents express mental action of some sort.
In the following list verbs marked * have a future passive form and also a future middle form; as διαλέγομαι converse, aor. διελέχθην conversed, fut. διαλέξομαι and διαλεχθήσομαι shall converse. But ἥδομαι take pleasure in has only ἡσθήσομαι, and ἡττάομαι yield to, am worsted has only ἡττηθήσομαι. Verbs with † have also an aorist middle, but it is less common, or poetic, or late Greek.
| †ἄγαμαι admire, ἠγάσθην | *ἡττάομαι yield to, ἡττήθην |
| *†αἰδέομαι feel shame, ᾐδέσθην | (ἐν-) θῡμέομαι consider, ἐνεθῡμήθην |
| ἀλάομαι (usu. poet.) wander, ἠλήθην | (προ-) θῡμέομαι am eager, προεθῡμήθην |
| †ἁμιλλάομαι contend, ἡμιλλήθην | *†(δια-) λέγομαι converse, διελέχθην |
| †ἀρνέομαι deny, ἠρνήθην | (ἐπι-) μέλομαι care for, ἐπεμελήθην |
| *ἄχθομαι am grieved, ἠχθέσθην | (μετα-) μέλομαι regret, μετεμελήθην |
| βούλομαι wish, ἐβουλήθην (430) | (ἀπο-) νοέομαι despair, ἀπενοήθην |
| δέομαι want, ἐδεήθην | *(δια-) νοέομαι reflect, διενοήθην |
| δέρκομαι (poet.) see, ἐδέρχθην | (ἐν-) νοέομαι think of, ἐνενοήθην |
| δύναμαι am able, ἐδυνήθην (430) | †(ἐπι-) νοέομαι think on, ἐπενοήθην |
| ἐναντιόομαι oppose, ἠναντιώθην | †(προ-) νοέομαι foresee, provide, προε- |
| ἐπίσταμαι understand, ἠπιστήθην | νοήθην |
| ἔραμαι ἐράω love, ἠράσθην | οἴομαι think, ᾠήθην |
| εὐλαβέομαι am cautious, ηὐλαβήθην | φιλοτῑμέομαι am ambitious, ἐφιλοτῑμή- |
| †ἥδομαι take pleasure in, ἥσθην | θην |
a. Some verbs use either the aorist middle or aorist passive without distinction, as ἐναυλίζομαι bivouac, πρᾱγματεύομαι am engaged in.
b. Some verbs use both, but prefer the aorist middle, as ἀποκρί̄νομαι answer, ἀπολογέομαι speak in defence, μέμφομαι blame.
c. Some verbs use the aorist passive in an active or middle sense, as ἀπορέομαι doubt, pass. be disputed, aor. ἠπορήθην; πειράω prove, πειράομαι try, aor. ἐπειρά̄θην (less often ἐπειρᾱσάμην), fut. πειρά̄σομαι and πειρᾱθήσομαι. ἐράω (poet. ἔραμαι) love has ἠράσθην fell in love with, fut. ἐρασθήσομαι.
Deponents with Passive Meaning.—Some deponent verbs have a passive meaning. This is avoided by good writers in the present and imperfect or future passive, is not frequent in the aorist, but is common in the perfect and pluperfect passive. Thus ἀπεκρίνεται (ἀπεκρίθη) ταῦτα this answer is (was) made is not good Greek. Few verbs show the passive meaning in most of these tenses; as ὠνέομαι buy, am bought, ἐωνήθην was bought, ἐώνημαι have bought, have been bought.
a. Present and Imperfect: ἀγωνίζομαι contend, am contended for, βιάζομαι force, am forced, λῡμαίνομαι maltreat, am maltreated, ὠνέομαι buy, am bought.
b. Future Passive: ἀπαρνέομαι deny, ἀπαρνηθήσομαι, ἐργάζομαι work, do, ἐργασθήσομαι.
c. Aorist Passive: These verbs (middle deponents, 810) have also an aorist middle; the aorist passive is used in a passive sense: ἀγωνίζομαι contend, αἰκίζομαι harass, αἰνίττομαι speak darkly, αἰτιάομαι accuse, ἀκέομαι heal, βιάζομαι force, δέχομαι receive, δωρέομαι present, ἐργάζομαι work, do, ἡγέομαι lead, θεάομαι behold, ἰ̄άομαι heal, κτάομαι acquire, λῡμαίνομαι maltreat, λωβάομαι abuse, μῑμέομαι imitate, ὀλοφύ̄ρομαι lament, προφασίζομαι feign an excuse, χράομαι use, ὠνέομαι buy. ἀποκρί̄νομαι has ἀπεκρί̄νατο answered, ἀπεκρίθην usu. means was separated.
d. Perfect and Pluperfect: These verbs use the perfect middle in the middle or the passive sense: ἀγωνίζομαι contend, αἰνίττομαι speak darkly, αἰτιάομαι accuse, ἀποκρί̄νομαι answer, ἀπολογέομαι make a defence, βιάζομαι force, ἐνθῡμέομαι consider, ἐργάζομαι work, do, εὔχομαι pray, ἡγέομαι lead, κτάομαι acquire, λωβάομαι abuse, μηχανάομαι devise, μῑμέομαι imitate, παρρησιάζομαι speak boldly, πολῑτεύομαι act as (discharge the duties of) a citizen, πρᾱγματεύομαι am engaged in, σκέπτομαι view, χράομαι use, ὠνέομαι buy.
Active Verbs with Aorist Passive in a Middle Sense.—The aorist passive of some active verbs has a reflexive or middle sense, either sometimes or always. Thus εὐφραίνω gladden, ηὐφράνθην rejoiced, κῑνέω move, ἐκῑνήθην was moved or moved myself, φαίνω show, ἐφάνην showed myself, appeared (ἐφάνθην usually was shown).
a. These verbs are often called middle passives.
b. The middle and the passive form of the future of such verbs is often found, the middle being frequently preferred.
Aorist Passive and Future Middle forms:
| αἰσχύ̄νω disgrace, ᾐσχύνθην felt | ὀργίζω anger, ὠργίσθην became angry, |
| ashamed, αἰσχυνοῦμαι | ὀργιοῦμαι |
| ἀνιάω vex, ἠνιά̄θην felt vexed, ἀνιά̄σομαι | ὁρμάω incite, ὡρμήθην set out, ὁρμήσομαι |
| ἐπείγω urge, ἠπείχθην urged, ἐπείξομαι | πείθω persuade, ἐπείσθην obeyed, πείσο- |
| εὐφραίνω gladden, ηὐφράνθην rejoiced, | μαι |
| εὐφρανοῦμαι | πλανάω cause to wander, ἐπλανήθην |
| κῑνέω move, ἐκῑνήθην moved (bestirred) | wandered, πλανήσομαι |
| myself, κῑνήσομαι | πορεύω convey, ἐπορεύθην marched, πο- |
| κοιμάω put to sleep, ἐκοιμήθην lay down | ρεύσομαι |
| to sleep, κοιμήσομαι | φοβέω terrify, ἐφοβήθην was afraid, φο- |
| λῡπέω vex, ἐλῡπήθην grieved, λῡπήσομαι | βήσομαι |
a. ἀνάγομαι set sail, κατάγομαι land, ὁπλίζομαι arm myself, ὁρμίζομαι lie at anchor, generally have an aorist middle.
Aorist Passive and Future Passive forms:
| μιμνῄσκω remind, ἐμνήσθην remembered, | σφάλλω trip up, deceive, ἐσφάλην erred, |
| μνησθήσομαι | failed, σφαλήσομαι |
| στρέφω turn, ἐστράφην turned, στραφή- | τήκω cause to melt, ἐτάκην dissolved, |
| σομαι | languished, τακήσομαι |
Passive Aorist and Middle and Passive Future forms:
ἀπαλλάττω release, ἀπηλλάγην departed, ἀπαλλάξομαι, ἀπαλλαγήσομαι.
φαίνω show, ἐφάνην appeared, φανοῦμαι, φανήσομαι (819).
Some verbs have a passive aorist rarely in a middle sense; with the middle aorist in a different meaning.
†μίζω bring, ἐκομίσθην betook myself, ἐκομισάμην carried off.
ῴζω save, ἐσώθην saved myself (was saved), ἐσωσάμην saved for myself.
ψεύδω deceive, ἐψεύσθην deceived myself (was deceived), ἐψευσάμην lied.
In some verbs showing 1st and 2nd aorist, or 1st and 2nd perfect, the first tenses are generally transitive, the second tenses generally intransitive. The future active of these verbs is transitive. In some transitive verbs the perfect (usually the 2nd perf.) is intransitive.
ἄγνῡμι : trans. κατά̄γνῡμι break, -έᾱξα; intrans. κατά̄γνυμαι break, 2 aor. -εά̄γην; 2 perf. -έᾱγα am broken.
βαίνω go: trans. βήσω shall cause to go, 1 aor. ἔβησα, Ion. and poet.; intrans. 2 aor. ἔβην went, pf. βέβηκα have gone, stand fast.
δύ̄ω : trans. cause to enter, sink, put on, δύ̄σω, ἔδῡσα, δέδῠκα; intrans. enter, pass under, δύ̄ομαι, δύ̄νω, 2 aor. ἔδῡν dived, went down, δέδῡκα have entered, gone down. In prose usually καταδύ̄ω make sink, κατέδῡσα, καταδύ̄σω; καταδύ̄ομαι sink, καταδύ̄σομαι, κατέδῡν.—Of another's clothes, ἐνδύ̄ω (ἐνέδῡσα) means put on, ἀποδύ̄ω ἐκδύ̄ω (ἀπέδῡσα ἐξέδῡσα) mean take off; of one's own clothes, ἐνδύ̄ομαι and ἐνέδῡν mean put on, ἀποδύ̄ομαι ἐκδύ̄ομαι (ἀπέδῡν ἐξέδῡν) mean take off.
ἐγείρω : trans. rouse, wake up, ἐγερῶ, ἤγειρα, etc.; intrans. ἐγείρομαι wake, am awake, ἐγερθήσομαι, ἠγέρθην, 2 aor. ἠγρόμην awoke, 2 perf. ἐγρήγορα am awake.
ἵστημι set: trans. στήσω shall set, 1 aor. ἔστησα set, ἐστάθην was set, ἵσταμαι set for myself, στήσομαι, ἐστησάμην. Four active tenses are intrans.: 2 aor. ἔστην (set myself) stood, pf. ἕστηκα (have set myself) stand, am standing, εἱστήκη stood, was standing, 2 perf. ἕστατον stand, fut. pf. ἑστήξω shall stand. So also ἵσταμαι set myself, stand, στήσομαι.
N.—The same distinction prevails in the compounds: ἀνίστημι raise up, ἀνέστην stood up, ἀφίστημι set off, cause to revolt, ἀπέστην stood off, revolted, ἀφέστηκα am distant, am in revolt; ἐφίστημι set over, ἐπέστην set myself over, ἐφέστηκα am set over; καθίστημι set down, establish, κατέστην established myself, became established, καθέστηκα am established. The aorist middle has a different meaning: κατεστήσατο established for himself; συνίστημι introduce, unite, συνέστημεν banded together.
λείπω leave: trans. λείψω, ἔλιπον, λέλοιπα have left, have failed, am wanting. λείπομαι mid. = remain (leave myself), pass. = am left, am left behind, am inferior; 2 aor. mid. ἐλιπόμην left for myself (in Hom. was left, am inferior), λείψομαι will leave for myself, will remain, be left.
μαίνω : trans. madden, ἐκμαίνω, -μανῶ, -έμηνα; intrans. rage, μαίνομαι, μανοῦμαι, ἐμάνην, 2 perf. μέμηνα am raging.
ὄλλῡμι : trans. destroy (perdo), ἀπόλλῡμι, -ολῶ, -ώλεσα, -ολώλεκα have ruined (perdidi); intrans. perish (pereo), ἀπόλλυμαι, -ολοῦμαι, 2 aor. -ωλόμην, 2 perf. -όλωλα am ruined (perii).
πείθω : trans. persuade, πείσω, ἔπεισα, πέπεικα have persuaded, ἐπείσθην, πεισθήσομαι; intrans. (persuade myself) obey, believe, πείθομαι, πείσομαι, ἐπείσθην, πέπεισμαι am convinced; 2 perf. πέποιθα I trust ( = πιστεύω) is rare in prose.
πήγνῡμι : trans. fix, make fast, πήξω, ἔπηξα, ἐπήχθην; intrans. am fixed, freeze, πήγνυμαι, παγήσομαι, ἐπάγην, 2 perf. πέπηγα am fixed, frozen.
πί̄νω drink: 2 aor. ἔπιον drank, 1 aor. ἔπῑσα caused to drink.
πλήττω : trans. terrify, ἐκπλήττω, καταπλήττω, -έπληξα; intrans. am affrighted, ἐκπλήττομαι, -επλάγην.
πρά̄ττω do: πέπρᾱχα (probably late) have done, πέπρᾱγα have fared (well or ill) and have done.
ῥήγνῡμι : trans. break, -ῥήξω, ἔρρηξα; intrans. break, burst, ῥήγνυμαι, -ῥαγήσομαι, ἐρράγην, 2 perf. ἔρρωγα am broken.
σβέννῡμι : trans. extinguish, put out, ἀποσβέννῡμι, ἀπέσβεσα, ἀπεσβέσθην; intrans. be extinguished, go out, ἀποσβέννυμαι, ἀποσβήσομαι, ἀπέσβην went out, ἀπέσβηκα am extinguished.
σήπω : trans. make rot; intrans. rot, σήπομαι, ἐσάπην rotted, 2 perf. σέσηπα am rotten.
τήκω : trans. cause to melt; intrans. melt, τήκομαι, ἐτάκην, 2 perf. τέτηκα am melted.
φαίνω : trans. show, φανῶ, ἔφηνα, πέφαγκα have shown, πέφασμαι, ἐφάνθην was shown, made known; trans. also show, declare, φαίνομαι, φανοῦμαι, ἐφηνάμην showed (rare and poetic in the simple form; ἀπεφηνάμην declared is common); intrans. show oneself, appear, φαίνομαι, φανήσομαι and φανοῦμαι, ἐφάνην appeared, 2 perf. πέφηνα have shown myself, appeared. The middle means show oneself, appear; the passive, am shown, am made evident. φανήσομαι means shall appear or shall be shown, and is not very different in sense from φανοῦμαι (but see 1738, 1911).
φθείρω : trans. destroy, διαφθείρω, -φθερῶ, -έφθειρα, -έφθαρκα; intrans. am ruined, διαφθείρομαι, -εφθάρην, -φθαρήσομαι, 2 perf. διέφθορα am ruined in Hom., have destroyed in Attic poetry.
φύ̄ω : trans. bring forth, produce, φύ̄σω, ἔφῡσα; intrans. am produced, come into being, φύ̄ομαι, φύ̄σομαι, ἔφῡν, 2 perf. πέφῡκα am by nature.

The following are poetic intransitive second perfects: ἄρᾱρα fit (ἀραρίσκω fit, trans.).—ἔολπα hope (Epic ἔλπω cause to hope).—κέκηδα sorrow (κήδω trouble).—ὄρωρα have arisen (ὄρνῡμι rouse).


--- layout: post title: "Uncertainty, causality and generalization: Attempts to improve image-based predictive modelling" subtitle: "Ben Glocker, Imperial College London" date: 2020-07-08 12:00:0 +0000 background: '/img/posts/glocker.jpg' future_date: False layer_shift: True ---
This talk will give an overview of some recent work by our team on various aspects of predictive modelling in imaging. We will discuss how the language of causality can shed some new light on key challenges in machine learning for medical imaging, namely data scarcity and mismatch. For the latter, we present a meta-learning algorithm for domain generalization. We also look at some very recent results of our attempt to generate counterfactual images using deep structural causal models. Finally, we introduce a simple yet effective component for modelling spatially correlated aleatoric uncertainty in image segmentation which can be plugged into any existing network architecture. The resulting stochastic segmentation networks predict multiple plausible segmentation maps with a single forward pass.
Ben Glocker is Reader (eq. Associate Professor) in Machine Learning for Imaging at Imperial College London. He holds a PhD from TU Munich and was a post-doc at Microsoft and a Research Fellow at the University of Cambridge. His research is at the intersection of medical image analysis and artificial intelligence aiming to build computational tools for improving image-based detection and diagnosis of disease.
The event will take place on Wednesday, 08 July, 2020 at 12:00pm . It will be a joint event with the DKFZ Data Science Seminar and will take place online. You can join the live stream at this URL and ask questions via chat! Kindly help us plan ahead by registering for the event on our meetup page.


OBJECT OF BEAUTY A film review by Mark R. Leeper Copyright 1991 Mark R. Leeper
Capsule review: A well-crafted comedy with some nice dramatic moments and some serious things to say. This story is of the theft of a valuable piece of art from a spendthrift American couple living in London. The story touches a broad range of emotions with some of the minor characters more interesting than the main ones. Rating: +2.
It is fairly easy to make a comedy with an Eddie Murphy or a Bette Midler mugging away on the screen and a lot of artificial gags. With a film like that, you know why it is enjoyable and ten minutes after it is over it is really over. It is much harder to make a comedy with solid, three- dimensional characters in a situation that is not obviously comedic and just let well-observed characters drive the story. OBJECT OF BEAUTY is at least nominally a comedy but it spans a broad range of emotion. It is a good story well-told.
Jake and Tina (played by John Malkovitch and Andie MacDowell) are an American wheeler-dealer and his girlfriend living together in a posh London hotel and virtually hemorrhaging money. The problem is that it is money that Jake can ill-afford to waste on meals that cost over a hundred pounds. Jake is hoping for a big return on an investment in cocoa which has been washed out by a dock strike in Sierra Leone. He needs money desperately and wants to sell a valuable Henry Moore sculpture that Tina was given by her husband Larry. Tina prefers hiding the object d'art and claiming the insurance. Meanwhile the lonely deaf-mute chambermaid (delicately played by Rudi Davis) finds that this little bronze head is the only solace for the loneliness of her affliction. She spirits the head away and keeps it as a needed friend. Since Jake and Tina had just discussed hiding the head for the insurance, each suspects the other has done just that and is holding out on the other.
The story then moves between the two worlds. One is the hotel where Jake and Tina are finding this new strain destroying their relationship. It is also where Jake is finding it increasingly difficult to dodge the hotel management on the matter of his bad credit while he is still getting them to pursue the matter of the missing piece of art. The other world is the lonely one of Jenny (the chambermaid) and her delinquent brother. Here what has been a light comedy gives way to some serious drama including at least two scenes of real dramatic power.
The script by Michael Lindsey-Hogg, who also directed, seems to have attracted a first-rate but oddly matched cast of supporting actors, including Lolita Davidovich (from BLAZE) as Tina's best friend, veteran British heavy Joss Ackland as the hotel manager, Bill Paterson (from COMFORT AND JOY), and Peter Riegert (from ANIMAL HOUSE and CROSSING DELANCEY) as Tina's real husband. The script is subtle and rewarding in a way that the British seem to do far better than the Americans. This is a rewarding story with a good balance of comedy and drama. I rate it +2 on the -4 to +4 scale.
Mark R. Leeper att!mtgzy!leeper<EMAIL_ADDRESS>.
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


High-resolution δ 13C, δ 18O and geochemical proxy profiles in the latest Permian-Early Triassic strata from the measured section. Details are presented in Supplementary Tables S4 and S5. Abbreviations: Fm, Formation; PTB, Permian-Triassic boundary. Z.C.Z created this figure using CorelDRAW14. Footprints and pareiasaur body shape are schematically reconstructed.


This WebApp allows you to create quotes and have those quotes voted on whether they are terrible or are inspirational. You are able to enter the quote,the quote's Author and your name through a form input and submit the details.
" {{ quote.quote }} "


MSALTelemetry Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | MSALTelemetry.h |
Overview
@class MSALTelemetry
The central class for MSAL telemetry.

Declared In
MSALTelemetry.h
– addDispatcher:setTelemetryOnFailure:
Register a telemetry dispatcher for receiving telemetry events.
- (void)addDispatcher:(nonnull id<MSALDispatcher>)dispatcher setTelemetryOnFailure:(BOOL)setTelemetryOnFailure
Parameters
dispatcher |
An instance of MSALDispatcher implementation. |
|---|---|
setTelemetryOnFailure |
If set YES, telemetry events are only dispatched when errors occurred; If set NO, MSAL will dispatch will dispatch all events. |
Discussion
Register a telemetry dispatcher for receiving telemetry events.
Declared In
MSALTelemetry.h
– removeDispatcher:
Remove a telemetry dispatcher added for receiving telemetry events.
- (void)removeDispatcher:(nonnull id<MSALDispatcher>)dispatcher
Parameters
dispatcher |
An instance of MSALDispatcher implementation added to the dispatches before. |
|---|
Discussion
Remove a telemetry dispatcher added for receiving telemetry events.
Declared In
MSALTelemetry.h
– removeAllDispatchers
Remove all telemetry dispatchers added to the dispatchers collection.
- (void)removeAllDispatchers
Discussion
Remove all telemetry dispatchers added to the dispatchers collection.
Declared In
MSALTelemetry.h


I am a passionate individual as regards the web. I love challenges because it helps me learn more. I have knowledge on Html5, CSS3, Bootstrap, basic Javascript and Wordpress. I also do UI design with Figma.
I work as a freelance web designer and content creator. I create websites tailored to the needs of my clients using Html and CSS(Bootstrap) or/and Wordpress. I also do UI design with Figma.
Learnt the basics of web development. Created responsive websites using HTML5 and bootstrap.
Apart from being a web developer, I am also a content writer. I love photography and creating memories. I also love reading, listening to music, playing games, learning new things and meeting new people.


JJAnimationSettings
@objc
public class JJAnimationSettings : NSObject
General animation configuration settings
-
Duration of the animation. Default is
0.3
Declaration
Swift
@objc public var duration: TimeInterval
-
Damping ratio of the animation. Default is
0.55
Remark
Not used for transitions.Declaration
Swift
@objc public var dampingRatio: CGFloat
-
Initial velocity of the animation. Default is
0.3
Remark
Not used for transitions.Declaration
Swift
@objc public var initialVelocity: CGFloat
-
Delay in between two item animations. Default is
0.1
Remark
Only used for item animations.Declaration
Swift
@objc public var interItemDelay: TimeInterval
-
Initializes and returns a newly allocated animation settings object with specified parameters.
Declaration
Swift
@objc public convenience init(duration: TimeInterval = 0.3, dampingRatio: CGFloat = 0.55, initialVelocity: CGFloat = 0.3, interItemDelay: TimeInterval = 0.1)
Parameters
duration
Duration of the animation. Default is
0.3
.dampingRatio
Damping ratio of the animation. Default is
0.55
initialVelocity
Initial velocity of the animation. Default is
0.3
interItemDelay
Delay in between two item animations. Default is
0.1
Return Value
An initialized animation settings object.


Rafael Kinoshita
Software Developer
Learn More About Me
Hi I'm Rafael, I love learn new things
My skills
I enjoy studie and apply new technologies
html
javascript
c#


Weekly Update, September 27, 2019
Updates from week of September 27, 2019
- Using FeatureTools https://docs.featuretools.com/index.html + AutoML (H2O) http://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html
- Tutorial from Analytics Vidhya https://www.analyticsvidhya.com/blog/2018/08/guide-automated-feature-engineering-featuretools-python/
- AutoML: https://medium.com/@alxmamaev/how-to-build-automl-from-scratch-ce45a4b51e0f
- ML-Workspace: https://github.com/ml-tooling/ml-workspace/
- Kaggle Youtube-8m 2019 challenge https://www.kaggle.com/c/youtube8m-2019/overview
- Kaggle Scripting Contest submissions: https://www.kaggle.com/general/109651
- Pandas EDA: https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d
- RAdam for tensorflow & keras https://pypi.org/project/tensorflow-radam/
- Customer Lifetime Value<EMAIL_ADDRESS>- Lifetimes package: https://github.com/CamDavidsonPilon/lifetimes https://lifetimes.readthedocs.io/en/latest/Quickstart.html
- Bruce Hardie: http://brucehardie.com/
- Model Ensembling:
- Stacking Made Easy http://blog.kaggle.com/2017/06/15/stacking-made-easy-an-introduction-to-stacknet-by-competitions-grandmaster-marios-michailidis-kazanova/
- Kaggle Ensembling Guide https://mlwave.com/kaggle-ensembling-guide/
- PyStackNet: https://github.com/h2oai/pystacknet
- Intro to Stacking https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python
- 30 seconds of Python: https://github.com/30-seconds/30-seconds-of-python
- Streamlit: https://towardsdatascience.com/coding-ml-tools-like-you-code-ml-models-ddba3357eace


Scream 3 **1/2
Rated on a 4-star scale Screening venue: Odeon (Manchester City Centre) Released in the UK by Buena Vista International on April 28, 2000; certificate 18; 117 minutes; country of origin USA; aspect ratio 2.35:1
Directed by Wes Craven; produced by Cathy Konrad, Marianne Maddalena, Kevin Williamson. Written by Ehren Kruger; based on characters created by Kevin Williamson. Photographed by Peter Deming; edited by Patrick Lussier.
CAST..... Neve Campbell..... Sidney Prescott David Arquette..... Dwight 'Dewey' Riley Courteney Cox Arquette..... Gale Weathers Patrick Dempsey..... Detective Mark Kincaid Scott Foley..... Roman Bridger Lance Henriksen..... John Milton Jenny McCarthy..... Sarah Darling Parker Posey..... Jennifer Jolie
The character Neve Campbell plays in "Scream 3" has been so badly shaken in the first two movies that she now lives in Monterey with a reclusive anonymous lifestyle. When she finally drives to California to join in with the rest of the action, she's quieter, thoughtful and more authoritative. Watching this makes us realise what great potential Campbell has for performing in serious drama. I kept fantasising about writing a great screenplay for her, to showcase her captivating presence and win her international acclaim.
It's not just time for Neve to move on, though, but everyone involved. When the original "Scream" was released in 1996, it was a stunning comic idea -- a film with the structure of a slasher pic in which the characters knew all the clichés and had self-referential conversations about them. Unfortunately, the idea was copied, and quickly became a cliché in itself. Now almost every American movie starring kids under 20 is filled with smug, cynical allusions to pop culture that just make us groan and yawn.
Given that its options are limited and it's the third trek over the same ground, "Scream 3" does a pretty good job of engaging us. The filmmakers have announced that it's the last in the series, and while I'm not about to complain, at least their latest work is watchable. It comes up with a pretty ingenious way of generating more jokes, in fact, by setting its story in Hollywood, and featuring the production of a movie called "Stab 3". A horror movie, wouldn't you know it, based on characters from the first two "Scream" pictures.
This gives the director, Wes Craven, and his screenwriter, Ehren Kruger, the freedom to blur the line between what's going on in the 'reality' of the story and the world of movies. The plot involves another mystery about who is perpetrating a murderous rampage, and at this point in the trilogy we've been introduced to so many characters with so many conflicting personality traits that there is indeed a fair amount of suspense about the identity of the killer. In the end, Craven and Kruger come up with an unpredictable and arbitrary solution, but hey, at least we're not bored, as we were in "Scream 2". That sequel made a bad mistake in thinking it was a real horror movie, and ditching the humour.
"Scream 3" is generally easy to watch, with colourful, sexy visuals, and although its form of parody is becoming old hat, there is enough successful ironic chatter to get us giggling. As I've suggested, it's better than "Scream 2". But somehow it doesn't work well enough to recommend. The idea has been stretched too far. They should have made one movie, and called it quits.
My biggest concern is that a lot of the violence is excessive for a lighthearted flick. Every time a knife is pulled out, for example, there is a disgusting metallic 'zing!' on the sound track, and a bright gleam on the screen. People get slaughtered in cruel, not amusing, ways. Unnecessary. Sick.
COPYRIGHT(c) 2000 Ian Waldron-Mantgani Please visit, and encourage others to visit, the UK Critic's website, which is located at http://members.aol.com/ukcritic
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


Structs
The following structs are available globally.
-
CriticalSection
s can be used to ensure exclusive access to a given resource.By protecting a resource with a
CriticalSection
, you ensure that only one one thread can be executing code using that critical section at any given time.
See moreCriticalSection
s are re-entrant, meaning that code already holding access to the critical section may re-enter the critical section without causing a deadlock. (TheNSRecursiveLock
class is used under the hood.)Declaration
Swift
public struct CriticalSection
-
Provides a mechanism for accessing thread-local values stored in the
threadDictionary
associated with theNSThread
of the caller.As the class name implies, values set using
See moreThreadLocalValue
are only visible to the thread that set those values.Declaration
Swift
public struct ThreadLocalValue<ValueType: AnyObject>
-
ReadWriteCoordinator
instances can be used to coordinate access to a mutable resource shared across multiple threads.You can think of the
ReadWriteCoordinator
as a read/write lock having the following properties:
See more- The *read lock* allows any number of *readers* to execute concurrently. - The *write lock* allows one and only one *writer* to execute at a time. - As long as there is at least one reader executing, the write lock cannot be acquired. - As long as the write lock is held, no readers can execute.
Declaration
Swift
public struct ReadWriteCoordinator


LOADING SUPERCRUISR
WebVR video player. Select your video file:
Play video
360 video (equirectangular) or pass the video via URL (
example
)
particularly pratical for mobile. Pop corn ready? All set? then
enter VR


Overview
This JavaScript example guides you through the process of creating zones and geocoding addresses.
Work flow
Using an address such as "CN Tower", or "102 Main Street East, Toronto, ON" an API request is made to retrieve the
latitude and longitude coordinates for that address. Then, a box is created around that point consisting of four corners.
The distance apart is variable using the slider provided. To finish creating the zone, add a name and click Add zone and the
points you see will be saved to your account.
Skill level
Intermediate


CURRENT PROGRAM:
Computer Software Engineering Technology
CURRENT SEMESTER:
Fall 2017
ENROLLED CREDIT HOURS:
15
ACADEMIC STANDING:
Good
CURRENT SCHEDULE
|
Calendar
Monday
ENGL 101, 8:00 - 9:30am
English Composition
CSET 105, 12:00 - 4:30pm
Intro to Web Applications
Tuesday
MATH 100, 8:00 - 9:30am
College Algebra
CSET 110, 12:00 - 4:30pm
Web Development I
Wednesday
ENGL 101, 8:00 - 9:30am
English Composition
CSET 110, 12:30 - 4:30pm
Web Development I
Thursday
MATH 100, 8:00 - 9:30am
College Algebra
CSET 115, 12:00 - 4:30pm
Technical Requirements & Data Structures
Friday
CSET 120, 12:00 - 4:30pm
Software Project I / Open Lab


Implements Bayesian inference for the conditional genetic stock identification model. It allows inference of mixed fisheries and also simulation of mixtures to predict accuracy. A full description of the underlying methods is in review at Canadian Journal of Fisheries and Aquatic Sciences.
| Version: | 0.1.0 |
| Depends: | R (≥ 3.3.0) |
| Imports: | dplyr, ggplot2, gtools, magrittr, Rcpp (≥ 0.12.5), readr, rlang, stringr, tibble, tidyr |
| LinkingTo: | Rcpp |
| Suggests: | knitr, rmarkdown, tidyverse |
| Published: | 2018-01-29 |
| Author: | Eric C. Anderson [aut, cre], Ben Moran [aut] |
| Maintainer: | Eric C. Anderson <eric.anderson at noaa.gov> |
| License: | CC0 |
| NeedsCompilation: | yes |
| Materials: | README NEWS |
| CRAN checks: | rubias results |
| Reference manual: | rubias.pdf |
| Vignettes: |
An Overview of rubias Usage An Explanation of the Underlying Data Structures in rubias |
| Package source: | rubias_0.1.0.tar.gz |
| Windows binaries: | r-devel: rubias_0.1.0.zip, r-release: rubias_0.1.0.zip, r-oldrel: rubias_0.1.0.zip |
| OS X binaries: | r-release: rubias_0.1.0.tgz, r-oldrel: rubias_0.1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=rubias to link to this page.


Source code for baxter_helper_tasker
#!/usr/bin/env python
###########################################################################
# This software is graciously provided by HumaRobotics
# under the Simplified BSD License on
# github: git@www.humarobotics.com:baxter_tasker
# HumaRobotics is a trademark of Generation Robots.
# www.humarobotics.com
# Copyright (c) 2013, Generation Robots.
# All rights reserved.
# www.generationrobots.com
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and documentation are
# those of the authors and should not be interpreted as representing official
# policies, either expressed or implied, of the FreeBSD Project.
#
#############################################################################
import rospy
"""
Helper Classes and functions for Baxter
"""
import copy
from hr_helper.post_threading import *
[docs]class Task:
"""
Creates a new task in the GUI on the workstation that has access to the robot.
Additionally it can be instantly executed, saved and reloaded
"""
def __init__(self,tasker):
self.tasker=tasker
self.baxter=tasker.baxter
[docs]class TaskEval(Task):
"""
Evaluates a previously defined task
"""
def __init__(self,tasker,toeval):
Task.__init__(self,tasker)
self.toeval=toeval
[docs] def buildContext(self):
# Build context
context=dict(globals())
exec self.tasker.tasks["_globals"].toeval in context
context["baxter"]=self.baxter
for task in self.tasker.tasks.keys():
context[task]=lambda task=task: self.tasker.perform(task)
return context
[docs]class Tasker:
"""
Manages the tasks that are visible in the GUI
"""
def __init__(self,baxter):
"""
:param baxter: handle to all function of the robot
:type baxter: BaxterRobot
"""
self.baxter=baxter
self.post=Post(self)
self.tasks={}
self.add("_globals",TaskEval(self,"bip=5"))
[docs] def add(self,taskname,task):
"""
Adds a new task to the GUI
.. note:: The task is only saved if the "Save tasks" in the menu is invoked
:param taskname: Name of the task
:type taskname: str
:param task: Handle to the task
:type task: Task
"""
self.tasks[taskname]=task
if __name__=="__main__":
cmd="""
"""
tasker=Tasker(None)
te1=TaskEval(tasker,"""
print 'task1'
print task2()
print 'task1 done'
return True
"""
)
tasker.add("task1",te1)
te2=TaskEval(tasker,"""
print 'task2'
print 'task2 done'
print bip
return "ret2"
"""
)
tasker.add("task2",te2)
tasker.perform("task1")


|
Using Matlab with TinyOS
Last updated 28 April 2005 |
This tutorial explains how to interact with a mote or sensor network using Matlab. Matlab is matrix-based programming language with a number of libraries available for plotting and analyzing data. It provides a command-line like environment (like your bash shell) from which you can send/receive messages to/from your sensor network and analyze data. You can also use all of TinyOS's Java tools from within the Matlab environment.
This tutorial will show how to write a simple Oscilloscope application similar to the Java Oscope application that you used in Tutorial 6. Before you begin this tutorial, be sure that you have read Lesson 6, that you have a node connected to your PC that is running the TinyOS Oscilloscope application, and that you have set up your Matlab environment to work with TinyOS.
| Understanding the Basics |
The first step in using Matlab with TinyOS is to connect to your Matlab session to your sensor network using the connect command. This command takes a single argument using the same notation that serialForwarder uses to indicate how it should connect. For example, you can connect directly to your serial port, to a serialForwarder, or to an instance of TOSSIM.
connect('serial@COM1:telosb');
connect('sf@localhost:9001);
This command can be called multiple times to connect your Matlab session to several different ports. For example, you could be connected to a real network as well as an instance of TOSSIM.
The second step is to send a message to the network using the send command, which takes two arguments: 1) a node ID and 2) a MIG message (MIG is a tool that automatically generates Java representations of TinyOS packets. see MIG). We will be using the Oscope MIG objects, so make sure you compile them in the tinyos-1.x/tools/java/net/tinyos/oscope directory. Then, we need to instantiate the MIG message, which is a Java class that is a subclass of net.tinyos.message.Message. In Matlab, we can instantiate java objects on the command line as follows:
msg=net.tinyos.oscope.OscopeResetMsg
Once the java object is instantiated, we can send it to the network:
send(1, msg)
This command automatically addresses the message to node 1. However, it could also be addressed to all nodes (just as in TinyOS) using TOS_BCAST_ADDR, which is available in a predefined global struct called COMM:
send(COMM.TOS_BCAST_ADDR, msg)
When used with only two arguments, the send command sends to all ports to which the Matlab session is connected. You may also pass optional parameters to specify that the packet should only be send to certain ports:
send(COMM.TOS_BCAST_ADDR, msg, serial@COM1:telosb, sf@localhost:9001, ...);
The next step is to receive messages from our network using the receive command, which takes two parameters: 1) the Matlab function that will handle the incoming message events and 2) an example instance of the MIG object that should be received. We would like to receive the OscopeMsg, which is the message type that the TinyOS Oscilloscope application uses to transmit its data. Therefore, we first instantiate a OscopeMsg object.
omsg = net.tinyos.oscope.OscopeMsg
Then, we create a Matlab function that takes two parameters: an address and a message. (Look at tools/matlab/util/printMsg.m as an example). Finally, we register the function as an event handler for messages of this type:
receive('printMsg', omsg);
Whenever a message of type OscopeMsg is received, the printMsg function will be called with the message passed to it as a parameter. If you have an Oscilloscope mote attached to serial@COM1 or sf@localhost:9001, the messages will start appearing on the screen.
Similar to send, receive takes a port, e.g. serial@COM1 or sf@localhost:9001, as an optional third argument to indicate that this Matlab function should only serve as a message handler for messages on these ports.
At this point, the OscopeMsg objects should be printing to your screen about once per second. To stop this, you could use the stopReceiving command to de-register your Matlab function as a message handler.
Alternatively, if you have several message handlers, you could simply start and stop the entire Matlab comm stack. Both of these functions take optional parameters that specify which ports should be started and stopped.stopReceive('printMsg', omsg);
startComm('printMsg', omsg);
startComm('printMsg', omsg, serial@COM1);
stopComm('printMsg', omsg);
stopComm('printMsg', omsg, serial@COM1);
| A Sample Application: Oscope |
In this part of the tutorial we explain how to put all of the basic commands together to form a complete application. The application we will use as an example is Oscope which performs the same functionality as the Java Oscope application described in Lesson 6.
The structure of Matlab applications may resemble that of a TinyOS application: it has a StdControl section, timer event handlers, and message event handlers. The first few lines in the application should resemble these:
oscope.m
function oscilloscope(varargin) if nargin>0 & ischar(varargin{1}) feval(varargin{1},varargin{2:end}); elseif nargin==0 usage; end function usage fprintf('USAGE:\n\toscilloscope(''init'')\n\toscilloscope(''start'')\n\toscilloscpe(''reset'')\n\tetc.\n') |
This code indicates that the application name is "oscope". All other code is used to dispatch the rest of the commands, which are defined below.
The next section of the application indicates how to initialize, start, and stop the application.
oscope.m
function init(varargin) %% create a global structure to hold persistent state for this application global OSCOPE %% import all necessary java packages import net.tinyos.* import net.tinyos.message.* import net.tinyos.oscope.* %% connect to the network connect('sf@localhost:9001'); %% instantiate the application message types for future use OSCOPE.oscopeMsg = oscope.OscopeMsg; OSCOPE.resetMsg = oscope.OscopeResetMsg; OSCOPE.plot = plot(1); function start global OSCOPE %% register as a listener to OscopeMsg objects receive(@oscopeMessageReceived,OSCOPE.oscopeMsg); function stop global OSCOPE %% unregister as a listener to OscopeMsg objects stopReceiving(@oscopeMessageReceived,OSCOPE.oscopeMsg); |
To initialize the application, we first connect to a running SerialForwarder. Then, we instantiate the two MIG messages that we will be using later, and we store them as fields in the OSCOPE global struct. This struct is used to hold persistent state of this application. We also create a Matlab "plot" which we will use to display the incoming Oscilloscope data. The "start" and "stop" functions register and un-register this application's message handler, which is defined below. The "@" notation indicates that we are passing a reference to the locally-defined function called "oscopeMessageReceived".
The next step is to define our message handler. This message handler takes the data from the plot and appends the data from the message to it, adding it back to the plot.
oscope.m
function oscopeMessageReceived(address, oscopeMsg, varargin) global OSCOPE xdata = get(OSCOPE.plot,'XData'); ydata = get(OSCOPE.plot,'YData'); set(OSCOPE.plot,'XData',[xdata oscopeMsg.lastSampleNumber-9:oscopeMsg.lastSampleNumber]); set(OSCOPE.plot,'YData',[ydata oscopeMsg.get_data']); |
We can also define a "reset" function, which will perform two functions similar to those found in the Java oscope application: 1) reset the oscilloscope node and 2) reset the plot. In this case, we will parameterize this function with an optional "address". If the address is defined, only that node will be reset. Otherwise, all nodes will be reset
oscope.m
function reset(address) global OSCOPE global COMM if nargin<1 address = COMM.TOS_BCAST_ADDR; end send(address,OSCOPE.resetMsg); set(OSCOPE.plot,'XData',[]); set(OSCOPE.plot,'YData',[]); |
Finally, we can include timers in our application. This allows us to do repeated or time-based actions. In our example, we will use a timer to reset the node every 10 seconds. To use timers, we need to change the StdControl functions to initialize, start and stop the timer. We also need to define a timer event handler. In our case, the event handler will be called "timerFired" and will simple call the "reset" function we defined earlier.
oscope.m
function init(varargin) ... OSCOPE.timer = timer('Name', 'Oscope Timer','TimerFcn',@timerFired,'ExecutionMode','fixedRate','Period',10); function start ... startTimer(OSCOPE.timer) function stop ... stopTimer(OSCOPE.timer) function timerFired reset; |
This application can now be used from the command line by calling any of its functions. Here is an example session that will initialize, start, reset, and stop the oscope.m application. We also call the "reset" function with a parameter of "10" to only reset node number 10.
oscope init;
oscope start;
oscope reset;
oscope reset 10;
oscope stop;
We leave it as an exercise to the reader to plot oscope data from multiple different oscope nodes. Another useful exercise is to add a "reset" button to the plot so that the user can simply click on the button instead of resetting the application from the command line. HINT: use the "guide" function in Matlab to create a GUI. A third useful exercise is to add the pan/zoom functionality that is in the java application. HINT: use the "plt" function instead of the "plot" function. "plt" can be found on the web on the Mathworks.com file exchange web pages.
For more information about using Matlab and TinyOS, see the FAQ.


Introduction to pytube library
- We know YouTube is very popular video sharing platform in the entire world.
- At times we wants to download a video which we can play in offline mode. For that, we download any online you tube downloader or any sites that saves the video into our computer.
- Our work is done, but while adopting this way we come across many multiple sites which gets open in our background which is unsafe.
- But have you ever think of creating our own program to download youtube videos?
- Python program with fewer number of lines of code which makes our job easier.
- It has a library named as ‘pytube’ to download youtube videos directly.
What is pytube library in python?
pytube is a lightweight, dependency-free Python library which is used for downloading videos from the web.
Why pytube to be adopted?
- No Third-Party Dependencies
- Extensively Documented Source Code
- Ability to Capture Thumbnail URL
- Caption Track Support
- Outputs Caption Tracks to .srt format (SubRip Subtitle)
- Command-line Interfaced Included
- Makes pipelining easy
Installation
Installation is easy when you have pip via pypi. In the Terminal or Command Prompt, type the following command to install pytube.
$ pip install pytube3
Lets get started
Let’s start by importing the youtube class:
from pytube import YouTube
Now get any link from the youtube you want to download:
yt = YouTube('https://www.youtube.com/watch?v=WvhQhj4n6b8')
The pytube API makes all information intuitive to access. For example, this is how you would get the video's title:
>>>yt.title
What is Python? | Introduction to Python | Python Programming For Beginners | Edureka
We can also get the thumbnail url of the video:
>>>yt.thumbnail_url
https://i.ytimg.com/vi/WvhQhj4n6b8/maxresdefault.jpg
Now, we need to select the media format. Pytube module provides different media formats to download video which we wish to:
>>>stream = yt.streams.all()
[<Stream: itag="18" mime_type="video/mp4" res="360p"fps="30fps" vcodec="avc1.42001E" acode
c="mp4a.40.2" progressive="True" type="video">, <Stream: itag="22" mime_type="video/mp4" re
s="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2" progressive="True" type="video
">, <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028"
progressive="False" type="video">, <Stream: itag="248" mime_type="video/webm" res="1080p" f
ps="30fps" vcodec="vp9" progressive="False" type="video">, <Stream: itag="136" mime_type="v
ideo/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f" progressive="False" type="video">]
The video will be downloaded into your destination path:
>>>stream.download('**specific location**')
The video will be downloaded into your current directory:
>>>stream.download()
The above steps explains breifly to use the python library pytube easily to download multiple videos from the youtube.
You can get some practical knowledge from here.


random walk Metropolis, Metropolis Hasting, parallel tempering, evolutionary Monte Carlo, temperature ladder construction and placement
| Version: | 1.3 |
| Depends: | R (≥ 1.9.0), mvtnorm, MASS, graphics |
| Published: | 2011-12-11 |
| Author: | Gopi Goswami |
| Maintainer: | Gopi Goswami <grgoswami at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | yes |
| Materials: | README ChangeLog |
| CRAN checks: | EMC results |
| Reference manual: | EMC.pdf |
| Package source: | EMC_1.3.tar.gz |
| Windows binaries: | r-devel: EMC_1.3.zip, r-release: EMC_1.3.zip, r-oldrel: EMC_1.3.zip |
| OS X binaries: | r-release: EMC_1.3.tgz, r-oldrel: EMC_1.3.tgz |
| Old sources: | EMC archive |
Please use the canonical form https://CRAN.R-project.org/package=EMC to link to this page.


Click here for part 1 of this series.
In this tutorial we'll design an app to find out which albums were released on a specific day. But you'll learn so much more along the way...
In part 1 we answered the question
"Can I find out which albums were released on my birthday?"
You sure can, just read on to find out how.
In part 1 of this guide we brought up that if you can relate to any of these then you're definitely in the right place.
In this guide, the same applies, and in addition, this guide is absolutely for you if you're interested in any of these.
From ReactJS:
A JavaScript library for building user interfaces
From Python Basic - What is Flask Python?:
"Flask is a web application framework written in Python. A Web Application Framework or simply a Web Framework represents a collection of libraries and modules that enable web application developers to write applications without worrying about low-level details"
Looking for source code?
Jump to
the Github Repo
Firstly we'll use create-react-app to generate the template for our frontend
Next we'll customize our frontend interface and set up the functions that send requests to our Flask webserver.
Then we'll adapt our Python console app into a Flask webserver..
We'll wrap up with a discussion of our results and how we could take this further..
If you want to follow along to the tutorial you can take some time to setup your environment by installing Docker using either of these guides
Either will help you setup the required software for this tutorial.
In addition to Docker, you'll also need NodeJs which you can install with either of these guides
You can now move on to creating our React app.
First we can start with a generated single-page
application with the help of create-react-app
npx create-react-app aoty-frontend
cd aoty-frontend
npm start
npx
is the package runner tool that comes with npm which is the node package manager installed along
with
NodeJS.
The generated app will now be in the folder aoty-frontend
which I would now recommend opening with
your IDE/text editor of choice.
We'll start be rewriting src/App.js
. We can change the App()
function to
function App() {
return (

);
}
Now we can add a heading and the basic html for the form

Album of the Year Searcher

<form action="#">

Date
<input type="date" name="date" id="date"/>

<button type="submit" id="submit-date">Search</button>
</form>

Now, under the form we want to add a loading spinner if the app is in the state of searching for albums.
{this.state.searching ?

Loading...

: null}
The class names are actually Bootstrap specific which is a CSS framework for developing responsive sites.
We'll return to Bootstrap later, but for now, we'll want a way to display the that albums our search found. Just under the previous code we can map over the results returned from our search to list items elements.
{this.state.results.length !== 0 ? (

{
this.state.results.map((result, i) =>

{result}

)
}

) : null}
We'll want to take the form submission into our own hands next and add a little styling
<form onSubmit={this.submitHandler.bind(this)} action="#" style={{display: `grid`, gap: `10px`}}>
We'll change the App
function to a class now, here's where we're at now, also note the new import
import React, {Component} from "react"
class App extends Component {
constructor(props) {
super(props);
this.state = {
results: [],
searching: false,
};
}
render() {
return (

...

)
}
}
Now we can add the submitHandler
function that is called on form submission
async submitHandler(e) {
// Prevent browser's default form submission behaviour
e.preventDefault()
// Extract date from form and split into array
const date = e.target.date.value.split("-")
// Store year, month code, and formatted day from date array
const year = date[0]
const monthCode = date[1]
const day = parseInt(date[2], 10) // 01 becomes 1, etc.
// Create request body
const body = {}
body.day = day
body.month_code = monthCode
body.year = year
// Set searching to true to display loading spinner
this.setState({
searching: true,
})
// Send POST request to backend and await a response
const response = await fetch(`http://localhost:5000/`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(body)
})
// If the response is OK then set state to display albums
if (response.status === 200) {
const data = await response.json();
this.setState({
results: data.results,
searching: false,
})
}
}
That's essentially all of the work done on the frontend, we can just add some styling now with Bootstrap
As we mentioned earlier... From w3schools - What is Bootstrap?:
"Bootstrap is the most popular CSS Framework for developing responsive and mobile-first websites."
We can open the aoty-frontend
folder in the terminal and run npm install react-bootstrap
bootstrap
Inside the
tag of public/index.html
we can include the Bootstrap CDN link

...
<link
rel="stylesheet"
<EMAIL_ADDRESS>integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l"
crossorigin="anonymous"
/>
...

And in either src/index,js
or src/App.js
we can include the following line
import 'bootstrap/dist/css/bootstrap.min.css';
Now we can head back to src/App.js
and at the top of the file add
import Container from 'react-bootstrap/Container'
We'll use Bootstrap and CSS Grid to customise what our App renders now
render() {
return (
<Container>
<div style={{display: `grid`, gap: `20px`}}>

Album of the Year Searcher

<form onSubmit={this.submitHandler.bind(this)} action="#" style={{display: `grid`, gap: `10px`}}>
...
</form>
...

</Container>
)
}
We can now move on to programming our Flask backend.
We're essentially rewriting the code from part 1 of the guide but I'll go over the code here too so it isn't required you've read our first part.
A quick way to get up and running is to create a new directory on the terminal with mkdir
and open
it with VS Code
sudo mkdir aoty-flask-backend
code aoty-flask-backend
We can create a virtual environment within the aoty-flask-backend
folder then (I like to open the VS
Code terminal with ctrl+alt+`
)
python3 -m venv .venv
And we can activate the environment with
source .venv/bin/activate
For more info you can check out the official Python documentation on venv
Note that you may need to change python3
to python
depending on which version you have
installed.
Next we'll install the necessary packages to get up and running
pip3 install requests flask selenium flask_cors
Now we can import the packages
# For handling requests and responses
import requests
import json
from flask import Flask, request
# Selenium imports
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, \
StaleElementReferenceException
import time
# To run Docker commands
import os
# To enable requests from the frontend user interface
from flask_cors import CORS, cross_origin
We then create and configure the app
# Create Flask instance
app = Flask(__name__)
From Flask - Application Setup:
__name__
is the name of the current Python module. The app needs to know where it’s located to set up some paths, and__name__
is a convenient way to tell it that.
Next, we use the flask_cors
module to allow communication between our frontend interface and
backend webserver.
# Enable CORS to permit requests from the frontend to the backend (a different origin)
CORS(app) # Enables CORS for all routes
# Allow Content-Type header
app.config['CORS_HEADERS'] = 'Content-Type'
From MDN Web Docs - CORS:
Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any other origins (domain, scheme, or port) than its own from which a browser should permit loading of resources
Next we'll start the Selenium Docker container
# Start Selenium webdriver container
os.system(
'sudo docker run --name my-selenium-container -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-beta-1-prerelease-20210210')
This command starts a standalone Firefox container. For other browsers and a description of why -v
/dev/shm:/dev/shm
is necessary you can visit the Docker Selenium Page.
We've named the container "my-selenium-container" so we can remove it at the end of our program.
Now we'll work on our one and only route. First we'll just get data from the form and format it
@app.route('/', methods=['POST'])
@cross_origin()
def search_albums():
# Get data from form
data = request.json
day = data['day']
month_code = data['month_code']
year = data['year']
month = ''
month_name_short = ''
# Set month and month_name_short based on month_code
if month_code == '01':
month = 'january'
month_name_short = 'Jan'
elif month_code == '02':
month = 'february'
month_name_short = 'Feb'
elif month_code == '03':
month = 'march'
month_name_short = 'Mar'
elif month_code == '04':
month = 'april'
month_name_short = 'Apr'
elif month_code == '05':
month = 'may'
month_name_short = 'May'
elif month_code == '06':
month = 'june'
month_name_short = 'Jun'
elif month_code == '07':
month = 'july'
month_name_short = 'Jul'
elif month_code == '08':
month = 'october'
month_name_short = 'Aug'
elif month_code == '09':
month = 'september'
month_name_short = 'Sep'
elif month_code == '10':
month = 'october'
month_name_short = 'Oct'
elif month_code == '11':
month = 'november'
month_name_short = 'Nov'
elif month_code == '12':
month = 'december'
month_name_short = 'Dec'
# Format release date to search for like "Sep 20"
release_date_to_search = '%s %s' % (month_name_short, day)
This command starts a standalone Firefox container. For other browsers and a description of why -v
/dev/shm:/dev/shm
is necessary you can visit the Docker Selenium Page.
We've named the container "my-selenium-container" so we can remove it at the end of our program.
The next piece of code is actually very important. When we start our container we need to wait for it to be in a state where it's ready to provide the services we need to use it as our remote webdriver.
ready = False
time.sleep(5)
while not ready:
try:
r = requests.get('http://localhost:4444/wd/hub/status', timeout=1)
status = r.status_code
if status == 200:
ready = True
except ConnectionResetError or ConnectionError:
continue
Essentially, we keep hitting the status endpoint until it says it's ready and then we can move on with the rest of our Python script.
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX,
command_executor="http://localhost:4444/wd/hub")
We can connect to our remote webdriver on localhost since due to the docker run command -p 4444:4444
which
maps port 4444 of the container to port 4444 of our local machine.
Now we can connect to the remote Firefox webdriver
# Connect to remote Firefox webdriver
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX,
command_executor="http://localhost:4444/wd/hub")
And go to the AOTY page for the specified month
# Go to Album of the Year page for specific month
driver.get(
"https://www.albumoftheyear.org/%s/releases/%s-%s.php?s=release&genre=all" % (year, month, month_code))
Next we'll code our PySelenium bot to keep clicking the button to load more albums.
all_albums_loaded = False
while not all_albums_loaded:
try:
show_more_button_container = driver.find_element_by_class_name('showMore')
time.sleep(3)
driver.execute_script("arguments[0].click();",
show_more_button_container.find_element_by_class_name('largeButton'))
time.sleep(1)
Note we're using the execute_script
method as opposed to the click()
method of the WebElement
object returned by find_element_by_id
We do this because another element
is covering the show
more button. You can see this
StackOverflow answer by
user RemcoW for more details and an explanation of arguments[0]
We're not quite finished with this while loop just yet, we need to do two things:
continue
if our reference becomes stale. This
StackOverflow answer by user Ardesco
describes the situation more clearly.
For completeness, this is our complete while loop
while not all_albums_loaded:
try:
show_more_button_container = driver.find_element_by_class_name('showMore')
time.sleep(3)
driver.execute_script("arguments[0].click();",
show_more_button_container.find_element_by_class_name('largeButton'))
time.sleep(1)
except StaleElementReferenceException:
continue
except NoSuchElementException:
all_albums_loaded = True
We can store all albums being displayed in a variable now so we can easily iterate through them.
albums = driver.find_elements_by_class_name('albumBlock')
Let's do just that
response = []
# For each album, if the release date matches the date to search for then append it to the response array
for album in albums:
album_release_date = album.find_element_by_class_name('date').text
if album_release_date == release_date_to_search:
album_title = album.find_element_by_class_name('albumTitle').text
artist_title = album.find_element_by_class_name(
'artistTitle').text
response.append('%s - %s' % (album_title, artist_title))
This is really our main block of code. We iterate through each album and append to our response
array it's title and artist if it
was released on the day we have specified to search for.
We can do a little housekeeping by returning a message if no albums match the release data and closing our driver connection
# If no albums are found return a message informing the user
if len(response) == 0:
response.append('No albums found')
# Close connection to Firefox webdriver
driver.close()
Finally, we'll return our response to the user
# Return response to user
return json.dumps({'results': response}), 200, {'ContentType': 'application/json'}
And we'll provide the command to run our Flask app outside of the function
if __name__ == '__main__':
app.run()
Congrats! Now let's see the results of our hard work in the next section.
You can find all the source code for this guide here.
Let's try searching for the albums released on a certain date to see our results.
Inside the virtual environment, we can run
python3 app.py
to start our webserver
If you've followed along and used sudo
in the docker run command you'll be prompted for your
password and then we can move to our frontend application at http://localhost:3000
Now we can enter a date and search
We can see the requests has been successful on the backend
And the results come back to the user on the frontend
Remember you can grab the source code so you can take this and run with it adapting it however you like, read on to find out what my plans are for this project and ideas about where this could go next.
We can improve our frontend by designing with our users in mind with an interface integrating the album covers and we could even add filtering by genre.
Another possible challenge to take on would be deployment using services such as Heroku and Netlify.

Here's some resources for resolving common errors you might run into along the way in this guide or in your own explorations.
requests.exceptions.ConnectionError: ('Connection aborted.',
ConnectionResetError(104, 'Connection reset
by peer'))
- this is a common error coined The
Python "Connection Rest By Peer" Problem. You can
read more about it in this
StackOverflow post by user
S.Lott. In our case it will likely arise from trying to access the status endpoint of the Selenium
container before the container is ready. You can use time.sleep(1)
before making a request to http://localhost:4444/wd/hub/status
and adjusting the time to fit
your needs.
pip: command not found
- this is likely a problem relating to your
environment as described (along with solutions) in this post by James Gallagher on
Career Karma. It may be as simple as changing pip
to pip3
or you may need
to actually install pip3, for example with apt-get sudo apt-get -y install python3-pip
StaleElementReferenceException
- our WebElement can be destroyed and
re-rendered in
the DOM so we'll need to retry by using continue
if our reference becomes stale. This StackOverflow answer by user Ardesco
describes the situation more clearly. We can catch this exception in an except
block and tell our code to retry a certain operation until the
exception doesn't occur. You can see the
example we've used in this
guide where
our solution was to use the
continue
keyword inside a while
loop.
Element is not clickable at point (x,y) because another element obscures
it
- You can see this
StackOverflow answer by
user RemcoW for more details and an explanation of our solution in this guide which was to use driver.execute_script("arguments[0].click();", element)
as opposed to the
click()
method of the WebElement
object returned by find_element_by_id
Failed to connect to localhost port 4444: Connection refused
- If you're
planning
to access the Selenium webdriver endpoint from within a different Docker container you can change
http://localhost:4444/wd/hub
to http://<IP_ADDRESS>:4444/wd/hub
or
http://host.docker.internal:4444/wd/hub
. The
rationale behind this is provided in this
StackOverflow answer by user devnev.
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost',
port=4444): Max retries exceeded with url: /wd/hub/status
- to solve this error you should run sudo
docker rm -f my-selenium-container


https://gtfobins.github.io/#
List as of May 2018
Binary Functions
ash
awk
bash
busybox
cat
csh
curl
dash
dd
diff
ed
emacs
env
expect
find
ftp
gdb
ionice
ksh
ld.so
less
mail
man
more
nano
nc
nl
node
perl
php
pico
puppet
python2
python3
rpm
rpmquery
ruby
scp
setarch
sftp
socat
sort
ssh
strace
tar
taskset
tclsh
tee
telnet
tftp
ul
uniq
unshare
vi
watch
wget
whois
wish
xargs
zsh


Objects¶
Miruken’s object-oriented approach gives power to development teams who have worked with class-based languages to quickly build and manage models and controllers in MVC applications. Miruken’s goal is to simplify development using the existing protypical nature of the JavaScript framework, but use simple syntax and common understanding of object-oriented programming.
To begin, it is important to understand how JavaScript objects work compared to other object-oriented languages. If you are not familiar how JavaScript is a classless object-oriented programming language, refer to Introduction to ObjectOriented JavaScript.
Base Objects¶
Base is the base class for all objects in Miruken. This object is what provides the object-oriented features in Miruken. For now, let’s discuss the two (2) functions Base provides: extend and implement.
Extend is the function with which derived classes and objects are created. You can use it to extend classes and instances. Extend can receive many arguments as you will see, but it’s most frequently use is one to two arguments
- An object whose members are available on instances.
- An object whose members are available on the class itself.
The last argument is optional and will be explained later in this section.
NOTE: This is not to be confused with the ECMAScript 6 extends keyword. Miruken provides additional functionality that is not available with extends.
Implement is similar to extend where all you want to do is add additional static functionality to your class. The difference between extend and implement is you only need to pass an object with member functions or a single function you wish to add.
Working with Classes¶
To begin, you can extend classes. Base is a class, therefore you should start by extending Base to create your classes. Afterwards, you can keep extending your classes to create additional classes as you would traditionally in class-based programming languages.
We are going to create a zoo package where you start with an Animal class and extend it to be more specific, such as an Eagle and a Mouse. Packages will be described later.
For example, we will create a Logger object. Then extend it to be a ConsoleLogger and a NotificationLogger.
// we need a base logger to capture all the messages
const Logger = Base.extend({
});
// now extend to create a console logger
const ConsoleLogger = Logger.extend({
});
// now extend to create a notification logger
const NotificationLogger = Logger.extend({
});
As you can see, creating and extending classes is very straight forward. Provide a class name and use extend.
Working with Instances¶
Miruken doesn’t just help define additional attributes of classes. Because you can leverage the dynamic nature of JavaScript, you can modify instances after construction and it will not affect other instances of that class.
For example, we have a Logger class that takes a name, just to differentiate the instances. You could theoretically have one logger that only does console logging while you create another instance to add an alert capability.
new function () {
base2.package(this, {
name : "instances",
exports: "Logger"
});
eval(this.imports);
const Logger = Base.extend({
// hold the name for this logger
name: "",
constructor: function(name) {
this.name = name;
}
});
eval(this.exports);
};
new function() {
base2.package(this, {
name: "instrumentation",
imports: "miruken,instances"
});
let myLogger = new Logger("console");
let alertLogger = new Logger("alert");
alertLogger.implement({
alert(message) {
alert(message);
}
});
alertLogger.alert("Whoops!");
};
Working with Static Methods¶
You can also modify objects with functions that are static and accessible to all instances of that class.
For example:
new function() {
base2.package({
name: "instrumentation",
imports: "miruken",
exports: "NullLogger"
});
eval(this.imports);
//A null object implementation
let nullLoggerInstance;
const NullLogger = Base.extend({
debug(){},
error(){}
}, {
get instance(){
return nullLoggerInstance = nullLoggerInstance || new NullLogger();
}
});
eval(this.exports);
}
new function() {
base2.package({
name: "logging",
imports: "instrumentation"
});
eval(this.imports);
let logger = NullLogger.instance;
// now just use the logger
logger.debug();
};
Creating Mixins¶
Mixins provides a clean way for code reuse without inheritance. The power of composition makes sense when you have an object that needs a diverse sets of functionality, but you don’t want to do this through a lot of extending or inheritance. In this way, Miruken can provide multiple inheritance of various objects.
For example:
const ErrorIconMixin = Base.extend({
showErrorIcon(): {
}
});
const ErrorMessageMixin = Base.extend({
showErrorMessage(message): {
}
});
const Validation = Base.extend(ErrorIconMixin, ErrorMessageMixin, {
show(): {
ErrorIconMixin.showErrorIcon();
ErrorMessageMixin.showErrorMessage();
}
});
Creating Properties¶
One of the features of Miruken is $properties. As the name implies, it creates the get/set operations for a given key and type.
For example:
new function() {
base2.package(this, {
name : "members",
exports: "Person,Doctor"
});
eval(this.imports);
const Person = Base.extend({
$properties: {
firstName: null,
lastName: null,
gender: null
},
get fullName(){
return `${this.firstName} ${this.lastName}`
}
}, {
male: "MALE",
female: "FEMALE",
itsComplicated: "ITSCOMPLICATED"
});
const Doctor = Person.extend({
$properties: {
specialty: null
},
get fullName(){
return `Dr. ${this.base()}, ${this.specialty}`
}
}, {
earNoseThroat: "ENT",
familyPractice: "FP",
spinalSurgeon: "OSS"
});
eval(this.exports);
};
new function() {
base2.package({
name: 'community',
imports: 'common'
});
eval(this.imports);
let member = new Person({
firstName: 'John',
lastName: 'Smith'
});
var personName = member.fullName; // "John Smith"
let specialist = new Doctor({
firstName: 'John',
lastName: 'Smith',
gender: Person.male,
specialty: Doctor.earNoseThroat
});
var specialistName = specialist.fullName; // "Dr. John Smith, ENT"
};


The vega of an option, , is defined as the rate of change of the option price respected to the volatility of the underlying asset:
where Π is the option price and σ is volatility of the stock price. We next show the derivation of vega for various kinds of stock option.
For a European call option on a non-dividend stock, vega can be shown as
The derivation of (21) is
For a European put option on a non-dividend stock, vega can be shown as
The derivation of (22) is
For a European call option on a dividend-paying stock, vega can be shown as
The derivation of (23) is
For a European call option on a dividend-paying stock, vega can be shown as
The derivation of (24) is
Suppose a delta-neutral and gamma-neutral portfolio has a vega equal to ν and the vega of a particular option is ν0 . Similar to gamma, we can add a position of -ν/ν0 in option to make a vega-neutral portfolio. To maintain delta-neutral, we should change the underlying asset position. However, when we change the option position, the new portfolio is not gamma-neutral. Generally, a portfolio with one option cannot maintain its gamma-neutral and vega-neutral at the same time. If we want a portfolio to be both gamma-neutral and vega-neutral, we should include at least two kind of option on the same underlying asset in our portfolio.
For example, a delta-neutral and gamma-neutral portfolio contains option A, option B, and underlying asset. The gamma and vega of this portfolio are -3,200 and -2,500, respectively. Option A has a delta of 0.3, gamma of 1.2, and vega of 1.5. Option B has a delta of 0.4, gamma of 1.6 and vega of 0.8. The new portfolio will be both gamma-neutral and vega-neutral when adding ωA of option A and ωB of option B into the original portfolio.
From two equations shown above, we can get the solution that ωA = 1000 and ωB = 1250. The delta of new portfolio is 1000 x .3 + 1250 x 0.4 = 800. To maintain delta-neutral, we need to short 800 shares of the underlying asset.
The rho of an option is defined as the rate of change of the option price respected to the interest rate:
where Π is the option price and r is interest rate. The rho for an ordinary stock call option should be positive because higher interest rate reduces the present value of the strike price which in turn increases the value of the call option. Similarly, the rho of an ordinary put option should be negative by the same reasoning. We next show the derivation of rho for various kinds of stock option.
For a European call option on a non-dividend stock, rho can be shown as
The derivation of (25) is
For a European put option on a non-dividend stock, rho can be shown as
The derivation of (26) is
For a European call option on a dividend-paying stock, rho can be shown as
The derivation of (27) is
For a European put option on a dividend-paying stock, rho can be shown as
The derivation of (28) is
Assume that an investor would like to see how interest rate changes affect the value of a 3-month European put option she holds with the following information. The current stock price is $65 and the strike price is $58. The interest rate and the volatility of the stock is 5% and 30% per annum respectively. The rho of this European put can be calculated as following.
This calculation indicates that given 1% change increase in interest rate, say from 5% to 6%, the value of this European call option will decrease 0.03168 (0.01 x 3.168). This simple example can be further applied to stocks that pay dividends using the derivation results shown previously.
For a European call option on a non-dividend stock, sensitivity can be shown as
The derivation of (29) is
For a European put option on a non-dividend stock, sensitivity can be shown as
The derivation of (30) is
For a European call option on a dividend-paying stock, sensitivity can be shown as
The derivation of (31) is
For a European put option on a dividend-paying stock, sensitivity can be shown as
The derivation of (32) is
So far, the discussion has introduced the derivation and application of each individual Greeks and how they can be applied in portfolio management. In practice, the interaction or trade-off between these parameters is of concern as well. For example, recall the partial differential equation for the Black-Scholes formula with non-dividend paying stock can be written as
Where Π is the value of the derivative security contingent on stock price, S is the price of stock, r is the risk-free rate, and σ is the volatility of the stock price, and t is the time to expiration of the derivative. Given the earlier derivation, we can rewrite the Black-Scholes PDE as
This relation gives us the trade-off between delta, gamma, and theta. For example, suppose there are two delta neutral (δ = 0) portfolios, one with positive gamma (Γ > 0) and the other one with negative gamma (Γ < 0) and they both have value of $1 (Π = 1) . The trade-off can be written as
For the first portfolio, if gamma is positive and large, then theta is negative and large. When gamma is positive, change in stock prices result in higher value of the option. This means that when there is no change in stock prices, the value of the option declines as we approach the expiration date. As a result, the theta is negative. On the other hand, when gamma is negative and large, change in stock prices result in lower option value. This means that when there is no stock price changes, the value of the option increases as we approach the expiration and theta is positive. This gives us a trade-off between gamma and theta and they can be used as proxy for each other in a delta neutral portfolio.