アイマスハッカソンなるものに参加して歌詞を自動生成してくれるものを作った

んだけどあんまりおもしろい結果にならなかった。

imas.connpass.com

やったこととしては、歌詞テキストを形態素解析してマルコフ連鎖でつなげるってやつ。

技術的にはだいたいこれの焼き直し。

alstamber.hatenablog.jp

  1. 気合で歌詞データを用意する
  2. マルコフする
  3. hkdnet/markov_gen
  4. 眺める

歌詞には著作権やらなんやらの権利があると思うのだけど、形態素解析して作ったものは権利的にどうなるのかわからなくてパブリックに見せていない。たぶん大丈夫な気がするが。

というわけで成果物をパブリックにするのがはばかられるのもあって厳しいところがあるがハッカソン自体は楽しかったです。

Raspberry Pi3を勢い余って買ったので無線LAN APにしてみる

github.com

気合でしました。ansibleにしてあるので実行すればたぶん動きます。 OSはnoobのほう。参考サイトとかは書いてある通りです。

注意点

  • 無線LANの口(wlan0)から受け取ったのを有線LANの口(eth0)に流してるので当然有線LANの接続が必要です
  • タグうったときには書き忘れてたけどhosts書いてください
    • hostsのグループ名をgizehから変える場合はsite.ymlのhostsも変えてください
  • gizeh/roles/wifi/templates/etc/iptables.ipv4.net はもしかしたら動かないかもです。
    • みた感じ動く気がするけど……
    • 参考サイトの "SET UP IPV4 FORWARDING" の項目に該当するので手動でやり直してみてください
  • SSIDはgizehになります

f:id:hkdnet:20161214085854p:plain

電子工作とかやるぞーっていうよりは適当なlinuxサーバとして使うつもりです。

でもアクセスポイント化すると前述のように有線LANの接続が必要になってケーブルがうざったいのでオフにする予定。 上のgithubのリンクはタグを見るようにしてるんでたぶんいつでも有効です。

yarnをnpm i -gでインストールしようとしたら怒られた

タイトルどおりです。

$ npm i -g yarn
npm WARN deprecated yarn@0.17.10: It is recommended to install Yarn using the native installation method for your environment. See https://yarnpkg.com/en/docs/install

npmじゃなくてネイティブのパッケージ管理を使おうねと言われています。
OSXならbrewUbuntuならapt-getとかそういう話です。

これなんでだろって思ってたら公式に答え書いてありました。

yarnpkg.com

Install via npmのところ。

Note: Installation via npm is generally not recommended. npm is non-determinstic, packages are not signed, and npm does not perform any integrity checks other than a basic SHA1 hash, which is a security risk when installing system-wide apps.

For these reasons, it is highly recommended that you install Yarn through the installation method best suited to your operating system.

npmでインストールするのは通常オススメできない。なんでかっていうとnpmは非決定的で、パッケージが署名されておらず、SHA1ハッシュ以外の正真性チェックを行わないから。

というわけでbrew installとかでいれましょう。

Windowsユーザーはどうすんのかなって思ったらmsiファイルとchocolateyがあるみたいです。

第30回 西日暮里.rb オブジェクト指向設計実践ガイド読書会 に参加してきました

読書会第一回から2週間が経過して、読書会第二回が開催されたので参加してきました。

nishinipporirb.doorkeeper.jp

内容

今回は第三章、第四章が対象でした。第三章は依存関係の管理について、第四章はインターフェースについてです。とはいえ今のまとめは語弊があって、「依存関係の管理」はオブジェクト指向のキモであると筆者が書いたように本書全体で扱うテーマなので不適切です。第三章では特に依存関係とはなにか、どのような依存関係が望ましいのかという点について説明しています。第四章の"インターフェース"も、2種類ある"インターフェース"のうちの片方にしか触れていません。2種類あるというのは、1つは「ある1つのオブジェクトに対して送信できるメッセージの定義群」としての意味で、もう1つは「複数のオブジェクトに対して同じようにメッセージを送ることができるようなメッセージの定義」としての意味です。ざっくりいうと、前者が1つのオブジェクトがもつメソッドのシグネチャのまとまりで後者がJavaのインターフェースです*1。第四章では前者についてどのような定義がよいのか、何を考慮すべきかについて説明しています。

以下、トピックとして気になったものについてかいていきます。

依存関係の認識

本書では依存関係とは何かについて具体的に例を挙げて説明している。 あるクラス内にクラス名がハードコードされていたらそれは当然依存関係であるのだが、それ以外にも初心者が気が付きにくいものがあげられていた*2

依存関係の方向を意識するのが大事なのはひしひしと伝わってきたのだけれども、ここでRubyの言語仕様的な難しさを感じる。Javaだとファイル単位でimport文を書くのであるファイルがどのパッケージに依存するかは宣言的。一方でRubyのrequireはファイル単位ではなくグローバルに影響を及ぼすので依存関係を意識する機会が少ないというのはあるとおもう。

コンストラクタで処理する

これは本の中にある変更に対する反論として挙がっていたのだけれども*3、あるクラスが他のクラスに依存してる場合、それを明示するためにコンストラクタ内で見せたほうがいいんじゃないかという話。 遅延初期化は生成コストがバカにならない場合のみにすべきで普通のインスタンス変数は initialize メソッドで初期化したほうがいいのでは、という意見があった。

