外国人向けに書道体験させるときメモ

何度か大学で外国人向けに書道を教える機会があったので役に立ちそうなことをメモしておく。

教室の状況

9月入学で10月から授業を取り始めた主に外国人留学生を主体とするクラス。講義は英語で行われる。 日本人学生も聴講可能であるが、似たテーマで日本語で行われるクラスもあるので日本人学生の数は少ない(1クラス約25人中3-4人程度)

お話ネタ

単に書道体験というだけではなく日本の書道について少し喋った。

ひらがなについて

外国人でもひらがなくらいは一応しってるかなーくらいの気持ちで興味を持ってもらえるんじゃないかと思ってテーマとして選定した。

  • ひらがなは日本独自の文字であること
  • 学生たちの多くは日本語の授業をとっており、講義の段階である程度ひらがなは読める状態
  • とりあえず普通のひらがなを読ませてみる
    • 割とすんなりと読んでくれた(読めないケースもあると思うので対応を変える必要がある)
    • 「君の名は」で出てきた「たそかれと われのな問ひそ・・・」を読ませてみたが多分なんのネタかわかった人はいなかったかもしれない
      • ひらがなを写したスライドの背景は彗星のイラストにした
  • 変体仮名で書かれた蕎麦屋の暖簾(「きそば」と書かれたもの)を移してみる
    • これもひらがなですよ、よめる?ときいてみる
    • 当然日本人学生も含めて誰も読めない(筆文字だが「き」だけは辛うじでよめる)
    • そ(楚)、は(者) と読むことを伝えるとみんな混乱して教室がざわつく
    • そばの写真を移してどういうことなのか説明しますという
  • 変体仮名というものを登場させる
    • 「変体」を強調していうと、ウケが良い
    • Hentaiは割りとどこの国の人でも知ってるっぽい感じがした
    • Hentaiのtaiは「態」であって字が違うよって教える
  • 「か」の変体仮名を10種類ほど登場させる
    • みんなをビビらせるといいかもしれない(こんなに覚える必要があるのか、的な不安)
    • 直後に変体仮名の方はもう誰も使ってないのでとりあえず覚えなくていいし日本人も誰も覚えてないって言う
  • ひらがなの歴史について語る
    • 昔は日本には文字がなかったこと(厳密にはあったが面倒なので割愛)
    • 中国から漢字が輸入されたとき、日本語の音を漢字に割り当てたこと
    • しかし、漢字では表せない言葉があった→音だけ借用する万葉仮名を作り出したこと
    • 万葉仮名は漢字で画数多いし書きにくいので書きやすいようにくずし字を使用するようになったこと
  • もう一度「か」の変体仮名のスライドを見せる
    • 字母付きで見せる
    • 漢字は同じ音の物がいっぱいあるからたくさん同じ音のひらがなができたことを語る
    • 明治までは普通に使われていたけど近代化のときに使われなくなって、現在の「か」だけが残った

道具の扱い方

いきなり書けと言われても困ると思うので道具の準備の仕方などを説明した。

  • 道具を準備
    • 事前に教室の前の方に必要なものは準備しておいた
    • スライドにとっていくべきものと数を明示しておくと良さそう
    • 筆、文鎮、墨汁、下敷き、紙、墨池、
    • 新聞を机に広げる→下敷き置く、墨地を置く、墨汁を注ぐ、筆を墨汁に浸す
    • 墨汁は結構みんな注いでくれないのでケチらずドバっと入れるように促す
    • みんな筆に墨もあんまりつけないのでビビらず根本までつけるように促す
    • つけすぎた墨は墨地の縁で滴らないように適当に落とすように指導
  • 紙を置かせる
    • 紙は手触りを確認させて裏表を確認させる
    • 文鎮を置かせる
  • まっすぐ縦線、横線を引く練習をさせる
    • 実演する
  • 時間があったら払いや跳ねも練習すると良さそう

お手本

