Genki Exercises - 2nd Edition
Welcome to Genki Study Resources! The exercises provided here are for use with Genki: An Integrated Course in Elementary Japanese textbooks (Second Edition) and are meant to help you practice what you have learned in each lesson. Select a lesson from the quick navigation and then the exercise that you want to practice for that lesson to begin testing your knowledge. Happy studying!
If you're not sure on how to tackle each lesson, please see our study guide.
Using the 3rd Edition of Genki? Click here to use our new and improved 3rd Edition resources, which now offers a written version for practice exercises, kanji stroke order exercises, and more!
Page Links
Quick Navigation
Quick Search
Lesson 0: Writing System and Greetings (Genki I: p.24-37)
- Hiragana (p.24-25)
- Hiragana: Diacritical Marks (p.25)
- Hiragana: Combos (p.25-26)
- Practice: Hiragana (p.24-26)
- Katakana (p.28)
- Katakana: Diacritical Marks (p.28-29)
- Katakana: Combos (p.29)
- Katakana: Additional Combos (p.30)
- Practice: Katakana (p.28-30)
- Bonus: Match Hiragana and Katakana (p.24 & 28)
- Greetings (p.34-35)
- Practice: Greetings (p.37)
- Culture Note: Greetings and Bowing (p.37)
Workbook (Genki I Workbook: p.11-12)
- Workbook: Greetings (p.11-12)
Lesson 1: New Friends (Genki I: p.38-57)
- Vocabulary: Part 1 (p.40)
- Vocabulary: Part 2 (p.40)
- Vocabulary: Countries (p.41)
- Vocabulary: Majors (p.41)
- Vocabulary: Occupations (p.41)
- Vocabulary: Family (p.41)
- Culture Note: Japanese Names (p.45)
- Practice: Numbers 0-10 (p.46-47)
- Practice: Numbers 11-100 (p.48)
- Practice: Numbers (p.48; I-A, B & C)
- Practice: Time (Hours) (p.49)
- Practice: Time (p.49-50; II-A & B)
- Practice: Telephone Numbers (p.50; III-A)
- Practice: NounのNoun (p.51; IV)
- Practice: XはYです 1 (p.51-52; V-A)
- Practice: Question Sentences 1 (p.52-53; V-B)
- Practice: XはYです 2 (p.53-54; VI-A)
- Practice: Question Sentences 2 (p.54; VI-B)
- Useful Expressions: Time (Minutes) (p.57)
- Useful Expressions: Age (p.57)
- Bonus Vocabulary: Words in Genki (p.24-57)
Workbook (Genki I Workbook: p.13-19)
- Workbook: Numbers (p.13)
- Workbook: Time (p.14; I)
- Workbook: Telephone Numbers (p.14; II)
- Workbook: NounのNoun (p.15; I)
- Workbook: XはYです (p.15; II)
- Workbook: Question Sentences (p.16; I & II)
- Workbook: Listening Comprehension 1 (p.17; A)
- Workbook: Listening Comprehension 2 (p.18; B, C, & D)
- Workbook: Questions (p.19)
Reading and Writing: Hiragana (Genki I: p.290-293)
- Hiragana Practice: Identifying Hiragana (p.290; I-A)
- Hiragana Practice: Word Match (p.290; I-B)
- Hiragana Practice: Diacritical Marks (p.290; I-E)
- Hiragana Practice: Combos (p.290; I-F)
- Hiragana Practice: Rearrange (p.291; I-H)
- Reading Practice: Hiragana (p.292-293; II)
Workbook: Reading and Writing (Genki I Workbook: p.117-123)
- Workbook: Hiragana Writing Practice (あ-こ) (p.117; I)
- Workbook: Spelling Practice (あ-こ) (p.117; II & III)
- Workbook: Hiragana Writing Practice (さ-と) (p.118; I)
- Workbook: Spelling Practice (さ-と) (p.118; II & III)
- Workbook: Hiragana Writing Practice (な-ほ) (p.119; I)
- Workbook: Spelling Practice (な-ほ) (p.119; II & III)
- Workbook: Hiragana Writing Practice (ま-よ) (p.120; I)
- Workbook: Spelling Practice (ま-よ) (p.120; II & III)
- Workbook: Hiragana Writing Practice (ら-ん) (p.121; I)
- Workbook: Spelling Practice (ら-ん) (p.121; II & III)
- Workbook: Diacritical Marks (p.122; I & II)
- Workbook: Small や, ゆ, よ (p.122; III & IV)
- Workbook: Double Consonants (p.123; I & II)
- Workbook: Long Vowels (p.123; III & IV)
Lesson 2: Shopping (Genki I: p.58-83)
- Vocabulary: Words that Point (p.60)
- Vocabulary: Food (p.60)
- Vocabulary: Things (p.60-61)
- Vocabulary: Places (p.61)
- Vocabulary: Money and Expressions (p.61)
- Culture Note: Japanese Currency (p.68)
- Practice: Numbers (Hundreds) (p.69)
- Practice: Numbers (Thousands) (p.69)
- Practice: Numbers (Ten Thousands) (p.69)
- Practice: Numbers (p.69; I-A)
- Practice: Prices (p.69-70; I-B)
- Practice: これ, それ, and あれ (p.71-72; II-A & B)
- Practice: この, その, and あの (p.72-73; III-A)
- Practice: どこ (p.74; IV)
- Practice: ここ, そこ, あそこ (p.74; IV)
- Practice: Noun も (p.75-76; VI)
- Practice: Noun じゃないです (p.76; VII-A)
- Bonus Vocabulary: Food (p.79)
- Useful Expressions: Classroom Objects (p.83)
- Useful Expressions: In the Classroom (p.83)
Workbook (Genki I Workbook: p.20-26)
- Workbook: Numbers (p.20; I, II, & III)
- Workbook: これ, それ, and あれ (p.21; I & II)
- Workbook: この, その, and あの (p.22)
- Workbook: ここ, そこ, and あそこ・だれの (p.23; I & II)
- Workbook: Noun も (p.24; I)
- Workbook: Noun じゃないです (p.24; II)
- Workbook: Listening Comprehension (p.25; A, B, & C)
- Workbook: Questions (p.26)
Reading and Writing: Katakana (Genki I: p.294-297)
- Katakana Practice: Identifying Katakana (p.294; I-A)
- Katakana Practice: Word Match (p.294; I-B)
- Katakana Practice: Countries and Capitals (p.295; I-C)
- Katakana Practice: Rearrange (p.296; I-E)
- Reading Practice: Katakana (p.297; III)
Workbook: Reading and Writing (Genki I Workbook: p.124-128)
- Workbook: Katakana Writing Practice (ア-コ) (p.124; I)
- Workbook: Spelling Practice (ア-コ) (p.124; II)
- Workbook: Katakana Writing Practice (サ-ト) (p.125; I)
- Workbook: Spelling Practice (サ-ト) (p.125; II)
- Workbook: Katakana Writing Practice (ナ-ホ) (p.126; I)
- Workbook: Spelling Practice (ナ-ホ) (p.126; II)
- Workbook: Katakana Writing Practice (マ-ヨ) (p.127; I)
- Workbook: Spelling Practice (マ-ヨ) (p.127; II)
- Workbook: Katakana Writing Practice (ラ-ン) (p.128; I)
- Workbook: Spelling Practice (ラ-ン) (p.128; II)
Lesson 3: Making a Date (Genki I: p.84-101)
- Vocabulary: Entertainment and Sports (p.86)
- Vocabulary: Food and Drinks (p.86)
- Vocabulary: Places and Time (p.86-87)
- Vocabulary: U-verbs (p.87)
- Vocabulary: Ru-verbs and Irregular verbs (p.87)
- Vocabulary: Adverbs (p.87)
- Vocabulary: Adjectives and Expressions (p.87)
- Review: Identifying Verbs (p.89)
- Practice: Verb Conjugation (p.95; I-A)
- Practice: Particles を and で (p.95-96; I-B)
- Practice: Particles に and へ (p.96; I-C)
- Practice: Time References 1 (p.98; II-A)
- Practice: Time References 2 (p.98; II-C)
- Practice: Suggestion Using ～ませんか (p.99; III-A)
- Culture Note: Japanese Houses (p.101)
Workbook (Genki I Workbook: p.27-35)
- Workbook: Verb Conjugation (p.27)
- Workbook: Noun を Verb (p.28)
- Workbook: Verbs with Places (p.29; I & II)
- Workbook: Time References 1 (p.30; I)
- Workbook: Time References 2 (p.30; II & III)
- Workbook: Suggestion Using ～ませんか (p.31; I & II)
- Workbook: Frequency Adverbs (p.32)
- Workbook: Listening Comprehension 1 (p.33; A & B)
- Workbook: Listening Comprehension 2 (p.34; C & D)
- Workbook: Questions (p.35)
Reading and Writing: Daily Life (Genki I: p.298-301)
- Kanji Practice: 一 and 二 (p.298)
- Kanji Practice: 三 and 四 (p.298)
- Kanji Practice: 五 and 六 (p.298)
- Kanji Practice: 七 and 八 (p.298)
- Kanji Practice: 九 and 十 (p.299)
- Kanji Practice: 百, 千, and 万 (p.299)
- Kanji Practice: 円 and 時 (p.299)
- Kanji Practice: Prices (p.300; I-A & B)
- Reading Practice: まいにちのせいかつ (p.301; II)
Workbook: Reading and Writing (Genki I Workbook: p.129-130)
- Workbook: Kanji Writing Practice (p.129)
- Workbook: Spelling Practice (一, 二, and 三) (p.129; bonus)
- Workbook: Spelling Practice (四, 五, and 六) (p.129; bonus)
- Workbook: Spelling Practice (七, 八, and 九) (p.129; bonus)
- Workbook: Spelling Practice (十, 百, and 千) (p.129; bonus)
- Workbook: Spelling Practice (万, 円, and 時) (p.129; bonus)
- Workbook: Using Kanji (Numbers) (p.130; I)
- Workbook: Fill in the Kanji (p.130; II)
- Workbook: Translate the Sentences (p.130; III)
Lesson 4: The First Date (Genki I: p.102-127)
- Vocabulary: People and Things (p.104)
- Vocabulary: Activities and Places (p.104)
- Vocabulary: Time (p.105)
- Vocabulary: U-verbs and Ru-verbs (p.105)
- Vocabulary: Adverbs and Expressions (p.105)
- Vocabulary: Location Words (p.106)
- Culture Note: Japanese National Holidays (p.114)
- Practice: Ｘがあります (p.116; I-C)
- Practice: Describing Where Things Are (p.117; II-A & B)
- Practice: Past Tense of です (p.118; III-A)
- Practice: Past Tense of Verbs (p.120; IV-A)
- Practice: Past Tense 1 (p.120; IV-B)
- Practice: Past Tense 2 (p.121; IV-C & D)
- Practice: も 1 (p.122; V-A)
- Practice: も 2 (p.122-123; V-B)
- Practice: ～時間 (p.123; VI-A)
- Useful Expressions: Days 1-15 (p.127)
- Useful Expressions: Days 16-31 (p.127)
- Useful Expressions: Months (p.127)
- Useful Expressions: Time Words (p.127)
Workbook (Genki I Workbook: p.36-44)
- Workbook: Ｘがあります／います (p.36; I & II)
- Workbook: Describing Where Things Are (p.37; I & II)
- Workbook: Past Tense (Nouns) (p.38; I & II)
- Workbook: Verb Conjugation (Past Tense) (p.39)
- Workbook: Past Tense (Verbs) (p.40; I & II)
- Workbook: も (p.41)
- Workbook: ～時間・Particles (p.42; I & II)
- Workbook: Listening Comprehension (p.43; A, B, & C)
- Workbook: Questions (p.44)
Reading and Writing: Mary's Weekend (Genki I: p.302-305)
- Kanji Practice: 日 and 本 (p.302)
- Kanji Practice: 人 and 月 (p.302)
- Kanji Practice: 火 and 水 (p.302)
- Kanji Practice: 木, 金, and 土 (p.302-303)
- Kanji Practice: 曜, 上, and 下 (p.303)
- Kanji Practice: 中 and 半 (p.303)
- Kanji Practice: Days of the Week (p.304; I-A)
- Kanji Practice: Location Words (p.304; I-B)
- Reading Practice: おかあさんへのメモ (p.304; II)
- Reading Practice: メアリーさんのしゅうまつ (p.305; III)
Workbook: Reading and Writing (Genki I Workbook: p.131-132)
- Workbook: Kanji Writing Practice (p.131)
- Workbook: Spelling Practice (日, 本, and 人) (p.131; bonus)
- Workbook: Spelling Practice (月, 火, and 水) (p.131; bonus)
- Workbook: Spelling Practice (木, 金, 土, and 曜) (p.131; bonus)
- Workbook: Spelling Practice (上, 下, 中, and 半) (p.131; bonus)
- Workbook: Spelling the Days of the Week (p.132; I)
- Workbook: Fill in the Kanji (p.132; II)
- Workbook: Translate the Sentences (p.132; III)
Lesson 5: A Trip to Okinawa (Genki I: p.128-145)
- Vocabulary: Nouns (p.130)
- Vocabulary: い-adjectives (p.130-131)
- Vocabulary: な-adjectives (p.131)
- Vocabulary: Verbs and Expressions (p.131)
- Practice: Adjective Conjugation (Present Affirmative) (p.137; I-A)
- Practice: Adjective Conjugation (Present Negative) (p.137; I-B)
- Practice: Adjectives (Present Tense) 1 (p.137-138; I-C)
- Practice: Adjectives (Present Tense) 2 (p.138; I-D)
- Practice: Adjective Conjugation (Past Affirmative) (p.139; II-A)
- Practice: Adjective Conjugation (Past Negative) (p.139; II-B)
- Practice: Adjectives (Past Tense) 1 (p.139; II-C)
- Practice: Adjectives (Past Tense) 2 (p.140; II-D)
- Practice: Adjective + Noun 1 (p.140; III-A)
- Practice: Adjective + Noun 2 (p.141; III-B)
- Practice: 好き(な)／きらい(な) 1 (p.141; IV-A)
- Practice: 好き(な)／きらい(な) 2 (p.141; IV-B)
- Practice: ～ましょう (p.142; V-A)
- Culture Note: Japanese Festivals (p.144)
- Useful Expressions: Post Office Words (p.145)
- Useful Expressions: At the Post Office (p.145)
Workbook (Genki I Workbook: p.45-53)
- Workbook: Adjective Conjugation (Present Tense) (p.45)
- Workbook: Adjectives (Present Tense) (p.46; I & II)
- Workbook: Adjective Conjugation (Present and Past Tenses) (p.47)
- Workbook: Adjectives (Past Tense) (p.48; I & II)
- Workbook: Adjective + Noun (p.49; I & II)
- Workbook: 好き(な)／きらい(な) (p.50)
- Workbook: ～ましょう (p.51; I & II)
- Workbook: Listening Comprehension (p.52; A, B, & C)
- Workbook: Questions (p.53; I & II)
Reading and Writing: Travel (Genki I: p.306-311)
- Kanji Practice: 山, 川, and 元 (p.306)
- Kanji Practice: 気, 天, and 私 (p.306)
- Kanji Practice: 今 and 田 (p.306)
- Kanji Practice: 女 and 男 (p.307)
- Kanji Practice: 見 and 行 (p.307)
- Kanji Practice: 食 and 飲 (p.307)
- Kanji Practice: Match the Sentences (p.308; I-B)
- Kanji Practice: Match the Readings (p.308; I-C)
- Katakana Practice: Match the Words (p.309; II-A)
- Reading Practice: Yoko's Postcard (p.309; II-B)
- Reading Practice: Robert's Postcard (p.310; II-C)
Workbook: Reading and Writing (Genki I Workbook: p.133-134)
- Workbook: Kanji Writing Practice (p.133)
- Workbook: Spelling Practice (山, 川, 元, and 気) (p.133; bonus)
- Workbook: Spelling Practice (天, 私, 今, and 田) (p.133; bonus)
- Workbook: Spelling Practice (女, 男, and 見) (p.133; bonus)
- Workbook: Spelling Practice (行, 食, and 飲) (p.133; bonus)
- Workbook: Fill in the Kanji (p.134; I)
- Workbook: Translate the Sentences (p.134; II)
Lesson 6: A Day in Robert's Life (Genki I: p.146-165)
- Vocabulary: Nouns (p.148)
- Vocabulary: な-adjective and U-verbs (p.148-149)
- Vocabulary: Ru-verbs and Irregular Verbs (p.149)
- Vocabulary: Adverbs and Other Expressions (p.149)
- Review: Te-form Conjugation Rules (p.150-151)
- Culture Note: Japan's Educational System (1) (p.154)
- Practice: Te-form Conjugation (p.156; I-A)
- Practice: ～てください (p.156-157; I-C & D)
- Practice: ～てもいいです (p.158; II-A & B)
- Practice: ～てはいけません (p.159; III-A)
- Practice: ～てもいいです／～てはいけません (p.159; III-C)
- Practice: Describing Two Activities (p.159-160; IV-A & B)
- Practice: ～から (p.161; V-A)
- Practice: ～ましょうか (p.162-163; VI-A & B)
- Useful Expressions: Directions (p.165)
Workbook (Genki I Workbook: p.54-63)
- Workbook: Te-form Conjugation 1 (p.54)
- Workbook: Te-form Conjugation 2 (p.55-56)
- Workbook: ～てください (p.57; I & II)
- Workbook: ～てもいいです (p.58)
- Workbook: ～てはいけません (p.59; I & II)
- Workbook: Describing Two Activities (p.60; I & II)
- Workbook: ～から (p.61; I & II)
- Workbook: Listening Comprehension (p.62; A, B, & C)
- Workbook: Questions (p.63)
Reading and Writing: My Favorite Restaurant (Genki I: p.312-317)
- Kanji Practice: 東 and 西 (p.312)
- Kanji Practice: 南 and 北 (p.312)
- Kanji Practice: 口 and 出 (p.312)
- Kanji Practice: 右 and 左 (p.312)
- Kanji Practice: 分, 先, and 生 (p.313)
- Kanji Practice: 大 and 学 (p.313)
- Kanji Practice: 外 and 国 (p.313)
- Kanji Practice: Combine the Kanji (p.314; I-A)
- Reading Practice: Find the Location (p.314; I-B)
- Reading Practice: Bulletin Board (p.314-315; II)
- Reading Practice: Chiaki's Favorite Restaurant (p.316-317; III-A, B, & C)
Workbook: Reading and Writing (Genki I Workbook: p.135-136)
- Workbook: Kanji Writing Practice (p.135)
- Workbook: Spelling Practice (東, 西, and 南) (p.135; bonus)
- Workbook: Spelling Practice (北, 口, and 出) (p.135; bonus)
- Workbook: Spelling Practice (右, 左, and 分) (p.135; bonus)
- Workbook: Spelling Practice (先, 生, and 大) (p.135; bonus)
- Workbook: Spelling Practice (学, 外, and 国) (p.135; bonus)
- Workbook: Fill in the Kanji (p.136; I)
- Workbook: Translate the Sentences (p.136; II)
Lesson 7: Family Picture (Genki I: p.166-185)
- Vocabulary: Nouns 1 (p.168)
- Vocabulary: Nouns 2 (p.168)
- Vocabulary: い-adjectives and な-adjectives (p.168-169)
- Vocabulary: U-verbs, Ru-verbs, and Irregular Verbs (p.169)
- Vocabulary: Adverbs and Other Expressions (p.169)
- Bonus Vocabulary: Counting People (p.174)
- Practice: ～ている (Actions in Progress) (p.176; I-A)
- Practice: ～ている (Result of a Change) (p.177; II-A)
- Practice: Describing People 1 (p.178; III-A)
- Practice: Describing People 2 (p.178; III-B)
- Practice: Te-forms for Joining Sentences 1 (p.179; IV-A)
- Practice: Te-forms for Joining Sentences 2 (p.180; IV-B)
- Practice: Verb Stem + に行く／来る／帰る (p.181; V-A)
- Culture Note: Kinship Terms 1 (p.184)
- Culture Note: Kinship Terms 2 (p.184)
- Useful Expressions: Parts of the Body (p.185)
Workbook (Genki I Workbook: p.64-72)
- Workbook: Te-form Conjugation Practice (p.64)
- Workbook: ～ている (Actions in Progress) (p.65; I, II, & III)
- Workbook: ～ている (Result of a Change) (p.66; I)
- Workbook: Describing People (p.67; I & II)
- Workbook: Te-forms for Joining Sentences (p.68; I & II)
- Workbook: Verb Stem + に行く／来る／帰る (p.69; I)
- Workbook: Counting People (p.70)
- Workbook: Listening Comprehension (p.71; A, B, & C)
- Workbook: Questions (p.72)
Reading and Writing: Mary's Letter (Genki I: p.318-322)
- Kanji Practice: 京, 子, and 小 (p.318)
- Kanji Practice: 会 and 社 (p.318)
- Kanji Practice: 父 and 母 (p.318)
- Kanji Practice: 高, 校, and 毎 (p.318-319)
- Kanji Practice: 語 and 文 (p.319)
- Kanji Practice: 帰 and 入 (p.319)
- Kanji Practice: Fill in the Blanks (p.320; I-A)
- Reading Practice: Mary's Letter (p.321-322; II)
Workbook: Reading and Writing (Genki I Workbook: p.137-138)
- Workbook: Kanji Writing Practice (p.137)
- Workbook: Spelling Practice (京, 子, 小, and 会) (p.137; bonus)
- Workbook: Spelling Practice (社, 父, and 母) (p.137; bonus)
- Workbook: Spelling Practice (高, 校, 毎, and 語) (p.137; bonus)
- Workbook: Spelling Practice (文, 帰, and 入) (p.137; bonus)
- Workbook: Fill in the Kanji (p.138; I)
- Workbook: Translate the Sentences (p.138; II)
Lesson 8: Barbecue (Genki I: p.186-207)
- Vocabulary: Nouns 1 (p.188)
- Vocabulary: Nouns 2 (p.188)
- Vocabulary: な-adjectives and U-verbs (p.188-189)
- Vocabulary: Ru-verbs and Irregular Verbs (p.189)
- Vocabulary: Adverbs and Other Expressions (p.189)
- Review: Short Form Conjugation Rules (p.190-191)
- Practice: Short Form Conjugation (Verbs) (p.198; I-A)
- Practice: Short Form Conjugation (Adjectives/Nouns) (p.198; I-B)
- Practice: Informal Speech (Verbs) (p.198-199; II-A)
- Practice: Informal Speech (Adjectives/Nouns) (p.199; II-B)
- Practice: Quotations (～と思います) 1 (p.199; III-A)
- Practice: Quotations (～と思います) 2 (p.199-200; III-B)
- Practice: Quotations (～と言っていました) (p.201; IV-A)
- Practice: ～ないでください (p.202; V-A)
- Practice: Verb のが好きです (p.202; VI-A)
- Practice: が (p.203; VII-A)
- Practice: 何も (p.204; VIII-A)
- Culture Note: Common Dishes in Japan (p.207)
- Culture Note: Foods in Japan (p.207)
Workbook (Genki I Workbook: p.73-81)
- Workbook: Short Forms (Present Tense) (p.73)
- Workbook: Short Forms (Informal Speech) (p.74; I & II)
- Workbook: Quotations (～と思います) (p.75; I & II)
- Workbook: Quotations (～と言っていました) (p.76)
- Workbook: ~ないでください (p.77; I & II)
- Workbook: Verb のが好きです (p.78; I & II)
- Workbook: が・何か and 何も (p.79; I & II)
- Workbook: Listening Comprehension (p.80; A, B, & C)
- Workbook: Questions (p.81; I & II)
Reading and Writing: Japanese Office Workers (Genki I: p.323-327)
- Kanji Practice: 員, 新, and 聞 (p.323)
- Kanji Practice: 作, 仕, and 事 (p.323)
- Kanji Practice: 電 and 車 (p.323)
- Kanji Practice: 休, 言, and 読 (p.324)
- Kanji Practice: 思, 次, and 何 (p.324)
- Kanji Practice: Match the Verbs (p.325; I-B)
- Reading Practice: 日本の会社員 (p.326-327; II-C)
Workbook: Reading and Writing (Genki I Workbook: p.139-140)
- Workbook: Kanji Writing Practice (p.139)
- Workbook: Spelling Practice (員, 新, 聞, and 作) (p.139; bonus)
- Workbook: Spelling Practice (仕, 事, 電, and 車) (p.139; bonus)
- Workbook: Spelling Practice (休, 言, and 読) (p.139; bonus)
- Workbook: Spelling Practice (思, 次, and 何) (p.139; bonus)
- Workbook: Fill in the Kanji (p.140; I)
- Workbook: Translate the Sentences (p.140; II)
Lesson 9: Kabuki (Genki I: p.208-227)
- Vocabulary: Nouns (p.210)
- Vocabulary: い-adjectives and な-adjectives (p.210)
- Vocabulary: U-verbs, Ru-verbs, and Irregular Verbs (p.210-211)
- Vocabulary: Adverbs and Other Expressions (p.211)
- Vocabulary: Numbers (to count small items) (p.211)
- Review: Short Form Conjugation Rules (Past Tense) (p.212)
- Practice: Short Form Conjugation (Past Tense Verbs) (p.217; I-A)
- Practice: Short Form Conjugation (Past Tense Adjectives/Nouns) (p.217-218; I-B)
- Practice: Informal Speech (Past Tense Verbs) (p.218; II-A)
- Practice: Informal Speech (Past Tense Adjectives/Nouns) (p.219; II-B)
- Practice: Quotations (～と思います) (p.219; III-A)
- Practice: Quotations (～と言っていました) (p.220; IV-A)
- Practice: Qualifying Nouns with Verbs (p.221; V-A)
- Practice: まだ～ていません (p.222; VI-A)
- Practice: ～から (p.223; VII-A)
- Culture Note: Japanese Traditional Culture (p.226)
- Useful Expressions: Color Names (p.227)
- Useful Expressions: Colors (p.227)
Workbook (Genki I Workbook: p.82-90)
- Workbook: Past Tense Short Forms (p.82)
- Workbook: Past Tense Short Forms (Informal Speech) (p.83; I & II)
- Workbook: Past Tense Short Forms (～と思います) (p.84; I & II)
- Workbook: Quotations (～と言っていました) (p.85)
- Workbook: Qualifying Nouns with Verbs (p.86)
- Workbook: まだ～ていません (p.87)
- Workbook: ～から (p.88; I & II)
- Workbook: Listening Comprehension (p.89; A, B, & C)
- Workbook: Questions (p.90)
Reading and Writing: Sue's Diary (Genki I: p.328-333)
- Kanji Practice: 午, 後, and 前 (p.328)
- Kanji Practice: 名 and 白 (p.328)
- Kanji Practice: 雨, 書, and 友 (p.328)
- Kanji Practice: 間 and 家 (p.329)
- Kanji Practice: 話 and 少 (p.329)
- Kanji Practice: 古, 知, and 来 (p.329)
- Kanji Practice: Fill in the Blanks (p.330; I-A & B)
- Reading Practice: スーさんの日記 (p.330; II-A, B, & C)
- Useful Expressions for Letters (p.333)
Workbook: Reading and Writing (Genki I Workbook: p.141-142)
- Workbook: Kanji Writing Practice (p.141)
- Workbook: Spelling Practice (午, 後, 前, and 名) (p.141; bonus)
- Workbook: Spelling Practice (白, 雨, 書, and 友) (p.141; bonus)
- Workbook: Spelling Practice (間, 家, and 話) (p.141; bonus)
- Workbook: Spelling Practice (少, 古, 知, and 来) (p.141; bonus)
- Workbook: Fill in the Kanji (p.142; I)
- Workbook: Translate the Sentences (p.142; II)
Lesson 10: Winter Vacation Plans (Genki I: p.228-249)
- Vocabulary: Nouns 1 (p.230)
- Vocabulary: Nouns 2 (p.230)
- Vocabulary: い-adjectives and な-adjectives (p.230-231)
- Vocabulary: U-verbs, Ru-verbs, and Irregular Verbs (p.231)
- Vocabulary: Adverbs and Other Expressions (p.231)
- Practice: Comparison between Two Items (p.237; I-A)
- Practice: Comparison among Three or More Items (p.238-239; II-A)
- Practice: Adjective/Noun + の (p.240; III-A)
- Practice: ～つもりだ (p.241; IV-A)
- Practice: Adjective + なる (p.242-243; V-A)
- Practice: どこかに／どこにも (p.244; VI-A)
- Practice: で行きます (p.245; VII-A)
- Practice: かかります (p.245; VII-B)
- Culture Note: Public Transportation in Japan (p.247)
- Useful Expressions: At the Station 1 (p.248)
- Useful Expressions: At the Station 2 (p.248)
- Useful Expressions: At the Station 3 (p.249)
Workbook (Genki I Workbook: p.91-99)
- Workbook: Comparison between Two Items (p.91; I & II)
- Workbook: Comparison among Three or More Items (p.92; I & II)
- Workbook: Adjective/Noun + の (p.93; I & II)
- Workbook: ～つもりだ (p.94; I & II)
- Workbook: Adjective + なる (p.95; I & II)
- Workbook: ～で行きます／かかります・どこかに／どこにも (p.96; I & II)
- Workbook: Listening Comprehension (p.97-98; A, B, & C)
- Workbook: Questions (p.99)
Reading and Writing: The Folktale Kasajizo (Genki I: p.334-339)
- Kanji Practice: 住, 正, and 年 (p.334)
- Kanji Practice: 売, 買, and 町 (p.334)
- Kanji Practice: 長, 道, and 雪 (p.334-335)
- Kanji Practice: 立, 自, and 夜 (p.335)
- Kanji Practice: 朝 and 持 (p.335)
- Kanji Practice: Antonyms (p.336; I-B)
- Kanji Practice: Fill in the Blanks (p.336; I-C)
- Reading Practice: かさじぞう (p.337-339; II-C & D)
Workbook: Reading and Writing (Genki I Workbook: p.143-144)
- Workbook: Kanji Writing Practice (p.143)
- Workbook: Spelling Practice (住, 正, 年, and 売) (p.143; bonus)
- Workbook: Spelling Practice (買, 町, 長, and 道) (p.143; bonus)
- Workbook: Spelling Practice (雪, 立, and 自) (p.143; bonus)
- Workbook: Spelling Practice (夜, 朝, and 持) (p.143; bonus)
- Workbook: Fill in the Kanji (p.144; I)
- Workbook: Translate the Sentences (p.144; II)
Lesson 11: After the Vacation (Genki I: p.250-265)
- Vocabulary: Nouns 1 (p.252)
- Vocabulary: Nouns 2 (p.252)
- Vocabulary: U-verbs, Ru-verbs, and Irregular Verbs (p.252-253)
- Vocabulary: Adverbs and Other Expressions (p.253)
- Vocabulary: Occupations (p.253)
- Practice: ～たい (p.259; I-A)
- Practice: ～たい (Past Tense) (p.259; I-C)
- Practice: ～たり～たりする (p.261; II-A)
- Practice: ～ことがある (p.262; III-A)
- Practice: Noun A や Noun B (p.263; IV-A)
- Culture Note: New Year's (p.264)
- Useful Expressions: In the Japanese Class (p.265)
- Useful Expressions: Japanese Class Vocabulary 1 (p.265)
- Useful Expressions: Japanese Class Vocabulary 2 (p.265)
Workbook (Genki I Workbook: p.100-105)
- Workbook: ～たい (p.100; I & II)
- Workbook: ～たり～たりする (p.101; I & II)
- Workbook: ～ことがある (p.102; I & II)
- Workbook: Noun A や Noun B (p.103)
- Workbook: Listening Comprehension (p.104; A, B, & C)
- Workbook: Questions (p.105; I & II)
Reading and Writing: Looking for Friends (Genki I: p.340-345)
- Kanji Practice: 手, 紙, and 好 (p.340)
- Kanji Practice: 近, 明, 病, and 院 (p.340)
- Kanji Practice: 映, 画, and 歌 (p.340-341)
- Kanji Practice: 市, 所, and 勉 (p.341)
- Kanji Practice: 強, 有, and 旅 (p.341)
- Kanji Practice: Compounds (p.342; I-B)
- Reading Practice: 友だち募集 (p.342-344; II-C, D, & E)
Workbook: Reading and Writing (Genki I Workbook: p.145-146)
- Workbook: Kanji Writing Practice (p.145)
- Workbook: Spelling Practice (手, 紙, 好, and 近) (p.145; bonus)
- Workbook: Spelling Practice (明, 病, 院, and 映) (p.145; bonus)
- Workbook: Spelling Practice (画, 歌, 市, and 所) (p.145; bonus)
- Workbook: Spelling Practice (勉, 強, 有, and 旅) (p.145; bonus)
- Workbook: Fill in the Kanji (p.146; I)
- Workbook: Translate the Sentences (p.146; II)
Lesson 12: Feeling Ill (Genki I: p.266-288)
- Vocabulary: Nouns 1 (p.268)
- Vocabulary: Nouns 2 (p.268)
- Vocabulary: い-adjectives and な-adjectives (p.268-269)
- Vocabulary: U-verbs, Ru-verbs, and Irregular Verbs (p.269)
- Vocabulary: Adverbs and Other Expressions (p.269)
- Practice: ～んです 1 (p.276; I-A)
- Practice: ～んです 2 (p.277; I-B)
- Practice: ～すぎる (p.278-279; II-A)
- Practice: ～ほうがいいです (p.280; III-A)
- Practice: ～ので (p.281; IV-A)
- Practice: ～なければいけません／なきゃいけません (p.282; V-A)
- Practice: ～なければいけません／なきゃいけません (Informal) (p.282; V-C)
- Practice: ～でしょう (p.283; VI-A)
- Culture Note: The Japanese Climate (p.286)
- Useful Expressions: Health and Illness (p.287-288)
- Useful Expressions: Doctor's Office Words (p.288)
Workbook (Genki I Workbook: p.106-113)
- Workbook: ～んです (p.106; I & II)
- Workbook: ～すぎる (p.107; I & II)
- Workbook: ～ほうがいいです (p.108; I & II)
- Workbook: ～ので (p.109; I & II)
- Workbook: ～なければいけません／なきゃいけません (p.110; I & II)
- Workbook: ～でしょう (p.111; I & II)
- Workbook: Listening Comprehension (p.112; A, B, & C)
- Workbook: Questions (p.113)
Reading and Writing: Tanabata Festival (Genki I: p.346-350)
- Kanji Practice: 昔, 々, and 神 (p.346)
- Kanji Practice: 早, 起, and 牛 (p.346)
- Kanji Practice: 使, 働, and 連 (p.346-347)
- Kanji Practice: 別 and 度 (p.347)
- Kanji Practice: 赤, 青, and 色 (p.347)
- Kanji Practice: Match the Readings (p.348; I-A)
- Reading Practice: 七夕 (p.349-350; II-B & C)
Workbook: Reading and Writing (Genki I Workbook: p.147-148)
- Workbook: Kanji Writing Practice (p.147)
- Workbook: Spelling Practice (昔, 々, 神, and 早) (p.147; bonus)
- Workbook: Spelling Practice (起, 牛, 使, and 働) (p.147; bonus)
- Workbook: Spelling Practice (連, 別, and 度) (p.147; bonus)
- Workbook: Spelling Practice (赤, 青, and 色) (p.147; bonus)
- Workbook: Fill in the Kanji (p.148; I)
- Workbook: Translate the Sentences (p.148; II)
Lesson 13: Looking for a Part-time Job (Genki II: p.26-49)
- Vocabulary: Nouns 1 (p.28)
- Vocabulary: Nouns 2 (p.28)
- Vocabulary: い-adjectives and な-adjectives (p.28-29)
- Vocabulary: U-verbs and Irregular Verbs (p.29)
- Vocabulary: Adverbs and Other Expressions (p.29)
- Vocabulary: Numbers Used to Count Days (p.29)
- Practice: Potential Verbs 1 (p.37; I-A)
- Practice: Potential Verbs 2 (p.37; I-B)
- Practice: Potential Verbs 3 (p.39; I-F)
- Practice: ～し (p.39-40; II-A)
- Practice: ～そうです 1 (p.41; III-A)
- Practice: ～そうです 2 (p.42; III-B)
- Practice: ～てみる (p.43; IV-A)
- Practice: なら (p.44; V-A)
- Practice: 一週間に三回 (p.45-46; VI-A)
- Culture Note: Names of Years (p.48)
- Culture Note: East Asian Zodiacs (p.48)
- Useful Expressions: Bank Words (p.49)
- Useful Expressions: At the Bank (p.49)
Workbook (Genki II Workbook: p.11-20)
- Workbook: Potential Verbs Conjugation Practice (p.11; I)
- Workbook: Potential Verbs 1 (p.12; II)
- Workbook: Potential Verbs 2 (p.13; I & II)
- Workbook: ～し (p.14; I & II)
- Workbook: ～そうです (p.15; I & II)
- Workbook: ～てみる (p.16; I & II)
- Workbook: なら (p.17; I & II)
- Workbook: 一週間に三回 (p.18; I & II)
- Workbook: Listening Comprehension (p.19; A, B, & C)
- Workbook: Questions (p.20; I & II)
Reading and Writing: Interesting Experiences in Japan (Genki II: p.276-282)
- Kanji Practice: 物, 鳥, and 料 (p.276)
- Kanji Practice: 理, 特, and 安 (p.276)
- Kanji Practice: 販, 肉, and 悪 (p.276-277)
- Kanji Practice: 体, 空, and 港 (p.277)
- Kanji Practice: 着, 同, 海, and 昼 (p.277)
- Kanji Practice: Write the Readings (p.278; I-A & B)
- Reading Practice: Identify the Food (p.279; II-A)
- Reading Practice: 日本のおもしろい経験 (p.279-280; II-B & C)
- Reading Practice: 満員電車 (p.281-282; III-B & C)
Workbook: Reading and Writing (Genki II Workbook: p.109-110)
- Workbook: Kanji Writing Practice (p.109)
- Workbook: Spelling Practice (物, 鳥, 料, and 理) (p.109; bonus)
- Workbook: Spelling Practice (特, 安, 飯, and 肉) (p.109; bonus)
- Workbook: Spelling Practice (悪, 体, 空, and 港) (p.109; bonus)
- Workbook: Spelling Practice (着, 同, 海, and 昼) (p.109; bonus)
- Workbook: Fill in the Blanks (p.110)
Lesson 14: Valentine's Day (Genki II: p.50-73)
- Vocabulary: Nouns 1 (p.52)
- Vocabulary: Nouns 2 (p.52)
- Vocabulary: Adjectives and Verbs (p.53)
- Vocabulary: Adverbs and Other Expressions (p.53)
- Vocabulary: Counters (p.53)
- Practice: ほしい (Present) (p.61; I-A)
- Practice: ほしい (Past) (p.61; I-B)
- Practice: ～かもしれません (p.63; II-A)
- Practice: あげる (p.65; III-A)
- Practice: くれる／もらう (p.66; III-C)
- Practice: あげる／くれる／もらう (p.66; III-D)
- Practice: ～たらどうですか (p.68; IV-A)
- Practice: Counters (p.69; V-A)
- Practice: Number+も／Number+しか+Negative (p.69; V-B)
- Culture Note: Annual Events in Japan (p.72)
- Useful Expressions: Counters (p.73)
Workbook (Genki II Workbook: p.21-27)
- Workbook: ほしい (p.21; I, II, & III)
- Workbook: ～かもしれません (p.22; I & II)
- Workbook: あげる／くれる／もらう (p.23; I & II)
- Workbook: ～たらどうですか (p.24; I & II)
- Workbook: Number+も／Number+しか+Negative (p.25; I & II)
- Workbook: Listening Comprehension (p.26; A, B, & C)
- Workbook: Questions (p.27; I)
Reading and Writing: Personal Advice Column (Genki II: p.283-287)
- Kanji Practice: 彼, 代, and 留 (p.283)
- Kanji Practice: 族, 親, and 切 (p.283)
- Kanji Practice: 英, 店, and 去 (p.283-284)
- Kanji Practice: 急, 乗, and 当 (p.284)
- Kanji Practice: 音, 楽, 医, and 者 (p.284)
- Kanji Practice: Write the Readings (p.285; I-A & B)
- Reading Practice: 悩みの相談 (p.286-287; II-B & C)
Workbook: Reading and Writing (Genki II Workbook: p.111-112)
- Workbook: Kanji Writing Practice (p.111)
- Workbook: Spelling Practice (彼, 代, 留, and 族) (p.111; bonus)
- Workbook: Spelling Practice (親, 切, 英, and 店) (p.111; bonus)
- Workbook: Spelling Practice (去, 急, 乗, and 当) (p.111; bonus)
- Workbook: Spelling Practice (音, 楽, 医, and 者) (p.111; bonus)
- Workbook: Fill in the Blanks (p.112)
Lesson 15: A Trip to Nagano (Genki II: p.74-95)
- Vocabulary: Nouns 1 (p.76)
- Vocabulary: Nouns 2 (p.76)
- Vocabulary: い-adjectives, U-verbs, and Ru-Verbs (p.76-77)
- Vocabulary: Irregular Verbs, Adverbs and Other Expressions (p.77)
- Culture Note: Japanese Accommodations (p.81)
- Bonus Vocabulary: ～目 (p.83)
- Practice: Volitional Form 1 (p.84; I-A)
- Practice: Volitional Form 2 (p.84-85; I-B)
- Practice: Volitional Form + と思っています (p.86; II-A)
- Practice: ～ておく (p.87; III-A)
- Practice: Using Sentences to Qualify Nouns 1 (p.88-89; IV-A)
- Practice: Using Sentences to Qualify Nouns 2 (p.89; IV-B)
- Practice: Using Sentences to Qualify Nouns 3 (p.90-91; IV-D)
- Useful Expressions: At the Hotel (p.95)
Workbook (Genki II Workbook: p.28-34)
- Workbook: Volitional Form Conjugation Practice (p.28; I)
- Workbook: Volitional Form (p.28; II)
- Workbook: Volitional Form + と思っています (p.29; I & II)
- Workbook: ～ておく (p.30; I & II)
- Workbook: Using Sentences to Qualify Nouns 1 (p.31; I & II)
- Workbook: Using Sentences to Qualify Nouns 2 (p.32; I & II)
- Workbook: Listening Comprehension (p.33; A, B, & C)
- Workbook: Questions (p.34; I)
Reading and Writing: My Favorite Place (Genki II: p.288-294)
- Kanji Practice: 死, 意, and 味 (p.288)
- Kanji Practice: 注, 夏, 魚, and 寺 (p.288)
- Kanji Practice: 広, 転, and 借 (p.288-289)
- Kanji Practice: 走, 建, and 地 (p.289)
- Kanji Practice: 場, 足, and 通 (p.289)
- Kanji Practice: Write the Readings (p.290; I-A & B)
- Reading Practice: 私が好きな所 (p.291-294; II-B, C, & D)
Workbook: Reading and Writing (Genki II Workbook: p.113-114)
- Workbook: Kanji Writing Practice (p.113)
- Workbook: Spelling Practice (死, 意, 味, and 注) (p.113; bonus)
- Workbook: Spelling Practice (夏, 魚, 寺, and 広) (p.113; bonus)
- Workbook: Spelling Practice (転, 借, 走, and 建) (p.113; bonus)
- Workbook: Spelling Practice (地, 場, 足, and 通) (p.113; bonus)
- Workbook: Fill in the Blanks (p.114)
Lesson 16: Lost and Found (Genki II: p.96-117)
- Vocabulary: Nouns (p.98)
- Vocabulary: い-adjectives and U-verbs (p.98-99)
- Vocabulary: Ru-verbs and Irregular Verbs (p.99)
- Vocabulary: Adverbs and Other Expressions (p.99)
- Practice: ～てあげる (p.108; I-A)
- Practice: ～てくれる／～てもらう (p.109; I-C)
- Practice: ～てあげる／～てくれる／～てもらう (p.110; I-E)
- Practice: ～ていただけませんか (p.112; II-A)
- Practice: ～といいですね (p.113; III-A)
- Practice: ～時 1 (p.114; IV-A)
- Practice: ～時 2 (p.115; IV-B)
- Practice: ～てすみませんでした 1 (p.116; V-A)
- Practice: ～てすみませんでした 2 (p.116; V-B)
- Culture Note: Gift-giving in Japan (p.117)
Workbook (Genki II Workbook: p.35-43)
- Workbook: ～てあげる／～てくれる／～てもらう 1 (p.35; I & II)
- Workbook: ～てあげる／～てくれる／～てもらう 2 (p.36; I & II)
- Workbook: ～ていただけませんか (p.37; I & II)
- Workbook: ～といいですね／～といいんですが (p.38; I & II)
- Workbook: ～時 1 (p.39; I & II)
- Workbook: ～時 2 (p.40; I & II)
- Workbook: ～てすみませんでした (p.41; I & II)
- Workbook: Listening Comprehension (p.42; A, B, & C)
- Workbook: Questions (p.43; I)
Reading and Writing: The Manga Doraemon (Genki II: p.295-300)
- Kanji Practice: 供, 世, and 界 (p.295)
- Kanji Practice: 全, 部, and 始 (p.295)
- Kanji Practice: 週, 以, and 考 (p.295-296)
- Kanji Practice: 開, 屋, and 方 (p.296)
- Kanji Practice: 運, 動, 教, and 室 (p.296)
- Kanji Practice: Write the Readings (p.297; I-A & B)
- Reading Practice: まんが「ドラえもん」 (p.298-300; II-B, C, & D)
Workbook: Reading and Writing (Genki II Workbook: p.115-116)
- Workbook: Kanji Writing Practice (p.115)
- Workbook: Spelling Practice (供, 世, 界, and 全) (p.115; bonus)
- Workbook: Spelling Practice (部, 始, 週, and 以) (p.115; bonus)
- Workbook: Spelling Practice (考, 開, 屋, and 方) (p.115; bonus)
- Workbook: Spelling Practice (運, 動, 教, and 室) (p.115; bonus)
- Workbook: Fill in the Blanks (p.116)
Lesson 17: Grumble and Gossip (Genki II: p.118-139)
- Vocabulary: Nouns 1 (p.120)
- Vocabulary: Nouns 2 (p.120)
- Vocabulary: い-adjectives and U-verbs (p.120-121)
- Vocabulary: Ru-verbs and Irregular Verbs (p.121)
- Vocabulary: Adverbs and Other Expressions (p.121)
- Culture Note: Japanese Gestures (p.128)
- Practice: ～そうです (I hear) (p.129; I-A)
- Practice: ～って (p.130; II-A)
- Practice: ～たら 1 (p.131; III-A)
- Practice: ～たら 2 (p.131; III-B)
- Practice: ～なくてもいいです (p.132; IV-A)
- Practice: ～みたいです (p.134; V-A)
- Practice: ～てから (p.136; VI-A)
- Practice: ～前に (p.137; VI-B)
- Useful Expressions: At the Barber/Beauty Salon (p.139)
- Useful Expressions: Barber/Beauty Salon Words (p.139)
Workbook (Genki II Workbook: p.44-50)
- Workbook: ～そうです／～って (p.44; I, II, & III)
- Workbook: ～たら (p.45; I & II)
- Workbook: ～なくてもいいです (p.46; I, II, & III)
- Workbook: ～みたいです (p.47; I & II)
- Workbook: ～前に／～てから (p.48; I & II)
- Workbook: Listening Comprehension (p.49; A, B, & C)
- Workbook: Questions (p.50; I)
Reading and Writing: Yoko Ono (Genki II: p.301-307)
- Kanji Practice: 歳, 習, and 主 (p.301)
- Kanji Practice: 結, 婚, and 集 (p.301)
- Kanji Practice: 発, 表, and 品 (p.301-302)
- Kanji Practice: 字, 活, and 写 (p.302)
- Kanji Practice: 真, 歩, and 野 (p.302)
- Kanji Practice: Write the Readings (p.303; I-A & B)
- Reading Practice: オノ・ヨーコ (p.304-306; II-A, B, & C)
Workbook: Reading and Writing (Genki II Workbook: p.117-118)
- Workbook: Kanji Writing Practice (p.117)
- Workbook: Spelling Practice (歳, 習, 主, and 結) (p.117; bonus)
- Workbook: Spelling Practice (婚, 集, 発, and 表) (p.117; bonus)
- Workbook: Spelling Practice (品, 字, and 活) (p.117; bonus)
- Workbook: Spelling Practice (写, 真, 歩, and 野) (p.117; bonus)
- Workbook: Fill in the Blanks (p.118)
Lesson 18: John's Part-time Job (Genki II: p.140-163)
- Vocabulary: Nouns 1 (p.142)
- Vocabulary: Nouns 2 (p.142)
- Vocabulary: い-adjectives and U-verbs (p.142-143)
- Vocabulary: Ru-verbs and Irregular Verbs (p.143)
- Vocabulary: Adverbs and Other Expressions (p.143)
- Review: Transitivity Pairs (p.144)
- Practice: Transitivity Pairs (p.150; I-A)
- Practice: Transitivity Pairs + ている (p.151-152; I-C)
- Practice: ～てしまう 1 (p.153; II-A)
- Practice: ～てしまう 2 (p.153; II-B)
- Practice: ～ちゃう／～じゃう (p.154; II-C)
- Practice: ～と (p.155; III-A)
- Practice: ～ながら (p.157; IV-A)
- Practice: ～ばよかったです Conjugation (p.158; V-A)
- Practice: ～ばよかったです (p.158-159; V-B)
- Culture Note: Sushi (p.163)
- Culture Note: Popular Sushi Toppings (p.163)
Workbook (Genki II Workbook: p.51-58)
- Workbook: Transitivity Pairs 0 (bonus)
- Workbook: Transitivity Pairs 1 (p.51; I & II)
- Workbook: Transitivity Pairs 2 (p.52; I)
- Workbook: ～てしまう (p.53; I & II)
- Workbook: ～と (p.54; I, II, & III)
- Workbook: ～ながら (p.55; I, II, & III)
- Workbook: ～ばよかったです (p.56; I, II, & III)
- Workbook: Listening Comprehension (p.57; A, B, & C)
- Workbook: Questions (p.58; I)
Reading and Writing: College Life (Genki II: p.308-314)
- Kanji Practice: 目, 的, and 力 (p.308)
- Kanji Practice: 洋, 服, 堂, and 授 (p.308)
- Kanji Practice: 業, 試, and 験 (p.308-309)
- Kanji Practice: 貸, 図, and 館 (p.309)
- Kanji Practice: 終, 宿, and 題 (p.309)
- Kanji Practice: Write the Readings (p.310; I-A & B)
- Reading Practice: 大学生のアルバイト (p.310-311; II-B)
- Reading Practice: 橋本くんの大学生活 (p.312-313; III-A & B)
Workbook: Reading and Writing (Genki II Workbook: p.119-120)
- Workbook: Kanji Writing Practice (p.119)
- Workbook: Spelling Practice (目, 的, 力, and 洋) (p.119; bonus)
- Workbook: Spelling Practice (服, 堂, 授, and 業) (p.119; bonus)
- Workbook: Spelling Practice (試, 験, 貸, and 図) (p.119; bonus)
- Workbook: Spelling Practice (館, 終, 宿, and 題) (p.119; bonus)
- Workbook: Fill in the Blanks (p.120)
Lesson 19: Meeting the Boss (Genki II: p.164-183)
- Vocabulary: Nouns 1 (p.166)
- Vocabulary: Nouns 2 and Adjectives (p.166)
- Vocabulary: U-verbs (p.166-167)
- Vocabulary: Ru-verbs and Irregular Verbs (p.167)
- Vocabulary: Adverbs and Other Expressions (p.167)
- Practice: Honorific Verbs 1 (p.174; I-A)
- Practice: Honorific Verbs 2 (p.174-175; I-B)
- Practice: Honorific Verbs 3 (p.175; I-C)
- Practice: Giving Respectful Advice (p.176; II)
- Practice: ～てくれてありがとう (p.177; III-A)
- Practice: ～てよかったです (p.178; IV-A)
- Practice: ～はずです 1 (p.179; V-A)
- Practice: ～はずです 2 (p.180-181; V-D)
- Culture Note: Visiting Someone's House (p.183)
Workbook (Genki II Workbook: p.59-67)
- Workbook: Honorific Verbs 1 (p.59)
- Workbook: Honorific Verbs 2 (p.60; I & II)
- Workbook: Honorific Verbs 3・Giving Respectful Advice (p.61; I & II)
- Workbook: ～てくれてありがとう (p.62; I & II)
- Workbook: ～てよかったです (p.63; I & II)
- Workbook: ～はずです (p.64; I, II, & III)
- Workbook: Listening Comprehension (p.65-66; A, B, & C)
- Workbook: Questions (p.67; I)
Reading and Writing: Letters and E-mails (Genki II: p.315-322)
- Kanji Practice: 春, 秋, and 冬 (p.315)
- Kanji Practice: 花, 様, and 不 (p.315)
- Kanji Practice: 姉, 兄, 漢, and 卒 (p.315-316)
- Kanji Practice: 工, 研, and 究 (p.316)
- Kanji Practice: 質, 問, and 多 (p.316)
- Kanji Practice: Write the Readings (p.317; I-A & B)
- Reading Practice: お礼の手紙 (p.318-319; II-A, B, & C)
- Reading Practice: マリアさんのメール (p.320-321; II-A & B)
- Useful Expressions for Greeting Cards (p.322)
Workbook: Reading and Writing (Genki II Workbook: p.121-122)
- Workbook: Kanji Writing Practice (p.121)
- Workbook: Spelling Practice (春, 秋, 冬, and 花) (p.121; bonus)
- Workbook: Spelling Practice (様, 不, 姉, and 兄) (p.121; bonus)
- Workbook: Spelling Practice (漢, 卒, 工, and 研) (p.121; bonus)
- Workbook: Spelling Practice (究, 質, 問, and 多) (p.121; bonus)
- Workbook: Fill in the Blanks (p.122)
Lesson 20: Mary's Shopping (Genki II: p.184-207)
- Vocabulary: Nouns 1 (p.186)
- Vocabulary: Nouns 2 and い-adjectives (p.186)
- Vocabulary: U-verbs (p.186-187)
- Vocabulary: Ru-verbs and Irregular Verbs (p.187)
- Vocabulary: Adverbs and Other Expressions (p.187)
- Practice: Extra-modest Expressions 1 (p.195; I-A)
- Practice: Extra-modest Expressions 2 (p.195; I-B)
- Practice: Extra-modest Expressions 3 (p.196; I-D)
- Practice: Humble Expressions 1 (p.197; II-A)
- Practice: Humble Expressions 2 (p.197-198; II-B)
- Practice: ～ないで (p.199-200; III-A)
- Practice: Questions within Larger Sentences 1 (p.200-201; IV-A)
- Practice: Questions within Larger Sentences 2 (p.201; IV-B)
- Practice: name という item (p.202; V-A)
- Practice: ～やすい／～にくい (p.203; VI-A)
- Culture Note: Japanese Pop Culture (p.207)
Workbook (Genki II Workbook: p.68-76)
- Workbook: Extra-modest Expressions (p.68)
- Workbook: Humble Expressions 1 (p.69)
- Workbook: Humble Expressions 2 (p.70; I & II)
- Workbook: Three Types of Respect Language (p.71; I & II)
- Workbook: ～ないで (p.72; I & II)
- Workbook: Questions Within Larger Sentences (p.73; I & II)
- Workbook: Name という Item・～やすい／～にくい (p.74; I & II)
- Workbook: Listening Comprehension (p.75; A, B, & C)
- Workbook: Questions (p.76; I)
Reading and Writing: A Cat's Plate (Genki II: p.323-329)
- Kanji Practice: 皿, 声, and 茶 (p.323)
- Kanji Practice: 止, 枚, and 両 (p.323)
- Kanji Practice: 無, 払, and 心 (p.323-324)
- Kanji Practice: 笑, 絶, and 対 (p.324)
- Kanji Practice: 痛, 最, and 続 (p.324)
- Kanji Practice: Write the Readings (p.325; I-A & B)
- Reading Practice: 猫の皿 (p.327-328; II-B & C)
Workbook: Reading and Writing (Genki II Workbook: p.123-124)
- Workbook: Kanji Writing Practice (p.123)
- Workbook: Spelling Practice (皿, 声, 茶, and 止) (p.123; bonus)
- Workbook: Spelling Practice (枚, 両, 無, and 払) (p.123; bonus)
- Workbook: Spelling Practice (心, 笑, 絶, and 対) (p.123; bonus)
- Workbook: Spelling Practice (痛, 最, and 続) (p.123; bonus)
- Workbook: Fill in the Blanks (p.124)
Lesson 21: Burglar (Genki II: p.208-229)
- Vocabulary: Nouns 1 (p.210)
- Vocabulary: Nouns 2 (p.210)
- Vocabulary: U-verbs (p.210-211)
- Vocabulary: Ru-verbs and Irregular Verbs (p.211)
- Vocabulary: Adjectives, Adverbs and Other Expressions (p.210-211)
- Practice: Passive Sentences 1 (p.219; I-A)
- Practice: Passive Sentences 2 (p.219-220; I-B)
- Practice: ～てある (p.221; II-A)
- Practice: ～間に (p.223; III-A)
- Practice: Adjective + する (p.223; IV-A)
- Practice: ～てほしい (p.224; V-A)
- Culture Note: Religion in Japan (p.229)
- Culture Note: Shrine and Temple Words (p.229)
Workbook (Genki II Workbook: p.77-85)
- Workbook: Passive Sentences 1 (p.77; I & II)
- Workbook: Passive Sentences 2 (p.78; I & II)
- Workbook: Passive and ～てもらう (p.79)
- Workbook: ～てある (p.80; I & II)
- Workbook: ～間に (p.81; I & II)
- Workbook: Adjective + する (p.82; I & II)
- Workbook: ～てほしい (p.83)
- Workbook: Listening Comprehension (p.84; A, B, & C)
- Workbook: Questions (p.85; I)
Reading and Writing: Unlucky Ages (Genki II: p.330-335)
- Kanji Practice: 信, 経, and 台 (p.330)
- Kanji Practice: 風, 犬, and 重 (p.330)
- Kanji Practice: 初, 若, and 送 (p.330-331)
- Kanji Practice: 幸, 計, and 遅 (p.331)
- Kanji Practice: 配, 弟, and 妹 (p.331)
- Kanji Practice: Write the Readings (p.332; I-A & B)
- Reading Practice: 厄年 (p.333-335; II-B & C)
Workbook: Reading and Writing (Genki II Workbook: p.125-126)
- Workbook: Kanji Writing Practice (p.125)
- Workbook: Spelling Practice (信, 経, 台, and 風) (p.125; bonus)
- Workbook: Spelling Practice (犬, 重, 初, and 若) (p.125; bonus)
- Workbook: Spelling Practice (送, 幸, and 計) (p.125; bonus)
- Workbook: Spelling Practice (遅, 配, 第, and 妹) (p.125; bonus)
- Workbook: Fill in the Blanks (p.126)
Lesson 22: Education in Japan (Genki II: p.230-251)
- Vocabulary: Nouns 1 (p.232)
- Vocabulary: Nouns 2 (p.232)
- Vocabulary: Adjectives and U-verbs (p.232-233)
- Vocabulary: Ru-verbs and Irregular Verbs (p.233)
- Vocabulary: Adverbs and Other Expressions (p.233)
- Practice: Causative Sentences 1 (p.240; I-A)
- Practice: Causative Sentences 2 (p.240-241; I-B)
- Practice: Causative + くれる (p.243; II-A)
- Practice: Causative + てください (p.244; II-D)
- Practice: Verb Stem + なさい (p.245; III-A)
- Practice: ～ば (p.245; IV-A)
- Practice: ～ば大丈夫です (p.246; IV-B)
- Practice: ～のに (p.247; V-A)
- Culture Note: Japan's Educational System (2) (p.251)
- Culture Note: Words for University and College Life (p.251)
Workbook (Genki II Workbook: p.86-94)
- Workbook: Causative Sentences 1 (p.86; I & II)
- Workbook: Causative Sentences 2 (p.87)
- Workbook: Causative + あげる／くれる (p.88; I & II)
- Workbook: Verb Stem + なさい (p.89; I & II)
- Workbook: ～ば (p.90; I, II, & III)
- Workbook: ～のに (p.91; I & II)
- Workbook: ～のような／～のように (p.92; I, II, & III)
- Workbook: Listening Comprehension (p.93; A, B, & C)
- Workbook: Questions (p.94; I)
Reading and Writing: Tomomi's Diary (Genki II: p.336-341)
- Kanji Practice: 記, 銀, and 回 (p.336)
- Kanji Practice: 夕, 黒, and 用 (p.336)
- Kanji Practice: 守, 末, and 待 (p.336-337)
- Kanji Practice: 残, 番, and 駅 (p.337)
- Kanji Practice: 説, 案, 内, and 忘 (p.337)
- Kanji Practice: Write the Readings (p.338; I-A & B)
- Reading Practice: 友美さんの日記 (p.339-341; II-B, C, & D)
Workbook: Reading and Writing (Genki II Workbook: p.127-128)
- Workbook: Kanji Writing Practice (p.127)
- Workbook: Spelling Practice (記, 銀, 回, and 夕) (p.127; bonus)
- Workbook: Spelling Practice (黒, 用, 守, and 末) (p.127; bonus)
- Workbook: Spelling Practice (待, 残, 番, and 駅) (p.127; bonus)
- Workbook: Spelling Practice (説, 案, 内, and 忘) (p.127; bonus)
- Workbook: Fill in the Blanks (p.128)
Lesson 23: Good-bye (Genki II: p.252-273)
- Vocabulary: Nouns 1 (p.254)
- Vocabulary: Nouns 2 (p.254)
- Vocabulary: い-adjectives and U-verbs (p.254-255)
- Vocabulary: Ru-verbs and Irregular Verbs (p.255)
- Vocabulary: Adverbs and Other Expressions (p.255)
- Practice: Causative-passive Sentences 1 (p.262; I-A)
- Practice: Causative-passive Sentences 2 (p.262-263; I-B)
- Practice: Causative-passive Sentences 3 (p.263; I-C)
- Practice: ～ても 1 (p.264-265; II-A)
- Practice: ～ても 2 (p.265; II-B)
- Practice: ～ことにする (p.266; III-A)
- Practice: ～ことにしている (p.267; IV-A)
- Practice: ～まで (p.268; V-A)
- Practice: ～方 (p.269; VI-A)
- Culture Note: Japanese Proverbs (p.273)
Workbook (Genki II Workbook: p.95-105)
- Workbook: Verb Conjugation (Causative-passive) (p.95-96; I & II)
- Workbook: Causative-passive Sentences (p.97; I & II)
- Workbook: Passive and Causative-passive (p.98)
- Workbook: ～ても (p.99; I & II)
- Workbook: ～ことにする (p.100; I & II)
- Workbook: ～ことにしている (p.101; I & II)
- Workbook: ～まで (p.102; I & II)
- Workbook: ～方 (p.103; I & II)
- Workbook: Listening Comprehension (p.104; A, B, & C)
- Workbook: Questions (p.105; I)
Reading and Writing: What Does This Face Mean? (Genki II: p.342-348)
- Kanji Practice: 顔, 情, and 怒 (p.342)
- Kanji Practice: 変, 相, and 横 (p.342)
- Kanji Practice: 比, 化, and 違 (p.342-343)
- Kanji Practice: 悲, 調, and 査 (p.343)
- Kanji Practice: 果, 感, and 答 (p.343)
- Kanji Practice: Write the Readings (p.344; I-A & B)
- Reading Practice: これはどんな顔? (p.345-347; II-B, C, & D)
Workbook: Reading and Writing (Genki II Workbook: p.129-130)
- Workbook: Kanji Writing Practice (p.129)
- Workbook: Spelling Practice (顔, 情, 怒, and 変) (p.129; bonus)
- Workbook: Spelling Practice (相, 横, 比, and 化) (p.129; bonus)
- Workbook: Spelling Practice (遺, 悲, 調, and 査) (p.129; bonus)
- Workbook: Spelling Practice (果, 感, and 答) (p.129; bonus)
- Workbook: Fill in the Blanks (p.130)
Appendix (Genki II: p.349-385)
- Dictionary (p.350-379)
- Map of Japan (p.380-381)
- Numbers Chart (p.382-383)
- Conjugation Chart (p.384-385)
Study Tools
This section contains helpful tools and resources to aid with your studies, some of which can be used for creating your own custom exercises.


