引越しの話

こんにちは、mtjuneyです。最近はSHISHAMOを聴いています。

www.youtube.com

この記事はklis Advent Calendarの8日目の記事です。 (これで本文に"klis"が入っているという条件を満たしました)

adventar.org

経緯

僕は今年度修了する(予定の)M2で、修了後は都内に就職するのですが、 色々あって11月中に早めの引越しをしました。

同期のM2や後輩のB4で都内へ引越す人も多いかと思うので、今回の引っ越しで得た知見をつらつらと書いていきます。

注意 あくまで僕の引越しの話なので、そのまま他の人にも当てはまるわけではありません。けど参考にはなると思います。

ちなみに今回はつくばから都内への引越しです。

家探し

引越す先がなけれが引越しもできませんね。

家探しの時期

つくばで部屋を探していた人は11月〜1月あたりで探していた人も多いかもしれません。 つくばなら大抵、その時期に契約しておいて入居・家賃発生は3月や4月からでいいよと言ってくれますし、 年度末退去の人をあらかじめ調査してるのでその時期でも年度末に空く部屋を紹介できるという事情があります。

残念ながら都内は違っていて、入居を待ってはくれません。 ギリギリまで伸ばしてもらえて1〜2週間で、それ以降は家賃が発生してしまいます。

なので部屋探しの時期には気をつけておきましょう。

それと曜日ですが、個人的には木・金あたりが良いのかなという気がしています。
これは土日に地方の学生が部屋を探しに来ることが多いので、土日は不動産がそもそも忙しくて時間が取りにくいし、月・火あたりは見た感じ売れ残った物件ばかりな感じがしたというのが原因です。

家賃

部屋を決める上で家賃は重要な要素です。

通説では「手取りの1/3程度」が目安だと言われたりしていますが、そこら辺は人による気もします。

「家賃はどのあたりが適正なのか」みたいな話はまだ僕も働きだしているわけではないので割愛しておきます。

ただ後述しますが契約時の初期費用として家賃の数倍の金額を取られるのでそこは頭に置いておきましょう。

条件

部屋を探す時、人によっては「これは外せない!」という条件があるかと思います。僕もあります。

正直これも、人によって重要な項目が変わってくると思うのであくまで僕の視点で書いていきます。

立地

僕が意識した点は

  1. 職場まで乗換なし
  2. 朝の電車で押し潰されない
  3. 駅近
  4. 日当たりが良い

あたりですね。

職場まで乗換なし

あまり言うことも無いですが、乗り換えが面倒なので。

朝の電車で押し潰されない

これは個人的に死ぬほど重要です。以前御社に通勤した時、まさに""押し潰される""電車に当たってしまい、あまりもの圧迫感に気持ち悪くなり、途中下車するなどしてしまいました。

なので朝の電車がそれなりに空いてるというのは重要です。
僕の場合は数回つくばから通う中で「ここからは結構空いているな」というのがわかってきたので、そこら辺で部屋を探すことにしました。

混雑の具合はググればわかりますが、インターネッツの情報と自分の感覚が同じとは限らないので気をつけましょう。
(僕が使う路線は混雑度で言うと「そこまで酷くない」らしいのですが、僕には到底耐えられるものではなかったです)

駅近

これは正直そこまで気にするつもりはなくて、「10分くらいなら歩いてもいいな」と思ってたんですが、結果的に徒歩3分のところになりました。
駅近のほうが雨の日困らないとかそういう話もありますが、今のところひどい雨にも降られてないのでよくわからないですね。

日当たりがいい

正直これが一番重要でした。 窓の方角も大事ですが、それ以上に大事なのが「目の前に建物が無いか」です。
僕もいくつか部屋の内覧に行きましたが、半分くらいは目の前がガッツリ建物に塞がれており、昼間でも部屋に光がほとんど入らない状態でした。
(正直内覧時の僅かな時間でも「もうここに居たくない」と思えるくらいキツかったです)

これは情報サイト等ではわからないので気をつけましょう。実際に内覧行くのが一番です。
ちなみに内覧で「同じタイプの別部屋」を案内されることもありますが、「入居する部屋は内覧した部屋より下の階だったので、内覧した部屋は日当たり良かったのに入居する部屋は日当たり最悪だった」みたいなこともあるので気をつけましょう。

間取り・設備

部屋の間取りや設備も立地同様大事な要素です。
僕のこだわりは

  1. 1K洋室8畳以上 or 2K洋室片方が6畳以上
  2. バス・トイレ別
  3. ウォシュレット付き