事前課題として「好きな日本語の言葉」を挙げてもらってそれを体験のときに書くような漢字にした。 最終的に色紙に書いて各自持ち帰るようなかんじ。

  • 朱墨で書いた
    • 特に外国人だと見たこと無い人多いので珍しがる
  • 筆順も示してあげる(ボールペンで)
    • 特に何も考えずに言葉を選んできて画数がめちゃくちゃ多い人もいる

単語帳

説明するときに便利な言葉を羅列しておく。 たぶんけっこう間違っていると思うが通じればあまり問題ない。

  • character - 文字
  • angular - 角ばった(感じなどカクカクした感じ)
  • curvy - 丸みのある(ひらがなとかの丸い感じ)
  • gradually - 段々と(徐々に太くなる線を指すときに使える)
  • ink - 墨汁
  • hard to wash out from clothing - 洗濯しても落ちにくい
  • spread - にじむ(墨汁付けすぎるとにじみますよ、的な)
  • dunk - (筆を墨汁に)つける
  • drip - ぽたぽた垂れる
  • extra ink - 余分な墨汁
  • be reserved to ~ - ~することに躊躇する
  • fill the pod with ink - インクを墨池に入れる
  • smooth(rough) side - つるつる(ざらざら)な面(紙の裏表の判別)
  • stroke - 線を引く
  • tip of brush - 筆の先っぽ
  • special paper - 色紙

反省点

  • 安すぎる紙だった
    • smartvalueの1000枚で900円くらいのやつだった
      • smartvalueって本当になんでもあってすごいとは思った
    • ツルツルすぎて筆が滑りまくって練習が辛いと思った
    • 一応裏面を使えばざらつきがあって表面より書きやすいけどいきなり裏技的な感じで説明が面倒なのでそのまま表面でやった
    • せめて表面にもある程度ざらつきがある程度あればなんでもいいと思う

MacbookProのOSをMountain LionからYosemiteにあげbrewが動かなくなったので直す

今頃になって会社PCのOSを最新にした。色々会社用の設定をしなくてはいけなくて面倒だったけど、MountainLionだと動かないアプリが存在したためしょうがないからYosemiteにアップグレードした。

めでたく目的のアプリは動くようになったわけだが何かと色々と調子が悪い。そんな中でもbrewは非常に重要なコマンドであるにもかかわらず、Yosemitizeしたら動かなくなってしまった。 色々情報が散らばっていたのでまとめておく。

症状

rrt.hateblo.jp

stackoverflow.com

直し方

上記 http://rrt.hateblo.jp/entry/2014/10/19/031312のまとめ

cd $(brew –-repository)
git fetch origin
git reset --hard origin/master

キーボード操作だけでGoogle Chromeのアドレスバーへ行ってしまったフォーカスをページへ戻したい

tr; dr : chrome://settings/searchEngines に行って「その他の検索エンジン」の「追加」を押し、 URLの部分に javascript:、 キーワードに適当な英字を設定する(全角版も登録しておけばIMEを気にせず操作できる)。そうすればアドレスバーにそのキーワードを打ってエンターすればフォーカスが戻ってくれる。

Google Chromeの操作をVi風にしていると、どうしても他の操作も極力キーボードのみで操作したくなる。

私が入れたchrome 拡張

入門vi 第6版

入門vi 第6版

アドレスバーにフォーカスがあるときにページの方に戻れない *1

上記はツールの導入で何とかなったが、割と最近まで表題の問題が残っていた。 アドレスバーにフォーカスがある状態というのは以下の様な状態のこと。

f:id:randyumi:20150124155752p:plain

command(winなら ctrl) + L でアドレスバーにフォーカスを移せるが、意図せず用もないのにアドレスバーへ行ってしまう事がある。 ページにフォーカスが戻らないと上で紹介したvichromeは使えなくなってしまう