Mecanoo Reveals Konka Mixed-Use Inspired by Historic Chinese Towns
- by Eric Baldwin
- about 10 hours
Dutch design practice Mecanoo has revealed their design for the Konka mixed-use project in Shenzhen, China. As the team states, Shenzhen is searching for new models for urban and architectural innovation to replace the traditional model of large-scale indoor shopping malls and focus on flexible development. The new Kang Qiao Jia Cheng development was made to provide an urban regeneration paradigm and a new icon for the Shenzhen skyline.
The Konka mixed-use project was inspired by the small-scale urban tissue of historical Chinese towns. The design was made with a permeable urban fabric to allow pedestrian connections within the site and to neighboring areas. Located on a sloping plot bordering the highway, the scheme consists of two facing towers, connected by a network of plazas and green terraces. Two stepped platforms solve the height difference between the northwest and the southeast corner. Easily visible from the highway and soaring 280 m into the sky, the tallest tower occupies the south-western corner of the site. The building hosts the Konka Group Headquarters, an electronics manufacturing company with an international reach.
On the opposite corner, the business apartment tower provides panoramic views of Shenzhen Bay and the mountains towards north. Lower heights along Enping Street achieve a smooth transition to the smaller scale of the surrounding buildings. By extending the pedestrian circulation network towards north, the complex will connect to the OCT (Overseas Chinese Town), a new upscale neighborhood, home to many creative industries. The spatial strategy for the urban design relies on a system that should work at different scales and maintain the building’s identity when seen from afar or up close. A 9×9 m grid system facilitates a transition between the office tower and the smaller scale of the apartments, creating a diverse urban space.
Porous at street level, the building has a plinth that accommodates workshops, bookstores, retail and restaurants. Gradual setbacks shelter the entrance zones and open the building to a public passage that leads to the inner plazas. While the low retail buildings are mostly covered with perforated copper panels, the towers are transparent, reflecting Konka Group’s culture of openness. On top of high-performance glass, a copper mesh accentuates the office tower’s beveled modules. Using the same inclination, balconies with slanted sides surround all the levels of the business and apartment tower. Throughout the development, the pattern and position of the panels reduce solar radiation and optimize daylight exposure.
News via Mecanoo