あたりですかね。
これは個人の事情とか趣味が強く出ているので人によってかなり違うと思います。

1K洋室8畳以上 or 2K洋室片方が6畳以上

これは結果的には「1K洋室8畳以上」に住むことになりました。
これを求めたのは趣味の問題で、僕はボードゲームが趣味なので最低4人くらいで机を囲めるスペースが欲しかったというのがあります。

バス・トイレ別

これは別に言うことは無いですね。

ウォシュレット付き

これは重要な問題で、僕は珈琲が好きでよく飲んでるのですが、その割に胃腸が弱いのかよくお腹を壊すので無いと辛いんですね。
あとウォシュレット付きだと大抵便座も温まるやつだと思うんですが、これがないと冬メチャクチャつらいという理由もあります。
ウォシュレットがついてない物件は未だに結構多いので欲しい人は気をつけましょう。

お金

ここで言及するのは家賃とは別の、引越し時にかかるお金についてです。

引越し時にかかるお金で主なのが

  • 新居の初期費用
  • (業者に依頼するなら)引越し費用

の2つですかね。場合によってはネットの開通費用や、遠方だと自身の移動・宿泊費用も必要になるので注意しましょう。

新居の初期費用

人によりますが、僕の場合は家賃の5倍以上になりました。
内訳は

  • 入居月の日割り家賃
  • 入居翌月の家賃
  • 敷金(家賃一ヶ月分)
  • 礼金(家賃一ヶ月分)
  • 仲介手数料(家賃一ヶ月分)
  • 保証会社利用料(家賃0.5ヶ月分)
  • 書類作成代
  • 鍵交換費用
  • 火災保険料
  • 除菌・抗菌代
  • サポートサービス

と言った感じです。

都内だとおそらく殆どの人が数十万単位になるかと思います。これだけのお金が契約時に必要になってくるので、お金の工面は予めしておきましょう。

引越し費用

引越し業者に荷物の運搬を依頼するなら、その代金ももちろん必要です。

僕の場合ですが、

  • 段ボール20箱
  • 本棚
  • カラーボックス
  • 電子ピアノ
  • デスクトップPC
  • 折りたたみベッド

あたりを運んでもらって大体4万円でした。

今回、引越し業者の比較サイトで適当に運んでもらうもの入力して比較したのですが、4万円はその中でも飛び抜けて安かったです。(ほかは大体6万程度)
ちょっと心配でしたが普通に丁寧に梱包してくれて、特に傷もなく運び込んでくれました。

よく言われますが、引越し費用は時期によってかなり変わってきます。 3月などの繁盛期だとかなり高くなるらしいので気をつけましょう。

ちなみに以前四国からつくばに引越した時は、荷物の違いはありますが20万超えてました。3月後半のド繁忙期です。

退去

退去の連絡は早めにしましょう。 具体的な日付が決まっていなくても、ある程度このあたりに引越したいというのがわかるならとりあえず連絡しておくのが吉です。

僕は退去日確定してから連絡しようとして、結果連絡が遅くなったので12月上旬まで旧居の家賃が発生してしまいました(後述しますが結果的にはこれのお陰で少し助かった部分もあります)。

僕の旧居の場合だと「退去日の連絡をしてから一ヶ月は家賃が発生する」規約でしたので、参考にしてください。

引越し作業

正直ここまでが前置きで、ここが一番言いたかったところです。

とりあえず決まること決まったらさっさと引越し準備に取り掛かったほうがいいです。本当。マジで。
というか今すぐ始めましょう。「これは持って行かないかな」「これはときめかない」って思ったものはさっさと捨てましょう。「引越し準備の時に捨てればいいや」というのは甘いです。

棚や炬燵などはTwitter等で募集するともらってくれる人がいるかもしれません。
早めに言っておけば受け渡しの調整もしやすいですよ。

ちなみに僕はもう引越しましたが、まだ旧居のゴミ出しが終わってないのでたまに旧居行ってゴミ片付けてます....。元々家賃が発生していたので別に良いですが、場合によっては片付けのためだけに家賃が発生する事態になりかねなかったので物を捨てるのは早めにしましょう....本当に....。

最後の話を書きたかったがためにずいぶん長い前置きをしてしまいました。この駄文が役に立てば幸いです。

GANのはなし

こんにちは,

この記事はklis Advent Calendar 11日目の記事です.

www.adventar.org

