これは ミルキィホームズ Advent Calendar 2017 の12日目の記事です。

今回は元々のアドベントカレンダーの趣旨に近い(?)技術系の話(?)です。

ミルキィが好きすぎてやってしまったこと(技術編)です。

ドメイン

少し前に、.yokohama というドメインが取れるようになりました

ミルキィホームズといえば「偵都ヨコハマ」。.yokohama が取れるなら teito ってやつ取れば、teito.yokohama 。つまり milkyholmes@teito.yokohama みたいなめっちゃ最高なメールアドレス作れるのでは?! と思いつつ、「でも公式が取るなら尊重しよう」と思い、1, 2ヶ月くらい自重していたのですが、公式が取る気配がなかったので、teito.yokohama ドメインを無事取得しました。

これ、本当に必要であれば、公式に譲るのも、やぶさかではないのでなんらかの手段で連絡くださいな。

このドメイン使って Webサービス作ったり、メールサーバ建てたりしたいなぁ、と思いつつ、結構放置気味だったりします。

Acme::MilkyHolmes

僕はお仕事では主に Perl を使っているプログラマでもあるので、Perl のモジュール(いわゆるライブラリ)を書いていたりします。そんな中、作ったのが Acme::MilkyHolmes という Perl のモジュールです。

元々は、Acme::MorningMusume(モーニング娘。) とか Acme::PrettyCure(プリキュア) とかのこういう先人たちの偉業があって、まあ僕はその巨人の肩に乗っかっているわけですが、ミルキィホームズのあれこれを取得できる大変便利な Perl モジュールであります。

Acme::MilkyHolmes については、作った当初くらいに発表資料を作っているので、こちらをご覧ください

何ができるかは、モジュールの SYNOPSIS にも書いてるんですが、まあこんな感じです

use strict;
use warnings;
use utf8;
use Acme::MilkyHolmes;

# fetch members of Milky Holmes(eg/say.pl)
my ($sherlock, $nero, $elly, $cordelia) = Acme::MilkyHolmes->members();
$sherlock->say('ってなんでですかー');
$nero->say('僕のうまうま棒〜');
$elly->say('恥ずかしい...');
$cordelia->say('私の...お花畑...');

# create character instance directly
my $sherlock = Acme::MilkyHolmes::Character::SherlockShellingford->new();
$sherlock->locale('en');
$sherlock->name;               # => 'Sherlock Shellingford'
$sherlock->firstname;          # => 'Sherlock'
$sherlock->familyname;         # => 'Shellingford'
$sherlock->nickname;           # => 'Sheryl'
$sherlock->birthday;           # => 'March 31'
$sherlock->voiced_by;          # => 'Suzuko Mimori'
$sherlock->nickname_voiced_by; # => 'mimorin'
$sherlock->toys;               # => 'Psychokinesis'
$sherlock->color;              # => 'pink'

# fetch each team members
use Acme::MilkyHolmes qw($MilkyHolmes $MilkyHolmesFeathers $MilkyHolmesSisters);
my ($sherlock, $nero, $elly, $cordelia) = Acme::MilkyHolmes->members_of($MilkyHolmes); # same as members()
my ($kazumi, $alice) = Acme::MilkyHolmes->members_of($MilkyHolmesFeathers);
my ($sherlock, $nero, $elly, $cordelia, $kazumi, $alice) = Acme::MilkyHolmes->members_of($MilkyHolmesSisters);

モジュールに同梱されている eg/say.pl (SYNOPSIS でもやっているやつですが)を実行すると

こんな感じになり、大変素敵な感じです。とはいえ、微妙な面もいくつかあり

  • 誕生日は公開されてるけど、何年か分からない
  • シャロの正しいスペルが分からない
    • 英語版 wikipedia に準拠しているんだけど、これがどうやら正しくないっぽいが他に一次情報がないのでどうにもならない

などの微妙な問題があったりします。これらをなんとかしてくれるスーパーハッカーさんいれば、ぜひ pull request ください

と、いうわけで、本日はミルキィホームズにまつわる(?)Webエンジニアっぽい話でした。

ではでは。