この指摘はたしかにそうかもなと納得したのでとりあえずメモ化みたいなのはやめる。


西日暮里.rbは今後も2週間に1回くらいのペースで「オブジェクト指向設計実践ガイド」の読書会を開催していくようなのでよければ是非。月曜日夜20時からで最寄りが秋葉原なので参加もしやすいと思います。なお次回は第五章と第六章の予定で第五章では動的型付け vs 静的型づけのセクションがあるので最悪の場合死に至るかもしれません。

*1:ざっくり言い過ぎなのはわかってます

*2:詳しくは読んでください

*3:本を書く上で選んだサンプルが不適切ではないかという指摘です

近況

つらつら書く

漫画

シリーズ揃えてるやつから。

  • 大砲とスタンプ1〜4巻
    • 久々に読んだらよかった。いつの間にか5巻出てたので今度買う
    • 物理本で揃えてるのだけどあるならKindle版に移行する予定
    • ちゃんと話がいろいろ繋がってることを再確認できてよかった
    • 速水螺旋人の読み方、これ絶対「トルネード」だろって思ってたのに「らせんじん」らしい。外した
  • 東京喰種無印版1〜14巻
    • 石田スイはwebコミ読んでて一般デビューしたのもしってたけど忘れてた
    • 飲み会で話題にあがったので読んだ
    • 亜門萌え
    • まだ1周しかしてないのでまたゆっくり読みそう
  • 王様達のヴァイキング1〜10巻
    • 4周くらいした
    • 是枝くんが最高だったのでC++Python欲が高まったけど一応WEB系の人間なのでギリギリ思いとどまった
  • からかい上手の高木さん4巻
    • 脳が溶けた
    • 4巻の高木さんすごくてほんとにすごい
    • テンションが上がりすぎて読んでたら足がつった
    • あしたは土曜日の春夏と秋冬も読んだ。よかった。心があたたまる
  • ヴィンランド・サガ1~18巻
    • 3周目が終わったところ
    • 「話がプラネテスと同じだよね」って話をしたら友人に「は????」って顔されたけど同じだと思う
    • だからギラギラしてたときのほうが好きなのもプラネテスと同じなんだけどそれでも面白い
  • あの娘にキスと白百合を1〜5巻
    • 白峰さんよりは黒沢さん派なんですけどいちいち出て来るキャラが立っててすごくよい
    • サブキャラだと自転車通学のエピソードと広報委員会のエピソードがよかった
    • これも周回候補
  • AIの遺電子3巻
    • 須藤先生の過去をちょこっとやった感じだけどこれいつまで続くんだろう
    • 無難な面白さなので買ってる
  • 3月のライオン1〜12巻
    • 1〜11は読んでたけど盛ってなかったのでこの機会に一気買いした
    • 変わらずよかった。れいくんの無自覚高飛車な感じがよい
    • アニメ1、2話だけみて、シャフ度出ないなーって思ってたけど二階堂だけシャフ度で笑った
  • 亜人ちゃんは語りたい4巻
    • 安定の面白さ
    • サッキー幸せになってほしい

まだ1巻しか買ってないやつ

  • 上野さんは不器用1巻
    • キモオタ用下ネタ含みラブコメ。ラブコメというかコメディ+ラブ要素?
    • 結構わらったしよかったので続きも買う
  • 青春のアフター 1巻
    • 緑のルーペ先生の。一般デビューしてたの知らなかったです
    • 1~3話で心をグサグサえぐってきたのでつらかった
    • 続き絶対買う。そろそろ完結らしい
  • かぐや様は告らせたい 1巻
    • 恋愛心理バトルギャグ漫画
    • おもしろかったけどなんか物足りなかったので続きはいいかなって感じ
    • キャラがあんまりツボにハマらなかったのかもしれない
  • ちおちゃんの通学路 1巻
    • ハイテンションコミュ障アクションギャグ漫画
    • 面白かったけど続き買うかっていうとちょっとわかんない
    • Kindleの発色と絵面があんまりあわない気がする
  • 徒然チルドレン 1巻
    • なんか異常に安かったときがあって買った
    • 面白いが続きは別になくてもいいかなって思ったのと前にwebで見たなあという気持ちが強く残ってしまった
      • 九井諒子とかはwebで見たぞって思いつつも買ったけど
  • りぶねす 1巻
    • なんか異常に安かっt
    • 続きは別になk
    • webでは見てない

not 漫画

  • 1日で読めてわかるTCP/IPのエッセンス
    • 普通に忘れてるので勉強になった
  • 読者ハ読ムナ(笑)
    • 藤田和日郎の新人アシスタント育成術の本。いま6割くらい。
    • 中盤からは創作に特化した話だけど序盤は一般論としていいこといってると思う
  • オブジェクト指向設計実践ガイド
    • ちょっと積み気味。漫画読みすぎのため
    • 勉強会いくのでちゃんと読みますすみません……

近況書くつもりだったのに最近読んだ漫画を羅列しただけで終わってしまった。まあこれが僕の近況ということで。