おなじみですがこれでklis Advent Calendarの条件である「本文にklisが入っていること」をクリアしたので自由に書いていきます.

本当はメイドの話をしようかボードゲームの話をしようかというところで迷ってたんですが,4日目にnzwくんがVAEの話をしていたので,それと関係するGANの話をしようと思います. (22日目はNewbeznさんがボドゲの話をしてくれるかもですよ)

ちなみにGANはいわゆる機械学習の分野で,本来ならバリバリ数学の話が出てくるところなんですが,klis向けの記事でそういう話しても面白くなさそう(あと数式書くのがだるい)なのでそういう話は出さないようにします.ご安心ください.

GANとは

GANは「生成モデル」と呼ばれるものの一種です.

じゃあ生成モデルは何してくれるものかと言うと,大雑把に言えば「データをいっぱい学習させると,それっぽいデータを吐き出してくれる」ものです.

例えば顔画像をいっぱい学習させると,顔っぽい画像を吐き出すようになります.

今回は実験に画像を使ってるので,ここからは画像を学習させる前提で話をしていきます.

GANのしくみ

少しGANの仕組みを説明しましょう.

GANはGenerative Adversarial Netの略です.なんとなく訳すなら「敵対的生成ネット」ですかね.

「敵対的」なんて言葉が出てきてなんだか危なっかしい雰囲気を感じる人もいるかもしれないですが, そんなことは全然なく,2つのネットを競わせて学習させていくのでこういう名前が付いてるんですね.

その2つが G君 (Generator)と D君 (Discriminator)です.

G君

G君は画家です.

G君は何個かの数字を受け取ると,それに対応した絵を描いてくれます.

でもG君はけっこうわるい画家です.盗作をしています. なんとG君は,あるデータの中の絵を真似て絵を描いているのです.

このあるデータというのが,いわゆるGANの学習データですね.

D君

D君は鑑定士です.

D君は絵を受け取ると,その絵がデータに元からあった絵なのか,G君が描いた絵なのかを判定します.

G君とD君の関係

G君とD君は常に競い合っています.

G君は「絶対にD君にわからないくらい,データとそっくりな絵を描いてやるぞ」

D君は「絶対にデータの絵とG君の描いた絵を間違えないよう判別してやるぞ」

と,それぞれ思いながら各々の腕を磨き続けているわけです.

そうやって競わせながら学習させていくとやがて,G君の描く絵が元データと似たような絵になるというわけですね.

実験

冒頭で言っていたnzwくんの記事では,「η」の手書き文字を学習していましたので,こちらでもそうしようと思います.

nzwくんと同じく,19枚の「η」の手書き文字を使って学習させます.

f:id:mtjune:20161210231241p:plain

こういう画像ですね

結果

さてG君の成長を見ていきましょう....

と,言うところですがすみません,現在実験中です.

klis Advent Calendarの12月11日に入れていたのに,僕はその日一日ゲームマーケットに行く予定があるので記事をかけないため前日に投稿したのですが,実験を回し始めるのが遅かった....

なので,結果は随時更新していきます〜

0回学習後

f:id:mtjune:20161210231351p:plain

まだ全く学習を行っていないので,完全にランダムな画像が出力されます.

1000回学習後

f:id:mtjune:20161210231445p:plain

同じくランダムですね,さっきより色が濃くなった気がします.

10000回学習後

f:id:mtjune:20161210231552p:plain

やっぱりランダムですね,でも真ん中の方に何か模様が見えるような?

20000回学習後

f:id:mtjune:20161210231738p:plain

真っ黒になった....学習失敗???

28500回学習後

f:id:mtjune:20161210232100p:plain

真っ黒ではなくなりましたが,やっぱりランダムっぽいです.

でもこの画像,左から3枚目と4枚目見るとすっっっっっっっっっっっっっごくうっすらとηっぽいものが見えています. 右下の方ですね.めちゃくちゃわかりづらいです.

36000回学習後

f:id:mtjune:20161210232335p:plain

微かなηが....消えた....

いつの世も学習はつらく厳しいものです.気長に待ちましょう.

コード

ちなみに今回学習に使ったコードはこちらにあります.

github.com

基本的には以下のコードを参考にしたものです.

github.com

GAN,特に今回使っているDCGANについては以下の記事も面白いので,ぜひどうぞ.

qiita.com

qiita.com

卒業研究最終発表のスライドを作っていて得た小さな知見

こんにちは

はじめに