何とかして元に戻さなくてはならないが、昔は以下の様な対応をしていた。

  • enterを入力する
    • enterを打ち込むとページが読み込まれ始めて読み込み終わるまで待たされてイライラする
  • tabを押す
    • アドレスバーの横の拡張機能とかブックマークバーに移動してなんかいtabを連打すればいいのかわからなくてイライラする
  • マウスでページのなにもないところをクリックする
    • マウス(or トラックパッド)まで手を伸ばす必要がありめんどくさくてイライラする
  • control + F(ページ内検索)を実行する
    • ヤフー知恵袋かどこかで紹介されていた方法だった気がする
    • どのページにもありそうな文字(aとか)を適当に入力するとページの方にフォーカスが戻っていく
    • ただし、ページに該当箇所がないと依然アドレスバーにフォーカスのまま
    • もちろんヒットした場所にスクロールされてしまうので長いページを見ていた時とかイライラする

しかし、以下superuserの回答を実践していらいだいぶ快適になった。

Google Chrome (Mac) set keyboard focus from address bar back to page - Super User

摘要すると、

  • chromeのアドレスバーにjavascript: alert("mofu");みたいに書くことで任意のjsを実行することができる
  • javascript:でjsを実行するとページ側にフォーカスが戻る
  • だからページにフォーカスを戻したかったらjavascript:とかいてenterすれば良い
  • でも面倒だからこれをもっと簡単にやろう
    • chromeには検索エンジンショートカットみたいな機能がある(g 検索ワードみたいにアドレスバーに入れるとグーグルを検索ワードで検索みたいな機能)
    • これにpを入力するとjavascript:が実行されるようにする
    • 具体的にはChrome設定設定詳細設定を表示検索エンジンの管理から追加できる

こんなかんじになる。

f:id:randyumi:20150124162548p:plain

*1:会社でこの事を発表したがヴィマーは少なく共感を得られなかったためここで改めて発表した。

Java製 OAuthライブラリ Scribe-Javaを試してみた

ScalaのプログラムでOAuthを利用してTwitterのユーザー情報なんかを利用して色々できたらいいなと思った。 調べたところ、Play Frameworkとかに依存したScala向けのライブラリはあるようだった。

Playframework2.0でTwitterやFacebookのOAuth認証を簡単に扱えるplay-pac4jまとめ - 波打際のブログさん

みたいな。

しかし、今回は、フレームワーク非依存にOAuthを利用したかった。Scalaではみつからなかったが、Scribe-javaというJava製のライブラリに巡りあった。

GitHub - scribejava/scribejava: Simple OAuth library for Java

OAuth1.0も2.0も対応していて、Andoridでも使える。更にスレッドセーフな作りになっている安心な逸品。 使い方を少しメモしておく。

準備

sbt使えばlibraryDependenciesに "org.scribe" % "scribe" % "1.3.2"を追加して終わり。

使ってみる

例にTwitterのOAuth(TwitterはOAuth1.0)アプリケーションを作ってみよう。 ライブラリがいるとはいえ、どこかのフレームワークみたいに いつの間にかaccess tokenが手に入っていたみたいな事にはならないので、OAuthの仕組みについてある程度は理解しておく必要がある。

OAuth 2.0でWebサービスの利用方法はどう変わるか(1/3)- @IT 図付きでシーケンスが解説してあった。

サービスプロバイダとつながる

もちろん、Twitterのアプリ登録はすんでいる前提。

Twitter Developer Platform — Twitter Developers

ここからCreate New Appする。

OAuth1.0の大まかな仕組みさえわかってREADMEよめば特に何のことはなくできると思う。

val service = new ServiceBuilder()
  .provider(classOf[TwitterApi.SSL])
  .apiKey("${TwitterからもらったAPIKey}")
  .apiSecret("${Secret}")
  .callback("http://callback/callback")
  .build

ServiceBuilderというビルダーを使って、serviceを作る。このserviceを通してOAuthの処理を進めることになる。

providerでサービスをしているすのだが、有名サービスはひと通り揃っているので、特のここを自分でなんらかするということはほとんどないと思う。対応サービスはREADMEに書いてあった。

ユーザーに認証してもらう

OAuth1.0でユーザーに認証してもらうには、事前に request token というものを取得する必要があり、これを基に認証画面のURLを生成する。

val reqToken = service.getRequestToken()
val authUrl = service.getAuthorizationUrl(reqToken)
  // https://api.twitter.com/oauth/authorize?oauth_token=xxxxxxx