Proj4J is a Java library to transform point coordinates from one geographic coordinate system to another, including datum transformations.
The core of this library is a port of the PROJ.4 C library. The projection algorithms, concepts and coordinate system definitions are all taken directly from PROJ.4. These are wrapped in a Java class model which follows standard Java conventions and OO best practices.
Proj4J is a part of the MetaCRS group of projects, hosted by OSGeo.
A mailing list is available for users and developers of Proj4J.
The Proj4J codebase is based on a partial port of PROJ.4 carried out by JHLabs circa 2006. The JHLabs port provided a large number of the PROJ.4 projections, but did not support some PROJ.4 features such as datum transformation.


Proteus is a revolutionary new way to test water samples through an AI recognition system that we created. It can test water samples given to it accurately, and you can get the images by using a cell phone microscope attachment. To see if the images contain any bacteria, upload the image into our image scanning software.


Photography is the art, application and practice of creating durable imgs by recording light or other electromagnetic radiation, either electronically by means of an img sensor, or chemically by means of a light-sensitive material such as photographic film.


Focused event not received
Unfocused event not received
Window load event not received
View load event not received


A tennis ball fell from the back of a truck, and with one hop as big as the next, went across town. It sped past a class full of kids as they did jumping jacks. It twisted along the rim of a pond with a duck swimming in it. It fell in the mud next to the pond, but a hotrod blasted past, and the wind behind it sent the ball up...and back into the truck it fell from.
in-context