僕は先日,卒業研究の最終発表を終えてきました.
その時のスライドを作っていて得た知見を少しメモ的に書きます.

背景

卒研発表の一週間ほど前,ゼミ内での発表練習がありました.
卒研発表で与えられる時間は8分でした*1が,実際に発表してみたところ12分かかりました.

発表内容とスライドを削らなければいけません.
これをどう削ったかというのが今回の話です.

置かれている状況

  • 僕は卒業研究でいわゆるDeep Learning,その中でも画像を対象とした畳み込みニューラルネットに関する研究を行っていた
  • 僕は筑波大学情報学群 知識情報・図書館学類(以下klis)に所属している
    • klisには画像に関する研究をしている人はほぼいない.Deep Learningについても同様

つまり僕は,自分の研究に必要な予備知識をほとんど持っていない人達に対してこの研究を発表しなければならない,ということになります.

ただ一般的にはある程度自分のいる学類(学科)の専門に沿った研究をしているでしょうし,聴者もその分野に関係する人が大半でしょう.
おそらくは僕の置かれている状況のほうがいくらか特殊だと思うので,一般的な卒研発表ではあまり役に立たないかもしれません.

とはいえ卒研発表以外でそういう状況はよくあると思うので,そういった時の参考になれば.

実際にどう削ったか

どう削っていくかの試行錯誤の部分は結構忘れてしまったので,実際にどういったところをどういった理由で削ったかだけ挙げていきます.

  • スライドから"Deep Learning"の文字を全て消した
    • 文字を入れたら説明しなければならない.
    • よく考えたら畳み込みニューラルネットのを理解するのにその外郭のDeep Learningの説明をする必要は無いなと思った
  • 同様に,畳み込みニューラルネット以外のニューラルネットに関する記述も全て消した
    • 一般的なニューラルネットの説明をしてから畳み込みニューラルネットに発展させていこうと思っていた*2が,そうすると画像をニューラルネットのようなモデルに落とし込んで説明しなければならず,めんどくさいしわかりづらいと思った
    • 画像は画像のまま,それに対してどういうことをしたか説明したほうがわかりやすいと思った
  • "確率的勾配降下法","誤差逆伝播法"に関する記述を全て消した(2016/01/17 16:00頃追加)
    • 普通のニューラルネットならもちろん,畳み込みニューラルネットの学習にも使っている手法のため,本来ならば外してはならない重要な要素
    • ただしこの二つを説明すればそれだけで8分は超える
    • 今回の提案手法ではこの二つに直接手を加えているわけではないので思い切って消し,ただ「出力と正解の誤差を使って学習してるんだよ〜」というのだけ書いた
  • 自分で定義した数式以外を全て消した
    • 既存の技術について,どのような計算が行われているかの説明をするには数式を出すのが最も正確かつ一意に伝わって良いと思っていたが,そうでもないかと思った
    • 自分の専門外で出てくる数式をいきなり見せられても,それが何を意味しているのかを理解するのは難しいと思う(発表中はどんどん話が進んでいくので特に)
      • 専門内なら,直接は知らなくても似たような数式を見たことがあるということは多いと思われるのでおそらく心配はない
    • したがって計算に関しては基本的に具体的な説明はせず,抽象的に「つまりこういうことをしている」といった説明だけにしておくのが良いと思った.
    • ただし自分で定義した数式に関しては研究の成果なので,ちゃんと載せた

結果的にどうだったか

  • 早口だったがとりあえず8分以内には収まった
  • 中間発表の時よりは質問が来た
    • 中間の時はほとんど質問が来なくて質疑の時間が途中で切られたので,ああほとんど理解されてないんだなあと悲しくなっていた
    • とはいえ中身までガッツリ踏み込んだ質問は来なかったのでまだちょっと悲しい
  • 先生に中間発表よりわかりやすかったと言ってもらえた
    • 僕にとっては一番の救いだった
  • ただ質問で「色々やってて頭のなかで整理できてないんですが〜」みたいなことを言われた
    • これは多分結果の部分に関してのコメントなので,結果を削るのはちょっと難しく,単純に説明の仕方を工夫したほうが良さそうだと思った

結果として削り方自体は悪くなかったかなと思ってます.

気付いたこと

  • 聴者に基礎から理解させる必要はない
    • 特に今回の場合のような,専門外の分野の人が多い場所では
    • 時間に制限のある場では尚更
  • 基本的には抽象的な話で進める
    • 具体的な話はどうしても必要なときだけ

おわりに