ユーザーさんにはauthUrlに飛んでもらう。後はTwitterさんとユーザーさんがよしなにやってくれる。 ユーザーさんは認証を許可すると、設定したコールバックURLに帰ってくる。

http://callback/callback?oauth_token=yyyy&oauth_verifier=zzzzz

みたいにoauth_tokenoauth_verifierという2つのクエリパラメータ付き。

このoauth_verifierをつかって

val verifier = new Verifier(oauthVerifier)
val accToken = service.getAccessToken(reqToken, oauthVerifier)

とするとアクセストークが得られる。 このアクセストークンは、ユーザーができる操作の一部を移譲してもらったものであるので、取り扱いには細心の注意が必要だ。

なんかしてみる

このアクセストークを使えば、そのユーザーになり代わって何らかの操作ができるようになる。 それを行うためにAPIが用意されているわけで、例にTwitterに投稿してみよう

https://dev.twitter.com/docs/api/1.1/post/statuses/update

なるほど、 https://api.twitter.com/1.1/statuses/update.jsonPOSTでリクエストし、その時のボディはstatus="内容"でいいようだ。

先ほどのaccTokenを利用して

val request = new OAuthRequest(Verb.POST, "https://api.twitter.com/1.1/statuses/update.json");
request.addBodyParameter("status", "hello")
service.signRequest(accToken, request); // OAuth1.0では毎回これやる必要あり。OAuth1.0はhttpsじゃなくても使っていいことになっているため改ざんを検知できるようにしておく必要があるため  https://oauth.net/core/1.0/#signing_process


request.send();

これで完成。簡単。

アクセストークンは一定時間するとexpireしてしまうので、認証が通らなかったら再度ユーザーを認証画面へリダイレクトさせて再度アクセストークンを取得させるとか、細かい仕組みは必要だけれど、これでだいたいOAuthを使ったリクエスト処理はできるようになったであろう。

facebookとか最近のサービスはOAuth2.0だけど、大体に多様な雰囲気でできるんじゃないかな。たぶん。気分が乗ったら追記します。

ターミナルでキッチンタイマーを使う (要約)sleep 60; say finished;

ちょっと思いついたネタをメモ。

お仕事中お茶をよく飲む。紅茶とか緑茶とか。ティーバッグを利用するので浸出をある程度の時間待たなければならない。
そうして放っているうちに茶葉を取り出すのを忘れちゃって渋くなったりする。悲しい。

そこで手軽にタイマーを使いたいと思った次第。
これ書いている時間にダッシュボードウィジェットインストールすれば良かった。
全部キーボードでできて鬱陶しくない。

やり方

  • control + spaceでspotlight起動
  • terminal (なんでもいいからターミナル起動。私はiterm)
sleep ss(秒数); say finished;

こうするとss秒後に「finished」と言われて終了する。
いつもイヤホンしている人じゃないと使えないかも。
以上。

追伸:
eposでテキスト読み上げ - 橋本幸樹の無愛想な日記
これつかえばubuntuとかでもできますね。

Eclipseのvimプラグイン(vrapper)で正規表現検索をする

Eclipseにはvi風の入力を可能にするvrapperというプラグインがあります.
Vrapper — Vim-like editing in Eclipse

help -> install new softwareに

http://vrapper.sourceforge.net/update-site/stable

でインストールできます.ツールバーのvrapperのアイコンをトグルすることで有効・向こうが切り替えられます.簡単ですね.

まあ快適.vimでは使えない機能もあるけれどもvimmerではないライトvim使いの私程度であれば問題なく使えます.



ちょっとしばらくわからなかったのがvimだとコマンドモードで

/${regex}

みたいに/に続けて正規表現を書けば正規表現で検索されますが,vrapperだとそうはいきませんでした.

ぐぐってみたらすぐ出てきた.なんで英語でググるということを最初にしなかったのだろう.

Vrapper — Vim-like editing in Eclipse

vrapper有効にした状態で

:set regexsearch

または

:set res

正規表現検索が有効になる.無効にしたい場合 :set no~みたいな感じ.

ほかにもいろんなオプションがあるけれど本家vimとは異なるようなので注意.