WEEK 12 FRIDAY
Year 1 (Year 2)
FIRST READING Genesis 17:1.9-10.15-22
A reading from the Book of Genesis
When Abram was ninety-nine years old the LORD appeared to Abram, and
said to him, "I am God Almighty; walk before me, and be
blameless.   And God said to
Abraham, "As for Sarai your wife, you shall not call her name Sarai, but
Sarah shall be her name.  Then Abraham fell on his face and laughed, and said
to himself, "Shall a child be born to a man who is a hundred years old?
Shall Sarah, who is ninety years old, bear a child?" And Abraham said to
God, "O that Ishmael might live in your sight!"  I
will establish my covenant with him as an everlasting covenant for his
descendants after him. As for Ishmael, I have heard you; behold, I will bless
him and make him fruitful and multiply him exceedingly; he shall be the father
of twelve princes, and I will make him a great nation. But I will establish my
covenant with Isaac, whom Sarah shall bear to you at this season next
year." When he had finished talking with him, God went up from
Abraham.
The word of the Lord.
RESPONSORIAL PSALM Psalm 128:1-2.3.4-5 (R. 4)
R. Indeed thus shall be blessed the man who fears the Lord.
Blessed are all who fear the
LORD, and walk in his ways! By the labour of your hands you shall eat. You will
be blessed and prosper.
R. Indeed thus shall be blessed the man who fears the
Lord.