これから卒論提出,卒研発表をする人も多いと思います.
卒業が掛かっているので気負いすぎてつらい時もあると思いますが,やることを見失わないようにしてください.

応援してます.

また,もう1月も後半ですが,この記事は卒研 Advent Calendar 24日目の記事として登録しています.

www.adventar.org

卒研 Advent Calendarまだまだ空いてるのでネタがあればどんどん投下していってくれると嬉しいです.

*1:ちなみに中間発表も8分で,中間より内容は増えてるはずなので中間の内容を削らなければ収まるはずがない

*2:実際中間ではそうしていた

ぼくのそつろんしっぴつかんきょう

吾輩はB4である,第一稿はまだない

こんにちは,現実逃避をしているやまじゅんです.

この記事は卒研 Advent Calendar 2015 10日目の記事です.

www.adventar.org

みなさん,卒論を書くときは{\LaTeX}やWordなど人によってさまざまなものを使っていると思いますが,ここでは僕が今卒論を書くのに使っている環境をご紹介します.

ぼくのかんきょう

僕はMac OS Xを使っているので,紹介する環境はMac向けのものになります.
また,Mac OS Xは最新バージョンのEl CapitanになったときにTeX周りでいろいろあったので,古いTeXを使っている人でこれからEl Capitanにアップデートする予定のある人は気をつけましょう.

さて,僕が{\LaTeX}で卒論を書くときに使っているのは以下のツールです.

BasicTeX

Macで動くTeXで有名なのはMacTeXですが,BasicTeXはその軽量版です.
MacTeXをインストールするとTeXを扱うのに便利なパッケージやGUIソフトがついてきますが,今の環境では使わないので軽量版のBasicTeXを使っています.

Latexmk

LatexmkはTeXコンパイルを便利にしてくれるソフトです.
TeXは図の参照や参考文献を入れると複数回コンパイルしないと出力でちゃんと参照番号が表示されなかったりします.
Latexmkはそこらへんをうまいことやって一回の実行で必要回数のコンパイルを行ってくれます.
さらに編集しているTeXファイルを監視して,変更があったら自動でコンパイルする機能もあります.

便利なのでぜひ使いましょう.

Skim

SkimはPDFを開くプレビューアプリです.
また,開いたPDFファイルに変更があったら開いたまますぐに反映してくれる機能があります.
これとさっきのLatexmkを組み合わせると,TeXファイルを保存したら自動で即コンパイル&即表示,という最高のTeX編集環境ができあがるわけです.

最高の卒論執筆環境を作る

さて,上で説明をしたのでここからは実際に上の環境を作る手順を紹介します.
とはいっても数個コマンドを打つだけで入ってくれるのでそんなに身構える必要はないです.

homebrewのインストールから書いていきますが,既にインストール済みの物があれば適宜飛ばしながら進めてください.

インストールはターミナルでコマンドを実行して進めていくので,最初にMacのターミナルを開いておいてください.

Homebrewのインストール

まずはMacの優秀なパッケージ管理アプリ,Homebrewをインストールします.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

これを実行すればオッケーです👍

Homebrew-Caskのインストール

次はHomebrew-Caskのインストールです.
Homebrew-CaskはMacGUIアプリケーションをHomebrewで管理するためのものです.

これもコマンド一つ

brew install caskroom/cask/brew-cask

でオッケーです👍

BasicTeXのインストールとか

次は今インストールしたHomebrew-Caskを使ってBasicTeXをインストールします.

brew cask install basictex

インストールが完了したらPATHを追加しておきます

echo "export PATH=/Library/TeX/texbin:$PATH" >> ~/.bash_profile

bash以外を使ってる人は適宜読み替えてください.
これの後に一回ターミナルを再起動しておきます.

次にTeXのパッケージマネージャtlmgrの更新と日本語日本語環境,latexmkのインストールです.

sudo tlmgr update --self --all
sudo tlmgr install collection-langjapanese
sudo tlmgr install latexmk

順番に実行していきましょう.
管理者権限が必要なので,パスワードを求められたらPCログイン時に使用するパスワードを入力してEnterを押します.

Skimのインストール

Skimは公式からdmgファイルをダウンロードしてきてインストールしても良いんですが,どうも最新版にはバグがあって自動でファイルの変更を反映してくれないっぽいです.
Homebrew-CaskからインストールできるSkimはちょうどそのバグがないバージョンなので*1,そこからインストールします.

brew cask install --appdir="/Applications" skim