入門vi 第6版

入門vi 第6版

vim自体は慣れるまで1週間ぐらいかかった.
最初は少し戸惑うこととかあって,なんらかのきっかけがないとなかなかできない.つまんない研修とかでコーディングとか文字入力とかしなければならない時にvimで書いてみるのがいいのではないでしょうか

YBR125の後ろに箱を付けた

トップケースだとかリアケースだとかリアボックスとかいろんな名前で呼ばれている感じで正式名称がよくわからない,バイクの後ろにつける箱.

以前後ろから車に当てられてグラグラになってしまっていたので,交換した

GIVIとか有名?メーカーのものを買うと非常に高価.

GIVI(ジビ) E300N 未塗装ブラック 70430

GIVI(ジビ) E300N 未塗装ブラック 70430


7500円也(閲覧時).

同程度の容量でこちらは2000円ぐらい


どうしてこんなに価格の差が出るのか.剛性などが違うのだろうか.

ちなみに,ワンタッチで着脱可とか書いてある安いリアケースは鍵がないと閉められない機構になっている(全部とは断言できない)
一方今回購入したのは↑のような鍵なしでも閉められるもの(ただし,開けるときには鍵がないと開けられないので閉じ込め注意.)

取り付けてみる

今回取り付けるのはYBR125というヤマハのバイク.
箱は荷台に固定することになるので,まずは荷台を取外す.取り外さなくても作業できるかもしれないが,難航することが予想される.
大体のバイクはリアシートの下のところで荷台を固定しているので,先にシートを取り外す.

シートを外すためにはサイドカバーをはずさなければならないので,
f:id:randyumi:20130928110149j:plain
下部がネジで固定されているので,ゆるめて外す.
反対側はキーで開けるようになっている.バッテリーの盗難防止用だろうか.
シート下がささやかな荷物入れになっている場合,キーを回せばシートが相手しまうでしょう.

シートを外す
f:id:randyumi:20130928110236j:plain
似たようなボルトが2本並んでいますが,右側のシートを固定している感じのほうのボルトをゆるめましょう.
こちらは10mmのレンチで緩められます.

f:id:randyumi:20130928110452j:plain
3箇所で固定されています
こちらは12mmだったと思います.

ようやく荷台が外れたら,いよいよ台座を取り付けます.
f:id:randyumi:20130928112022j:plain
このように台座には穴がたくさん空いている.この穴から荷台の枠に合うようにネジボルトを挿入し,固定金具で固める.
まだ1箇所しかつけていませんが,横着しないでちゃんと4箇所で固定しましょう

あと,今回購入したものについていたボルトは六角レンチで締めるものだったのでこれも必要です.
私の用途ではダイソークオリティのもので十分なのでそれを愛用しています.ダイソーのドライバーで買うと緩すぎてすぐになめちゃったり,そもそも回せなかったりするのに,六角レンチはなかなか優秀です.個体差なのでしょうか.


注意点

  • 固定金具はナットで固定するが,このナット,緩み防止のために片方の口にゴムが溶着されている

とても硬いので,手では絶対に回せない.さらに,あまりに硬いので荷台を何かに固定しないと作業しにくいが,我が家にそんな器具は存在しない.という訳で,同じ大きさのゴムとかついていない普通のナットで固定し,更にその上からゴム付きのナットで固定した.これも10mmのレンチで回せる.

  • 締めすぎ注意

余り強く締めすぎると台座が変形してしまい,結果,箱を固定するための穴がずれてしまう.


台座を固定できたら先ほどとは逆の手順で荷台を固定しなおして作業完了.大体1時間ぐらいでしょうか.
戻すときは,特に荷台の方はしっかり固定しましょう.かなり振動が伝わる位置なので,走行中に外れたりしたら大惨事です.
ただ,シートの固定ボルトは締めすぎてねじ切ってしまった経験があるので気をつけましょう.
トルクレンチとかあるといいんでしょうけど.誰か買ってください

こんなやつ.高い.

GREATTOOL トルクレンチ GTSA‐3025TR

GREATTOOL トルクレンチ GTSA‐3025TR