わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

メールアドレスをワイルドカードで

 昨日の情報処理科目のテーマは「電子メールシステム」でした.
 しかし実のところ,「電子メールの仕組み」と題する資料と,課題を合わせて90分というのはなかなか難しいです.もっと短い時間で,終わってしまいます.
 そこで昨年度は「ソーシャルメディアと電子メール」という資料を作成しました.内容の中心を占めるのは,YouTubeだとかTwitter*1だとかのソーシャルメディアです.そうして最後のスライドで,アカウント名がメールアドレスだったり,認証の手続きでメールの送達確認が含まれたりしていて,これからもメールは使われるんだよ,アカウント漏洩のないようにしようねと,もっていきました.
 今年度は3番目の資料として,「ワイルドカード」を新たに作成しました.
 作成のきっかけとなったのは,{ }とカンマを使用した,メールアドレスの表記です.具体的には(ただし架空のメールアドレスで)「{aho,baka,manuke}@example.org」と表記すると,「aho@example.org」「baka@example.org」「manuke@example.org」の3つのメールアドレスを意味します.学会の予稿で,共著者が同じドメイン名のときに見かける表記です.なのですが「{aho,baka,manuke}@example.org」をこのまま,メーラの宛先に貼り付けると,基本的にはうまくいきません.分けて(または一つのメールアドレスを取り出して),指定する必要があります.
 なのですがなのですが,集合の外延的表記を借用したこの記法は,ワイルドカードではありません.情報処理で関連する用語は「グロブ」です.https://docs.ruby-lang.org/ja/latest/class/Dir.htmlの「Dir.glob("{b,f}*")」のようなコードです*2.その一方で,wikipedia:グロブには「{」「}」の文字が出現しません.
 いろいろ考えて,資料はワイルドカードを中心としました.文字と文字列の違い,?と*,パターンマッチ,{前方,中間,後方}一致のあとに,最後にワイルドカードとは別のパターン表記として,正規表現と,{ }とカンマを例示しました.
 電子メールの回の演習課題は,毎年恒例です.Moodleでは,課題ではなくページとして,指示を掲載します.学生は,まず答案を作成し,それを自分宛てに送ります.届いたメールを,メーラの機能で主担当教員宛てに転送します.件名には「Fwd:」または「Fd:」が付くので,受け取った教員の側では,他のメールと区別して答案管理ができます.
 課題案を作成し,2クラスの教員に連絡したところ,今年度からという先生より要望が出ました.大学のメールアドレスからの送信に限定してほしい,というのです.
 それはごもっともです.そこで課題案に指示を追加する際に,ワイルドカードが使えることに気づきました.「*@wakayama-u.ac.jpのメールアドレスから送付すること(それ以外のメールアドレスからだと,教員が受領できない場合がある).」と書きました.

*1:昨年度の資料のTwitterスクリーンショットは,トランプ大統領でした.今年度は,フォロー数1.1億の,ジャスティン・ビーバーにしました.

*2:zshのコマンド実行でも利用可能です.よく「cp file.txt{,.orig}」のようなコマンドを実行しています.