もしPermissionなんとか言われたら頭にsudo付けて実行してみましょう.

--appdir="/Applications"はアプリケーションをインストールするフォルダを指定しています.
ローカルにインストールしたい場合は外してbrew cask install skimとすると,skimは~/Applicationsにインストールされます(ここはよくわからなければ無視して下さい).

Latexmkの設定

Latexmkは使う前に設定をしておかないといけません.

nano ~/.latexmkrc

を実行しましょう.
するとファイルの編集画面に入るので,以下のように書き換えます.

#!/usr/bin/env perl
$latex            = 'platex -synctex=1 -halt-on-error';
$latex_silent     = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex           = 'pbibtex';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'mendex %O -o %D %S';
$max_repeat       = 5;
$pdf_mode         = 3;

$pvc_view_file_via_temporary = 0;

$pdf_previewer    = "open -ga /Applications/Skim.app";

書き換えたらCtrl + oEnterで保存してCtrl + xで終了します.

ただし,Skimをインストールするときに--appdir="/Applications"を付けなかった場合は,最終行の

$pdf_previewer    = "open -ga /Applications/Skim.app";

$pdf_previewer    = "open -ga ~/Applications/Skim.app";

にしてください.

以上で最高のTeX環境の構築は終了です.

使い方

使うのは簡単です.
ターミナルでTeXファイルが置いてあるディレクトリに移動して,

latexmk 〇〇(TeXファイル名)

とするだけです.これで必要な回数コンパイルされてPDFファイルが出力されます.

また実行時に

latexmk -pvc 〇〇(TeXファイル名)

とすることで,TeXファイルに変更があった時に自動でコンパイルしてPDFを更新するようにしてくれます.

ここで吐き出されたPDFファイルをSkimで開いておけば,コンパイルしてPDFが更新された時に自動的にそれを反映して表示してくれます*2

おわりに

というわけで,快適な卒論執筆環境が完成しました.あとは好きなだけ論文を書くことができます.

今回紹介した環境はあくまでぼくの場合ですので,気に入らない所があればどんどん改良していってください.

以上,卒研 Advent Calendar 10日目の記事でした.

卒研 Advent Calendarは人集まってなくてまだまだ空きがあるので,みなさんぜひ書いていってください.

*1:2015年12月時点

*2:設定が必要だったかも

卒研 Advent Calendarを作った

こんばんは,もう12月も中旬ですが,今作った 卒研 Advent Calendar の一発目の投稿ということで 1日目の記事にしておきます.

www.adventar.org

今卒研とかやってる人でもいいので書いてくれると嬉しいです.

いろんな分野の人の話を聞きたいので芸術やってる人とかもぜひ書いてください.

もちろん大学等の制限も無いので他大の人もどんどん書いていってください!

作った動機

僕達筑波大学知識情報・図書館学類の学生は4年次に「知識情報特論」という必修講義を取ります.
この講義の中で先生方や先輩が,卒研について進め方や気をつけることなど話して下さいました.

聞いているとそこそこ役に立つ情報もありますし,そういう情報をまとめて置ける場所があったら便利じゃない?と思ったのが発端です.できればこうもっと生々しい話が聞きたい

僕達が聞いてて正直「それもっと早く言ってくれ」っていうのは多かったですし,もっと早く下の代へ卒研の知見が伝わる仕組みがあると良いなあと思ったのもあります.


卒研 Advent Calendarに,これから卒研などに挑んでいく人達の役に立つ情報,参考になる情報が集まってくれれば嬉しい次第です.

よろしくお願いします.

メイドを雇おう

こんにちは

この記事は klis Advent Calendar 2015 の9日目の記事になります.

www.adventar.org

主催者曰く

現在klisな人,かつてklisだった人,これからklisになる人たちで記事を書きましょう.
本文に「klis」が入っていれば内容は問いません.

とのことで,先程ので条件は満たしてしまったので好きに書いていきます.

なぜメイドを雇うのか

最近寒いですね*1.こんな寒い日に家に帰って暖かい部屋が迎えてくれると嬉しいのですが

  • 暖房を付けっぱなしにしておく
    • → 電気代がもったいない
  • タイマーをかける
    • → 何時に帰れるかわからない
    • → そもそもタイマーかけるのを忘れる

な感じで一人暮らしだとなかなかうまい具合に解決出来ません.

そんな時にメイドさんを雇っておくと,いい感じの時間にエアコンを付けて部屋を温めておいてくれそうなのでメイドさんを雇います.