R. Indeed thus shall be blessed the man who fears the
Lord.
Indeed thus shall be blessed the man who fears the LORD. May the LORD
bless you from Sion. May you see
R. Indeed thus shall be blessed the man who fears the
Lord.
FIRST READING 2 Kings 25:1-12
A reading from the second Book of Kings
In the ninth year of the reign
of Zedekiah, in the tenth month, on the tenth day of the month, Nebuchadnezzar
king of
The word of the Lord.
RESPONSORIAL PSALM Psalm 137:1-2.3.4-5.6 (R. 6ab)
R. O let my tongue cleave to my palate if I remember you not!
By the rivers of
R. O let my tongue cleave to my palate if I remember
you not!
For it was there that they asked us, our captors, for
songs, our oppressors, for joy. 'Sing to us,' they said, 'one of Sion's songs.'
R. O let my tongue cleave to my palate if I remember
you not!
O how could we sing the song of the LORD on foreign soil?
O let my tongue cleave to my palate if I remember you not, if I prize not
R. O let my tongue cleave to my palate if I remember
you not!
R. Alleluia. Christ took our infirmities and bore our diseases. R. Alleluia.
GOSPEL Matthew 8:1-4
A reading from the holy Gospel according to Matthew
When Jesus came down from the mountain, great crowds followed him; and behold, a leper came to him and knelt before him, saying, "Lord, if you will, you can make me clean." And he stretched out his hand and touched him, saying, "I will; be clean." And immediately his leprosy was cleansed. And Jesus said to him, "See that you say nothing to any one; but go, show yourself to the priest, and offer the gift that Moses commanded, for a proof to the people."
The Gospel of the Lord.


View the Duke Encounters that match your search criteria. You can add a new encounter or confirm an existing one.
Participating requires that you log into the application. Event and user details are only visible after login.
Encounter not listed yet? Create a new one.
Your search for returned the following results:


| 1 | /* =========================================================== | |
| 2 | * JFreeChart : a free chart library for the Java(tm) platform | |
| 3 | * =========================================================== | |
| 4 | * | |
| 5 | * (C) Copyright 2000-2009, by Object Refinery Limited and Contributors. | |
| 6 | * | |
| 7 | * Project Info: http://www.jfree.org/jfreechart/index.html | |
| 8 | * | |
| 9 | * This library is free software; you can redistribute it and/or modify it | |
| 10 | * under the terms of the GNU Lesser General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2.1 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This library is distributed in the hope that it will be useful, but | |
| 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
| 16 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |
| 17 | * License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU Lesser General Public | |
| 20 | * License along with this library; if not, write to the Free Software | |
| 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | |
| 22 | * USA. | |
| 23 | * | |
| 24 | * [Java is a trademark or registered trademark of Sun Microsystems, Inc. | |
| 25 | * in the United States and other countries.] | |
| 26 | * | |
| 27 | * -------------------- | |
| 28 | * XYErrorRenderer.java | |
| 29 | * -------------------- | |
| 30 | * (C) Copyright 2006-2009, by Object Refinery Limited. | |
| 31 | * | |
| 32 | * Original Author: David Gilbert (for Object Refinery Limited); | |
| 33 | * Contributor(s): -; | |
| 34 | * | |
| 35 | * Changes | |
| 36 | * ------- | |
| 37 | * 25-Oct-2006 : Version 1 (DG); | |
| 38 | * 23-Mar-2007 : Check item visibility before drawing error bars - see bug | |
| 39 | * 1686178 (DG); | |
| 40 | * 20-Jun-2007 : Removed JCommon dependencies (DG); | |
| 41 | * 28-Jan-2009 : Added stroke options for error indicators (DG); | |
| 42 | * | |
| 43 | */ | |
| 44 | ||
| 45 | package org.jfree.chart.renderer.xy; | |
| 46 | ||
| 47 | import java.awt.Graphics2D; | |
| 48 | import java.awt.Paint; | |
| 49 | import java.awt.Stroke; | |
| 50 | import java.awt.geom.Line2D; | |
| 51 | import java.awt.geom.Rectangle2D; | |
| 52 | import java.io.IOException; | |
| 53 | import java.io.ObjectInputStream; | |
| 54 | import java.io.ObjectOutputStream; | |
| 55 | ||
| 56 | import org.jfree.chart.axis.ValueAxis; | |
| 57 | import org.jfree.chart.event.RendererChangeEvent; | |
| 58 | import org.jfree.chart.plot.CrosshairState; | |
| 59 | import org.jfree.chart.plot.PlotOrientation; | |
| 60 | import org.jfree.chart.plot.PlotRenderingInfo; | |
| 61 | import org.jfree.chart.plot.XYPlot; | |
| 62 | import org.jfree.chart.util.ObjectUtilities; | |
| 63 | import org.jfree.chart.util.PaintUtilities; | |
| 64 | import org.jfree.chart.util.RectangleEdge; | |
| 65 | import org.jfree.chart.util.SerialUtilities; | |
| 66 | import org.jfree.data.Range; | |
| 67 | import org.jfree.data.general.DatasetUtilities; | |
| 68 | import org.jfree.data.xy.IntervalXYDataset; | |
| 69 | import org.jfree.data.xy.XYDataset; | |
| 70 | ||
| 71 | /** | |
| 72 | * A line and shape renderer that can also display x and/or y-error values. | |
| 73 | * This renderer expects an {@link IntervalXYDataset}, otherwise it reverts | |
| 74 | * to the behaviour of the super class. The example shown here is generated by | |
| 75 | * the XYErrorRendererDemo1.java program included in the | |
| 76 | * JFreeChart demo collection: | |
| 77 | *

 | |
| 78 | *  | |
| 80 | * | |
| 81 | * @since 1.0.3 | |
| 82 | */ | |
| 83 | public class XYErrorRenderer extends XYLineAndShapeRenderer { | |
| 84 | ||
| 85 | /** For serialization. */ | |
| 86 | static final long serialVersionUID =<PHONE_NUMBER>955172424L; | |
| 87 | ||
| 88 | /** A flag that controls whether or not the x-error bars are drawn. */ | |
| 89 | private boolean drawXError; | |
| 90 | ||
| 91 | /** A flag that controls whether or not the y-error bars are drawn. */ | |
| 92 | private boolean drawYError; | |
| 93 | ||
| 94 | /** The length of the cap at the end of the error bars. */ | |
| 95 | private double capLength; | |
| 96 | ||
| 97 | /** | |
| 98 | * The paint used to draw the error bars (if null we use the | |
| 99 | * series paint). | |
| 100 | */ | |
| 101 | private transient Paint errorPaint; | |
| 102 | ||
| 103 | /** | |
| 104 | * The stroke used to draw the error bars (if null we use the | |
| 105 | * series outline stroke). | |
| 106 | * | |
| 107 | * @since 1.0.13 | |
| 108 | */ | |
| 109 | private transient Stroke errorStroke; | |
| 110 | ||
| 111 | /** | |
| 112 | * Creates a new XYErrorRenderer instance. | |
| 113 | */ | |
| 114 | public XYErrorRenderer() { | |
| 115 | super(false, true); | |
| 116 | this.drawXError = true; | |
| 117 | this.drawYError = true; | |
| 118 | this.errorPaint = null; | |
| 119 | this.errorStroke = null; | |
| 120 | this.capLength = 4.0; | |
| 121 | } | |
| 122 | ||
| 123 | /** | |
| 124 | * Returns the flag that controls whether or not the renderer draws error | |
| 125 | * bars for the x-values. | |
| 126 | * | |
| 127 | * @return A boolean. | |
| 128 | * | |
| 129 | * @see #setDrawXError(boolean) | |
| 130 | */ | |
| 131 | public boolean getDrawXError() { | |
| 132 |
1
1. getDrawXError : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return this.drawXError; |
| 133 | } | |
| 134 | ||
| 135 | /** | |
| 136 | * Sets the flag that controls whether or not the renderer draws error | |
| 137 | * bars for the x-values and, if the flag changes, sends a | |
| 138 | * {@link RendererChangeEvent} to all registered listeners. | |
| 139 | * | |
| 140 | * @param draw the flag value. | |
| 141 | * | |
| 142 | * @see #getDrawXError() | |
| 143 | */ | |
| 144 | public void setDrawXError(boolean draw) { | |
| 145 |
1
1. setDrawXError : negated conditional → KILLED |
if (this.drawXError != draw) { |
| 146 | this.drawXError = draw; | |
| 147 |
1
1. setDrawXError : removed call to org/jfree/chart/renderer/xy/XYErrorRenderer::fireChangeEvent → SURVIVED |
fireChangeEvent(); |
| 148 | } | |
| 149 | } | |
| 150 | ||
| 151 | /** | |
| 152 | * Returns the flag that controls whether or not the renderer draws error | |
| 153 | * bars for the y-values. | |
| 154 | * | |
| 155 | * @return A boolean. | |
| 156 | * | |
| 157 | * @see #setDrawYError(boolean) | |
| 158 | */ | |
| 159 | public boolean getDrawYError() { | |
| 160 |
1
1. getDrawYError : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return this.drawYError; |
| 161 | } | |
| 162 | ||
| 163 | /** | |
| 164 | * Sets the flag that controls whether or not the renderer draws error | |
| 165 | * bars for the y-values and, if the flag changes, sends a | |
| 166 | * {@link RendererChangeEvent} to all registered listeners. | |
| 167 | * | |
| 168 | * @param draw the flag value. | |
| 169 | * | |
| 170 | * @see #getDrawYError() | |
| 171 | */ | |
| 172 | public void setDrawYError(boolean draw) { | |
| 173 |
1
1. setDrawYError : negated conditional → KILLED |
if (this.drawYError != draw) { |
| 174 | this.drawYError = draw; | |
| 175 |
1
1. setDrawYError : removed call to org/jfree/chart/renderer/xy/XYErrorRenderer::fireChangeEvent → SURVIVED |
fireChangeEvent(); |
| 176 | } | |
| 177 | } | |
| 178 | ||
| 179 | /** | |
| 180 | * Returns the length (in Java2D units) of the cap at the end of the error | |
| 181 | * bars. | |
| 182 | * | |
| 183 | * @return The cap length. | |
| 184 | * | |
| 185 | * @see #setCapLength(double) | |
| 186 | */ | |
| 187 | public double getCapLength() { | |
| 188 |
1
1. getCapLength : replaced return of double value with -(x + 1) for org/jfree/chart/renderer/xy/XYErrorRenderer::getCapLength → NO_COVERAGE |
return this.capLength; |
| 189 | } | |
| 190 | ||
| 191 | /** | |
| 192 | * Sets the length of the cap at the end of the error bars, and sends a | |
| 193 | * {@link RendererChangeEvent} to all registered listeners. | |
| 194 | * | |
| 195 | * @param length the length (in Java2D units). | |
| 196 | * | |
| 197 | * @see #getCapLength() | |
| 198 | */ | |
| 199 | public void setCapLength(double length) { | |
| 200 | this.capLength = length; | |
| 201 |
1
1. setCapLength : removed call to org/jfree/chart/renderer/xy/XYErrorRenderer::fireChangeEvent → SURVIVED |
fireChangeEvent(); |
| 202 | } | |
| 203 | ||
| 204 | /** | |
| 205 | * Returns the paint used to draw the error bars. If this is | |
| 206 | * null (the default), the item paint is used instead. | |
| 207 | * | |
| 208 | * @return The paint (possibly null). | |
| 209 | * | |
| 210 | * @see #setErrorPaint(Paint) | |
| 211 | */ | |
| 212 | public Paint getErrorPaint() { | |
| 213 |
1
1. getErrorPaint : mutated return of Object value for org/jfree/chart/renderer/xy/XYErrorRenderer::getErrorPaint to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.errorPaint; |
| 214 | } | |
| 215 | ||
| 216 | /** | |
| 217 | * Sets the paint used to draw the error bars and sends a | |
| 218 | * {@link RendererChangeEvent} to all registered listeners. | |
| 219 | * | |
| 220 | * @param paint the paint (null permitted). | |
| 221 | * | |
| 222 | * @see #getErrorPaint() | |
| 223 | */ | |
| 224 | public void setErrorPaint(Paint paint) { | |
| 225 | this.errorPaint = paint; | |
| 226 |
1
1. setErrorPaint : removed call to org/jfree/chart/renderer/xy/XYErrorRenderer::fireChangeEvent → SURVIVED |
fireChangeEvent(); |
| 227 | } | |
| 228 | ||
| 229 | /** | |
| 230 | * Returns the stroke used to draw the error bars. If this is | |
| 231 | * null (the default), the item outline stroke is used | |
| 232 | * instead. | |
| 233 | * | |
| 234 | * @return The stroke (possibly null). | |
| 235 | * | |
| 236 | * @see #setErrorStroke(Stroke) | |
| 237 | * | |
| 238 | * @since 1.0.13 | |
| 239 | */ | |
| 240 | public Stroke getErrorStroke() { | |
| 241 |
1
1. getErrorStroke : mutated return of Object value for org/jfree/chart/renderer/xy/XYErrorRenderer::getErrorStroke to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.errorStroke; |
| 242 | } | |
| 243 | ||
| 244 | /** | |
| 245 | * Sets the stroke used to draw the error bars and sends a | |
| 246 | * {@link RendererChangeEvent} to all registered listeners. | |
| 247 | * | |
| 248 | * @param stroke the stroke (null permitted). | |
| 249 | * | |
| 250 | * @see #getErrorStroke() | |
| 251 | * | |
| 252 | * @since 1.0.13 | |
| 253 | */ | |
| 254 | public void setErrorStroke(Stroke stroke) { | |
| 255 | this.errorStroke = stroke; | |
| 256 |
1
1. setErrorStroke : removed call to org/jfree/chart/renderer/xy/XYErrorRenderer::fireChangeEvent → SURVIVED |
fireChangeEvent(); |
| 257 | } | |
| 258 | ||
| 259 | /** | |
| 260 | * Returns the range required by this renderer to display all the domain | |
| 261 | * values in the specified dataset. | |
| 262 | * | |
| 263 | * @param dataset the dataset (null permitted). | |
| 264 | * | |
| 265 | * @return The range, or null if the dataset is | |
| 266 | * null. | |
| 267 | */ | |
| 268 | public Range findDomainBounds(XYDataset dataset) { | |
| 269 |
1
1. findDomainBounds : negated conditional → NO_COVERAGE |
if (dataset != null) { |
| 270 |
1
1. findDomainBounds : mutated return of Object value for org/jfree/chart/renderer/xy/XYErrorRenderer::findDomainBounds to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return DatasetUtilities.findDomainBounds(dataset, true); |
| 271 | } | |
| 272 | else { | |
| 273 |
1
1. findDomainBounds : mutated return of Object value for org/jfree/chart/renderer/xy/XYErrorRenderer::findDomainBounds to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return null; |
| 274 | } | |
| 275 | } | |
| 276 | ||
| 277 | /** | |
| 278 | * Returns the range required by this renderer to display all the range | |
| 279 | * values in the specified dataset. | |
| 280 | * | |
| 281 | * @param dataset the dataset (null permitted). | |
| 282 | * | |
| 283 | * @return The range, or null if the dataset is | |
| 284 | * null. | |
| 285 | */ | |
| 286 | public Range findRangeBounds(XYDataset dataset) { | |
| 287 |
1
1. findRangeBounds : negated conditional → NO_COVERAGE |
if (dataset != null) { |
| 288 |
1
1. findRangeBounds : mutated return of Object value for org/jfree/chart/renderer/xy/XYErrorRenderer::findRangeBounds to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return DatasetUtilities.findRangeBounds(dataset, true); |
| 289 | } | |
| 290 | else { | |
| 291 |
1
1. findRangeBounds : mutated return of Object value for org/jfree/chart/renderer/xy/XYErrorRenderer::findRangeBounds to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return null; |
| 292 | } | |
| 293 | } | |
| 294 | ||
| 295 | /** | |
| 296 | * Draws the visual representation for one data item. | |
| 297 | * | |
| 298 | * @param g2 the graphics output target. | |
| 299 | * @param state the renderer state. | |
| 300 | * @param dataArea the data area. | |
| 301 | * @param plot the plot. | |
| 302 | * @param domainAxis the domain axis. | |
| 303 | * @param rangeAxis the range axis. | |
| 304 | * @param dataset the dataset. | |
| 305 | * @param series the series index. | |
| 306 | * @param item the item index. | |
| 307 | * @param pass the pass index. | |
| 308 | */ | |
| 309 | public void drawItem(Graphics2D g2, XYItemRendererState state, | |
| 310 | Rectangle2D dataArea, XYPlot plot, ValueAxis domainAxis, | |
| 311 | ValueAxis rangeAxis, XYDataset dataset, int series, int item, | |
| 312 | boolean selected, int pass) { | |
| 313 | ||
| 314 |
3
1. drawItem : negated conditional → NO_COVERAGE 2. drawItem : negated conditional → NO_COVERAGE 3. drawItem : negated conditional → NO_COVERAGE |
if (pass == 0 && dataset instanceof IntervalXYDataset |
| 315 | && getItemVisible(series, item)) { | |
| 316 | IntervalXYDataset ixyd = (IntervalXYDataset) dataset; | |
| 317 | PlotOrientation orientation = plot.getOrientation(); | |
| 318 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (this.drawXError) { |
| 319 | // draw the error bar for the x-interval | |
| 320 | double x0 = ixyd.getStartXValue(series, item); | |
| 321 | double x1 = ixyd.getEndXValue(series, item); | |
| 322 | double y = ixyd.getYValue(series, item); | |
| 323 | RectangleEdge edge = plot.getDomainAxisEdge(); | |
| 324 | double xx0 = domainAxis.valueToJava2D(x0, dataArea, edge); | |
| 325 | double xx1 = domainAxis.valueToJava2D(x1, dataArea, edge); | |
| 326 | double yy = rangeAxis.valueToJava2D(y, dataArea, | |
| 327 | plot.getRangeAxisEdge()); | |
| 328 | Line2D line; | |
| 329 | Line2D cap1 = null; | |
| 330 | Line2D cap2 = null; | |
| 331 |
1
1. drawItem : Replaced double division with multiplication → NO_COVERAGE |
double adj = this.capLength / 2.0; |
| 332 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (orientation == PlotOrientation.VERTICAL) { |
| 333 | line = new Line2D.Double(xx0, yy, xx1, yy); | |
| 334 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap1 = new Line2D.Double(xx0, yy - adj, xx0, yy + adj); |
| 335 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap2 = new Line2D.Double(xx1, yy - adj, xx1, yy + adj); |
| 336 | } | |
| 337 | else { // PlotOrientation.HORIZONTAL | |
| 338 | line = new Line2D.Double(yy, xx0, yy, xx1); | |
| 339 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap1 = new Line2D.Double(yy - adj, xx0, yy + adj, xx0); |
| 340 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap2 = new Line2D.Double(yy - adj, xx1, yy + adj, xx1); |
| 341 | } | |
| 342 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (this.errorPaint != null) { |
| 343 |
1
1. drawItem : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(this.errorPaint); |
| 344 | } | |
| 345 | else { | |
| 346 |
1
1. drawItem : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(getItemPaint(series, item, selected)); |
| 347 | } | |
| 348 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (this.errorStroke != null) { |
| 349 |
1
1. drawItem : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(this.errorStroke); |
| 350 | } | |
| 351 | else { | |
| 352 |
1
1. drawItem : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(getItemStroke(series, item, selected)); |
| 353 | } | |
| 354 |
1
1. drawItem : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(line); |
| 355 |
1
1. drawItem : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(cap1); |
| 356 |
1
1. drawItem : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(cap2); |
| 357 | } | |
| 358 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (this.drawYError) { |
| 359 | // draw the error bar for the y-interval | |
| 360 | double y0 = ixyd.getStartYValue(series, item); | |
| 361 | double y1 = ixyd.getEndYValue(series, item); | |
| 362 | double x = ixyd.getXValue(series, item); | |
| 363 | RectangleEdge edge = plot.getRangeAxisEdge(); | |
| 364 | double yy0 = rangeAxis.valueToJava2D(y0, dataArea, edge); | |
| 365 | double yy1 = rangeAxis.valueToJava2D(y1, dataArea, edge); | |
| 366 | double xx = domainAxis.valueToJava2D(x, dataArea, | |
| 367 | plot.getDomainAxisEdge()); | |
| 368 | Line2D line; | |
| 369 | Line2D cap1 = null; | |
| 370 | Line2D cap2 = null; | |
| 371 |
1
1. drawItem : Replaced double division with multiplication → NO_COVERAGE |
double adj = this.capLength / 2.0; |
| 372 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (orientation == PlotOrientation.VERTICAL) { |
| 373 | line = new Line2D.Double(xx, yy0, xx, yy1); | |
| 374 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap1 = new Line2D.Double(xx - adj, yy0, xx + adj, yy0); |
| 375 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap2 = new Line2D.Double(xx - adj, yy1, xx + adj, yy1); |
| 376 | } | |
| 377 | else { // PlotOrientation.HORIZONTAL | |
| 378 | line = new Line2D.Double(yy0, xx, yy1, xx); | |
| 379 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap1 = new Line2D.Double(yy0, xx - adj, yy0, xx + adj); |
| 380 |
2
1. drawItem : Replaced double subtraction with addition → NO_COVERAGE 2. drawItem : Replaced double addition with subtraction → NO_COVERAGE |
cap2 = new Line2D.Double(yy1, xx - adj, yy1, xx + adj); |
| 381 | } | |
| 382 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (this.errorPaint != null) { |
| 383 |
1
1. drawItem : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(this.errorPaint); |
| 384 | } | |
| 385 | else { | |
| 386 |
1
1. drawItem : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(getItemPaint(series, item, selected)); |
| 387 | } | |
| 388 |
1
1. drawItem : negated conditional → NO_COVERAGE |
if (this.errorStroke != null) { |
| 389 |
1
1. drawItem : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(this.errorStroke); |
| 390 | } | |
| 391 | else { | |
| 392 |
1
1. drawItem : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(getItemStroke(series, item, selected)); |
| 393 | } | |
| 394 |
1
1. drawItem : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(line); |
| 395 |
1
1. drawItem : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(cap1); |
| 396 |
1
1. drawItem : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(cap2); |
| 397 | } | |
| 398 | } | |
| 399 |
1
1. drawItem : removed call to org/jfree/chart/renderer/xy/XYLineAndShapeRenderer::drawItem → NO_COVERAGE |
super.drawItem(g2, state, dataArea, plot, domainAxis, rangeAxis, |
| 400 | dataset, series, item, selected, pass); | |
| 401 | } | |
| 402 | ||
| 403 | /** | |
| 404 | * Tests this instance for equality with an arbitrary object. | |
| 405 | * | |
| 406 | * @param obj the object (null permitted). | |
| 407 | * | |
| 408 | * @return A boolean. | |
| 409 | */ | |
| 410 | public boolean equals(Object obj) { | |
| 411 |
1
1. equals : negated conditional → KILLED |
if (obj == this) { |
| 412 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return true; |
| 413 | } | |
| 414 |
1
1. equals : negated conditional → KILLED |
if (!(obj instanceof XYErrorRenderer)) { |
| 415 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 416 | } | |
| 417 | XYErrorRenderer that = (XYErrorRenderer) obj; | |
| 418 |
1
1. equals : negated conditional → KILLED |
if (this.drawXError != that.drawXError) { |
| 419 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 420 | } | |
| 421 |
1
1. equals : negated conditional → KILLED |
if (this.drawYError != that.drawYError) { |
| 422 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 423 | } | |
| 424 |
1
1. equals : negated conditional → KILLED |
if (this.capLength != that.capLength) { |
| 425 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 426 | } | |
| 427 |
1
1. equals : negated conditional → KILLED |
if (!PaintUtilities.equal(this.errorPaint, that.errorPaint)) { |
| 428 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 429 | } | |
| 430 |
1
1. equals : negated conditional → KILLED |
if (!ObjectUtilities.equal(this.errorStroke, that.errorStroke)) { |
| 431 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 432 | } | |
| 433 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return super.equals(obj); |
| 434 | } | |
| 435 | ||
| 436 | /** | |
| 437 | * Provides serialization support. | |
| 438 | * | |
| 439 | * @param stream the input stream. | |
| 440 | * | |
| 441 | * @throws IOException if there is an I/O error. | |
| 442 | * @throws ClassNotFoundException if there is a classpath problem. | |
| 443 | */ | |
| 444 | private void readObject(ObjectInputStream stream) | |
| 445 | throws IOException, ClassNotFoundException { | |
| 446 |
1
1. readObject : removed call to java/io/ObjectInputStream::defaultReadObject → KILLED |
stream.defaultReadObject(); |
| 447 | this.errorPaint = SerialUtilities.readPaint(stream); | |
| 448 | this.errorStroke = SerialUtilities.readStroke(stream); | |
| 449 | } | |
| 450 | ||
| 451 | /** | |
| 452 | * Provides serialization support. | |
| 453 | * | |
| 454 | * @param stream the output stream. | |
| 455 | * | |
| 456 | * @throws IOException if there is an I/O error. | |
| 457 | */ | |
| 458 | private void writeObject(ObjectOutputStream stream) throws IOException { | |
| 459 |
1
1. writeObject : removed call to java/io/ObjectOutputStream::defaultWriteObject → KILLED |
stream.defaultWriteObject(); |
| 460 |
1
1. writeObject : removed call to org/jfree/chart/util/SerialUtilities::writePaint → KILLED |
SerialUtilities.writePaint(this.errorPaint, stream); |
| 461 |
1
1. writeObject : removed call to org/jfree/chart/util/SerialUtilities::writeStroke → KILLED |
SerialUtilities.writeStroke(this.errorStroke, stream); |
| 462 | } | |
| 463 | ||
| 464 | } | |
Mutations | ||
| 132 |
1.1 |
|
| 145 |
1.1 |
|
| 147 |
1.1 |
|
| 160 |
1.1 |
|
| 173 |
1.1 |
|
| 175 |
1.1 |
|
| 188 |
1.1 |
|
| 201 |
1.1 |
|
| 213 |
1.1 |
|
| 226 |
1.1 |
|
| 241 |
1.1 |
|
| 256 |
1.1 |
|
| 269 |
1.1 |
|
| 270 |
1.1 |
|
| 273 |
1.1 |
|
| 287 |
1.1 |
|
| 288 |
1.1 |
|
| 291 |
1.1 |
|
| 314 |
1.1 2.2 3.3 |
|
| 318 |
1.1 |
|
| 331 |
1.1 |
|
| 332 |
1.1 |
|
| 334 |
1.1 2.2 |
|
| 335 |
1.1 2.2 |
|
| 339 |
1.1 2.2 |
|
| 340 |
1.1 2.2 |
|
| 342 |
1.1 |
|
| 343 |
1.1 |
|
| 346 |
1.1 |
|
| 348 |
1.1 |
|
| 349 |
1.1 |
|
| 352 |
1.1 |
|
| 354 |
1.1 |
|
| 355 |
1.1 |
|
| 356 |
1.1 |
|
| 358 |
1.1 |
|
| 371 |
1.1 |
|
| 372 |
1.1 |
|
| 374 |
1.1 2.2 |
|
| 375 |
1.1 2.2 |
|
| 379 |
1.1 2.2 |
|
| 380 |
1.1 2.2 |
|
| 382 |
1.1 |
|
| 383 |
1.1 |
|
| 386 |
1.1 |
|
| 388 |
1.1 |
|
| 389 |
1.1 |
|
| 392 |
1.1 |
|
| 394 |
1.1 |
|
| 395 |
1.1 |
|
| 396 |
1.1 |
|
| 399 |
1.1 |
|
| 411 |
1.1 |
|
| 412 |
1.1 |
|
| 414 |
1.1 |
|
| 415 |
1.1 |
|
| 418 |
1.1 |
|
| 419 |
1.1 |
|
| 421 |
1.1 |
|
| 422 |
1.1 |
|
| 424 |
1.1 |
|
| 425 |
1.1 |
|
| 427 |
1.1 |
|
| 428 |
1.1 |
|
| 430 |
1.1 |
|
| 431 |
1.1 |
|
| 433 |
1.1 |
|
| 446 |
1.1 |
|
| 459 |
1.1 |
|
| 460 |
1.1 |
|
| 461 |
1.1 |