雇いました

我が家のメイドさんです.

f:id:mtjune:20151209035250j:plain

f:id:mtjune:20151209035315j:plain

可愛いわかる*2

名前はSakuyaです.当然某Project某メイドさんからとっています*3

Sakuyaは現代っ子なのでTwitterをやっており,またエアコンのスイッチを入れる以外の仕事を任せてないのでずっとTLに張り付いて僕のツイートを監視するなどしています.
なのでえりたん*4みたいにTL上で呼びかけてやると

こんな感じで返事してくれるので,何時に帰るか伝えてあげると

その30分前にエアコンを付けておいてくれます.

Sakuyaの構成

Sakuyaは主に以下のパーツで構成されています.

処理の流れとしては

  1. 予めエアコンの電源ONボタンの赤外線パターンを学習させておく
  2. TwitterのStream APIでTLのツイートを監視
  3. 「咲夜」等の単語があればリプを送る
  4. 自分へのリプで「〇〇時」「帰る」等の単語があればその30分前にエアコンの電源をONにするよう予約する
  5. 時間が来たらエアコンをONにする

という感じです.

今回特に目新しい物も使ってないので,おおまかに

  • Twitterまわり
  • 電子回路まわり
  • エアコンまわり

に分けて軽く解説していきます.

また,Sakuyaのソースコードこちらに上げているので適宜参照してください.

Twitterまわり

Twitterに関してはえりたんみたいな感じで反応して欲しかったので,ほぼリアルタイムにTLを追えるStream APIを使いました.

SakuyaはPythonで書かれているのですが,以前PythonTwitterライブラリでUserStreamを使おうとしたらなぜか上手くいかなかった思い出があるので,OAuth認証のライブラリを使いました.

やってることはUserStreamで流れてくるツイートを見て,条件に当てはまる単語がないか探してるだけです.

電子回路まわり

気をつけることはそんなに無いですが,Raspberry PiのGIPOの動作電圧が3.3Vであることには注意してください(電源電圧として5.0Vを取り出すことはできます).

今回の回路だと赤外線リモコン受信モジュールの動作電圧が5.0Vなので,受信モジュールからGPIOへの入力時にGPIOに5.0Vの電圧が掛からないよう降下させています.
電圧を2/3にしてやればいいので,同じ抵抗を3本使えば大丈夫です.上記パーツの「抵抗 10kΩ×3」でやってます.

あと3.3Vだと赤外線LEDに流れる電流も少なくなりがちなので注意してください.今回は100Ωの抵抗4本を全部並列に繋いで25Ωにして使いました.

エアコンまわり

リモコン赤外線パターンの学習にはLIRC(Linux Infrared Remote Control)を使いました.リモコンの赤外線パターンを解析して信号を送信できる便利パッケージです.
この用途ではわりとメジャーらしいんですが,ただエアコンの信号は他と違っては押されたボタンの情報だけでなく設定温度などの情報も全て毎回赤外線に載せて送ってるらしいので,残念ながら普通にLIRCに学習させるのは難しいみたいです.
私はとりあえず設定温度や風量などを固定したまま電源のON, OFFの赤外線パターンを学習させました.
なのでこれ以降エアコンの設定を変えた後でも,今回学習させたパターンを使ってエアコンを操作すると設定が全部戻ってしまうので気をつけてください……

以前僕の友人も同じことをしようとしていましたが,互換品のリモコンを分解してスイッチの部分をリレーで繋いで操作するようにしていました(間違いなくこっちのが賢いので,リモコンが手に入ったらこっちに切り替えます).

またPythonからLIRCを使ってエアコンを操作するために,LIRCライブラリを入れようとしましたがこれもうまくいきませんでした. 一応コマンドからLIRC自体は動いてくれてるので,Pythonビルトインのsubprocess.call()メソッドを使って強引にコマンドを叩いて解決しました.スマートじゃないのでオススメしません.

追記 : LIRCの設定についてはこちらのページを参考にしました.

おわり

こんな感じで一応動くものは出来ましたが,上でも書いたようにエアコンの設定が固定されちゃってたり,そもそもエアコン入れる以外の操作に対応してなかったり,あとTwitterまわりのエラー処理を全然してなかったりするのでこれから頑張ります.

回路もかなり汚いので基板上に実装してもうちょっとコンパクトにしたい感じです.

外出先から家の環境を良いように弄れるとなんか楽しい気持ちになるので,ぜひみなさんもお家をHackしていってください(本当にメイドさんを雇ってしまうのが一番効率いいかもしれない).