projects/wickeyappstore/src/lib/wickeyappstore.component.ts
WickeyAppStore Interface
This is REQUIRED and is the hook into WickeyAppStore reviews, purchases, sso, and other functionality.
WickeyAppStore on NPM: https://www.npmjs.com/package/wickeyappstore
SIMPLY ADD to HTML in your main app page
```js
With event listeners
js| encapsulation | ViewEncapsulation.None |
| selector | wickey-appstore |
| styleUrls | ./wickeyappstore.component.css |
| templateUrl | ./wickeyappstore.component.html |
| open |
Type : EventEmitter
|
|
Event emitted when the associated menu is opened. |
<was-menu-btn (open)="openEvent()"></was-menu-btn>
./wickeyappstore.component.css
/* You can add global styles to this file, and also import other style files */
/* @import<EMAIL_ADDRESS>*/
/*html {
touch-action: manipulation;
}*/
h1 {
font-size: 250%;
}
h2, h3 {
font-weight: lighter;
font-size: 150%;
}
p {
font-size: 0.875em; /* If the baseline is 16px, this will scale the font to 14px */
line-height: 1em; /* This keeps the line height proportional to the font size */
}
/* Don't allow text selection in buttons:
http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css?page=1&tab=votes#tab-top
https://www.w3schools.com/cssref/css3_pr_user-select.asp
Added iOS Safari http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css*/
button {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
/*

Selectable text.

Unselectable text.

*/
.noselect {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
/*...*/
/* everything else */
* {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
/* Put this in to allow a full screen dialog */
/* Use the resize method within any dialog to set to 100%, 100% */
.cdk-overlay-pane {
max-width: 100%!important;
/* Pulled this out as it caused janky modal animations in ios 12 */
/* overflow-y: scroll!important;
-webkit-overflow-scrolling: touch!important; */
}
/* Every toolbar row uses a flexbox row layout. */
.main-header-sidebar {
width: 40px;
}
.main-header-text {
flex: 2;
text-align: center;
font-weight: 400;
text-shadow: 0 1px 0 rgb(0, 0, 0);
}
.fill-remaining-space {
/* This fills the remaining space, by using flexbox. */
flex: 1 1 auto;
}
[hidden] {
display: none!important;
}


Enabled (changing requires a refresh)
Top summary (changing requires a refresh)
Please discuss bugs or improvements on
WebP discuss
.


The Row Layout contains columns and creates horizontal sections within the page. There are various modifiers that transform how the rows child elements behave and are displayed. The row layout can be initialized with the class name l-row
.
Standalone row class .l-row
assigns self clearing block properties to the element and can be used anywhere where vertical separation of content is necessary.

First Block

Second Block

Child elements are floated left to allow for a basic grid system.

Block

Block

Block

Gutters between columns can be added by assigning -tight
, -narrow
, -wide
modifiers.

Narrow Gap

Narrow Gap

Narrow Gap

When assigning the table modifier .l-row -table
the row display property becomes display: table
and child elements become display: table-cell
. This allows us to easily create table grids. The benefit of using table grids is the ability to vertically align content and for child elements to fill the height of its parent.

Cell

Cell

Cell

By default the table grid will have a collapsed width with top vertical alignment. You can apply the following modifiers to change these behaviors. Assigning the -fluid
class to the table grid will make the grid 100% width and flexible.

Cell

Cell

Cell

You can override the default top vertical alignment with -middle
and -bottom
classes.

...

...

Table grids can automatically stack child cells specific to screen size. For example, -m-stack
stacks for mobile, -t-stack
for tablet and -d-stack
for desktop.

...

Assigning the -flex
modifier transforms your grid into a flexbox based grid system. Flex grids offers all the benefits of flexbox such as direction, order, grow and more.

...


In addition to the legal drivers, there are social, financial and technical incentives for accessibility.
Benefits of making services accessible
Social factors
Public sector websites must address the needs of citizens throughout the country. An accessible website can provide access to information on a far wider scale than previously possible. Social incentives for accessibility include:
- Disabled people have easier access to printed, audio or visual material.
- Citizens can access services and information, regardless of experience or ability.
- Everyone will find the website easier to use, improving their ability to successfully complete goals online.
- People using all kinds of devices, from the oldest to the newest, will be able to use the website, helping to reduce the impact of the digital divide.
- Greater interaction between citizens and government is possible with a user friendly, accessible website.
Financial factors
A user friendly and accessible website can help reduce costs both directly and indirectly. Accessibility is often viewed as an expensive afterthought, but it can provide many cost benefits. The key is to build in accessibility from the outset, making inclusive design a priority throughout the development lifecycle of the website. Financial incentives for inclusive design include:
- Accessible web pages tend to be lighter (physically smaller) which reduces bandwidth costs and improves page response times – leading to an improved customer experience.
- Increasingly, people will be able to access services and information online, representing a reduction in costs needed for ancillary resources such as call centres.
- Ongoing maintenance and hosting costs can be significantly reduced.
- Providing one website that supports multiple audiences is more efficient than running multiple websites for multiple audiences.
Technical factors
Technical concerns vary throughout the different levels of government. The resources and technical capabilities of a district council may differ from those of a central government body. However, improving technical performance and delivering reliable digital services is important across the board. Technical incentives for inclusive design include:
- Following recognised standards and guidelines for web accessibility can help ensure that future technologies will be able to access the site.
- Compatibility with more browsers and technologies such as mobile.
- Access to a wide range of assistive technologies.
- Improved levels of traffic may be driven to the site through Search Engine Optimisation (SEO).


Aalto University graduate with a background in Communications Engineering and Telecommunications, having experience in Software Engineering and Data Analysis as well as a good understanding of the Software Development processes.
As part of the SEGAL research group, I conducted a research project on techniques for improving on-time delivery of software components by cross-referencing their delivery status with participating developers discussions. The investigated technique consisted of a time-series clustering analysis performed on abstracted conversation structures extracted from the Jazz online collaboration platform.
As part of a research team in the Department of Computer Science, I assisted in a project looking into students’ affective learning outcomes after a Scrum project. My duties consisted of scrubbing survey data, performing data analysis using descriptive statistics and correlation analysis, as well as exploring relevant prior research.
Developed and maintained upgrade rules utilized in the software update process of telecommunications equipment. This consisted of using Python to create and edit the XML files involved in parameter configuration, creating the necessary unit tests using Xquery, coordinating using Jira, participating in code reviews and using Jenkins to configure batch testing.
Extended the functionality of a software module for automatic equipment configuration that was used by the sales team to generate offers for telecommunications operators. I used LISP to implement formulas and dependencies that automatically determined the validity of a specified configuration and would output the required components.
Built using Object Oriented Programming principles, the game places the player in a house with the simple objective of escaping it. Each room presents an unique mechanic, with several actions available, and multiple ways of approaching the task.
The project implements a Scrapy web-crawler to gather vehicle data, such as age, mileage and price, from a car-sales website and export it to a SQL database. Pandas is then used to investigate and clean the data, while Seaborn is used for visualizations.


Our Coding For Us! We are a civic group, bridging technology and government with the ambition of making a better Sri Lanka.


Ukrainian Navy boats returned by Russia entering Ukraine's Ochakiv port (Video)
Ukrainian President Volodymyr Zelensky is due to arrive in Ochakiv soon.
The three Ukrainian vessels seized by the Russian Federation near the Kerch Strait in November 2018 and later returned to Ukraine are arriving at the port of Ochakiv.
The Nikopol boat has arrived first, the local online portal Dumskaya reported. She was towed by the Pereyaslav small-sized reconnaissance ship. Now, two high-speed Willard-type boats are towing the Nikopol ship to the pier.
The second returned boat, Berdyansk, and the Yany Kapu tugboat have not arrived yet.
Local residents have gathered to welcome the ships.
Students and teachers of the Ochakiv boarding school have posted a large Ukrainian flag on the shore.
The Nikopol boat
Ukrainian President Volodymyr Zelensky is expected to arrive in Ochakiv soon.
Meanwhile, users on social networks have started sharing a video with the arrival of the Yany Kapu tugboat in Ochakiv. It is being towed by the Lidovsky tugboat.
The Yany Kapu tugboat
UNIAN memo. On the morning of November 25, 2018, Russia blocked the passage to the Kerch Strait for the Ukrainian tugboat "Yany Kapu" and two armored naval boats "Berdyansk" and "Nikopol," which were on a scheduled re-deployment from the Black Sea port of Odesa to the Azov Sea port of Mariupol. All 24 crew members on board were captured and charged with "illegal border crossing" under Part 3 of Article 322 of the Criminal Code of Russia (imprisonment for up to six years). Later the Ukrainian sailors were freed and returned to Ukraine in a major prisoner swap between Ukraine and Russia on September 7, 2019.
The ITLOS on May 25 ordered Russia to immediately release the three vessels and return them under Ukrainian control.


ada: The R Package Ada for Stochastic Boosting
Performs discrete, real, and gentle boost under both exponential and
logistic loss on a given data set. The package ada provides a straightforward,
well-documented, and broad boosting routine for classification, ideally suited
for small to moderate-sized data sets.
| Version: |
2.0-5 |
| Depends: |
R (≥ 2.10), rpart |
| Published: |
2016-05-13 |
| Author: |
Mark Culp, Kjell Johnson, and George Michailidis |
| Maintainer: |
Mark Culp <mvculp at mail.wvu.edu> |
| License: |
GPL-2 | GPL-3 [expanded from: GPL] |
| NeedsCompilation: |
no |
| CRAN checks: |
ada results |
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=ada
to link to this page.


drag_handle
draggable ({{draggable.effectAllowed}})
only with handle DISABLEDdrag_handle
draggable ({{draggableWithDragImage.effectAllowed}})
only with handle DISABLED
MY_CUSTOM_DRAG_IMAGE
draggable ({{draggableWithDragImage.effectAllowed}})
I'm the drag image but pssst


BrowserAnimationsModule
.
NuiBusyModule
To add a busy overlay to some page content, add an nui-busy
attribute to the direct parent of the content to be overlaid.
By default an <nui-spinner>
component will be placed
at the center of the busy overlay.
nui-busy
attribute
To replace the default <nui-spinner>
component, instantiate your own
<nui-spinner>
and place it as a direct child of the element that has the nui-busy
attribute.
You can set any <nui-spinner>
inputs to customize it.
To replace the default spinner with an <nui-progress>
component,
instantiate an <nui-progress>
and place it as a direct child of the element that has the nui-busy
attribute.
You can set any <nui-progress>
inputs to customize it.


Contact Form
If you have any questions or comments about my work or the site, or if you are a publisher or fellow artist with a business inquiry, please submit them here using the form below.
If you have any questions or comments about my work or the site, or if you are a publisher or fellow artist with a business inquiry, please submit them here using the form below.


Rabbit VM RFC
1 Why?
I would like to make a RISC architecture that is capable of comfortably sitting on top of nearly any other architecture. If it's possible to compile to Rabbit, then a program can run on more or less any hardware or virtualized architecture.
Rabbit can be optimized per-architecture, while maintaining the same interface. It may, for example, take advantage of Intel's SIMD behind the scenes.
2 What?
2.1 Definitions
space: A register or memory location.
2.2 Registers
Registers are 32 bits wide.
| Value | Register | Use |
|---|---|---|
0x0 |
zero |
Contains 0. MIPS style. |
0x1 .. 0x9 |
r1 .. r9 |
General purpose. |
0xA |
ip |
Instruction pointer. |
0xB |
sp |
Stack pointer. |
0xC |
ret |
Returned value. |
0xD |
tmp |
Temporary register. |
0xE |
flags |
Flags used for comparison. |
2.2.1 Flags
| Bit | Flag | Meaning |
|---|---|---|
0x0 |
SF |
Sign flag. On if sign bit of result is on. |
0x1 |
ZF |
Zero flag. On if result is zero or numbers were the same. |
0x2 .. 0x20 |
Reserved. |
2.3 Instruction set
2.3.1 Real instructions
When it makes sense, the destination register is the first argument to an
instruction. The last argument to the following instructions may also be an
immediate value, denoted with a prefix of $
: move
, add
, sub
, mul
, div
,
shr
, shl
, nand
, xor
, br
, brz
, brnz
.
| Value | Instruction | Usage | Explanation | Description |
|---|---|---|---|---|
0x0 |
halt |
halt |
Stop the execution of the machine immediately. | |
0x1 |
move |
move %rB, %rC |
r[B] := r[C] |
Move one space into another. |
0x2 |
add |
add %rA, %rB, %rC |
r[A] := r[B] + r[C] |
Add two spaces into a third. |
0x3 |
sub |
sub %rA, %rB, %rC |
r[A] := r[B] - r[C] |
Subtract two spaces into a third. Sets flags. |
0x4 |
mul |
mul %rA, %rB, %rC |
r[A] := r[B] * r[C] |
Multiply two spaces into a third. |
0x5 |
div |
div %rA, %rB, %rC |
r[A] := r[B] / r[C] |
Divide two spaces into a third. |
0x6 |
shr |
shr %rA, %rB, %rC |
r[A] := r[B] >> r[C] |
Shift right one space a number of times. |
0x7 |
shl |
shl %rA, %rB, %rC |
r[A] := r[B] << r[C] |
Shift left one space a number of times. |
0x8 |
nand |
nand %rA, %rB, %rC |
r[A] := not(r[B] & r[C]) |
NAND two spaces. |
0x9 |
xor |
xor %rA, %rB, %rC |
r[A] := r[B] ^ r[C] |
XOR two spaces. |
0xA |
br |
br %rC |
goto r[C] |
Branch. |
0xB |
brz |
brz %rC |
if (ZF set) goto r[C] |
Branch if ZF is set. |
0xC |
brnz |
brnz %rC |
if (!(ZF set)) goto r[C] |
Branch if ZF is not set. |
0xD |
in |
in %rC |
r[C] := getchar() |
Read one character from stdin into a space. |
0xE |
out |
out %rC |
putchar(r[C]) |
Print one character from a space to stdout . |
2.3.2 Assembler macros
The last argument to the following macros may also be an immediate value,
denoted with a prefix of $
: cmp
, not
, push
, call
.
| Macro | Usage | Expansion |
|---|---|---|
cmp |
cmp A, B |
sub %tmp, A, B |
not |
not A, B |
nand A, B, B |
or |
or A, B, C |
(A nand A) nand (B nand B) |
and |
and A, B, C |
nand A, B, C // not A, A |
push |
push A |
move (%sp), A // sub %sp, %sp, $1 |
pop |
pop A |
add %sp, %sp, $1 // move A, (%sp) |
call |
call A |
push %ip // br A |
ret |
ret |
pop %ip |
2.4 Addressing modes
There are two addressing modes: %reg
and (%reg)
. The former uses the value
in the register, and the latter uses the word at the address in the register.
3 How?
3.1 Instruction formats
instr %rA, %rB, %rC instr %rA, %rB instr %rA
+-----Immediate bit |+----Addressing mode bit C ||+---Addressing mode bit B |||+--Addressing mode bit A |||| +Dead space+ regB vvvv vvvvvvvvvvvv vvvv IIII MDDD<PHONE_NUMBER>00 CCCCBBBBAAAA ^^^^ ^^^^ ^^^^ Opcode regC regA VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Immediate value
Every bit in "Dead space" must be turned off. If one is turned on, the result is undefined.
If the immediate bit is on, then the instruction disregards rC
and instead
looks for its third argument in the 32 bits after the first instruction. For example:
1: 0001 1<PHONE_NUMBER>00000 0001 0000 0000 2: 0000 0<PHONE_NUMBER>00000 0000 0000 0111
represents a move
instruction with the immediate bit set. It will therefore
look for an immediate value in the following word (in this case, the value is
7), and then store it in r1
.
Addition works in a similar fashion:
1: 0010 1<PHONE_NUMBER>00000 0001 0001 0000 2: 0000 0<PHONE_NUMBER>00000 0000 0000 0001
represents an add
instruction with the immediate bit set. It looks for an
immediate value in the following word (in this case, 1), adds it to the value in
r1
, then stores the result in r1
. So this instruction would be an increment
instruction.
The addressing mode bits are simple; if a register's addressing mode bit is on, then the address in the register is dereferenced when the instruction is being executed, and that data is used instead. For example:
1: 0010 0<PHONE_NUMBER>00000 0111 0001 0000
Performs an addition operation that adds the contents of zero
with r1
and
stores the result in memory at the address in r7
.
3.2 Stages of compilation
3.2.1 TODO Preprocessing
The preprocessor will be responsible for macro expansion and label to address translation. Macros exist in the form of instruction expansions, done behind the scenes.
3.2.2 TODO Peephole optimization
3.2.3 TODO Assembling
3.3 TODO
3.3.1 Floating point
Floating point computation is left to the client (an exercise for the reader, if you will).
3.3.2 Memory layout
The memory layout is completely flat right now.