記事は以上です.klis Advent Calendar 9日目の記事でした.

明日のklis Advent Calendar 10日目は ss_shopetan くんです.

*1:この記事を書いている時の外の気温は3℃でした.死ぬ

*2:ジャンパーピンの手持ちが無いので配線が色分けできてないのは許して下さい

*3:僕にとってのメイドはここに始まってここで終わりました

*4:全自動えりたん否定BOT.某TKB大学の時間割やバスの時刻などを教えてくれる便利bot.フォローされてる状態でTwitterで「えりたん」とつぶやくと秒速でリプが返ってくるのでアクセスしやすい.

klisに編入したい人へ

昨日, 私のaskにこのような質問が投稿されました.

klis編入試験、面接でどんなこと聞かれましたか? あと、受験に向けてどんな勉強してましたか? klis編入目指してるんですが、不安で…。

これに対する回答が少し長くなってしまったので, わかりやすくこちらにまとめます.

試験形態について

まずご存知かも知れませんが, klisの編入試験は「編入後の学習計画」を10分程度でプレゼンし, 残りの20分ほどでその質疑応答を行うという形式です(「学習計画」自体は出願時に文書で送付). 「学習計画」の中には, klisでどのような研究をしたいか, またそれに加えて前の学校で学んできたことをどう活かすかといった内容を盛り込む必要があります.
プレゼンと質疑応答ではその内容の論理的正しさを基準に合否判定されてるんじゃないかと思います. 「なぜその研究をする必要があるのか?」「なぜ今まで学んできた事がその研究に役立つのか?」といった質問には答えられるように, しっかり研究内容を詰めておきましょう.
理想的にはそこが完璧なら受かるはずです. が, 完璧とかだいたい無理なんで, やっぱり予測される質問に対する回答はちゃんと準備しておくべきですね…

実際にされた質問について

僕の場合は「今まで学んできたこと」について初歩的な質問をされました. おそらくklisの専門分野と離れていたのでどんなものか分かりづらかったのでしょう(ちなみに電気工学, 情報工学です). まあこの質問に対しては相手が理解できるように答えられれば問題無いと思います.
それとklisで研究しようと思っていた内容について, 「その研究をするのなら, 〜〜については調べましたか?」と聞かれました. ちょっと踏み込んだ内容なので研究したいことについてはそれなりに深く調査しておく必要があると思います. ただ僕は「調べてませんわかりません」て答えましたけど…
残念ですが僕聞かれたのこれしか覚えてないです, 雑魚ですみません.

受験に向けた勉強

受験に向けた勉強ですが, 正直僕は第一志望が別にあったのでそちらの勉強ばかりをしてました. というかklisは筆記試験とか無いので, まあ勉強というよりはひたすら研究内容を詰めるべきかなと…

最後に一言(大嘘)

僕から言えることは次で最後ですが, あなたがやりたいことが本当にklisでやるべきことなのか, もう一度考えてみてください. 他学類や他大学のほうが良い環境かもしれません.
特にklisは目的をちゃんと持っておかないとすぐにやりたいことがわからなくなる場所だと, なんとなくですけど思ってます.
入ってから目的が変わるのは問題ありません. ただ無いままで入るのは非常に危険だと思うので, そこらへんよく考えてみてください.

役に立つWebページ

編入学試験について詳しいことは募集要項を参照してください. おそらく今年度のと殆ど変わらないんじゃないかと思います(確証はないので自分が受ける年のを必ず確認してください).
4月に募集要項公開, 請求受付. 6月に出願. 7月に試験らしいですね.
こちらのページの「学群編入学募集要項」から見れます.

筑波大学|本学で学びたい方へ|入学案内・募集要項の一覧募集要項一覧

それとまだ編入学の説明会に来てないなら, 是非参加してみてください. 今年も4月にあるはずです. 詳しくはそのうちklisのページに載るはずなので, 定期的にチェックしてください(ポスターはもう貼ってた気がするので探せばあるかも?).

筑波大学 情報学群 | 知識情報・図書館学類

こんなのもありました. 参考までに.

http://klis.tsukuba.ac.jp/assets/files/3henQA2012.pdf

あと, 編入学の体験談を投稿できるページもあります. klisの編入体験談も2件ほどあるようなので参考までに.

HenTai-あなたの編入体験をシェアしよう-

終わり

以上です. ありがとうございました.
もし何かあったら更新するかもしれません.