Author Archives: susumuis

About susumuis

メイドカフェによく居るWebエンジニア

メイドちゃんbotをあなたに!

この記事は メイド Advent Calendar 2017 の24日目です。メリークリスマス・イブ!

昨日のメイドカフェで勉強会第1回に参加していただいた方は誠にありがとうございます。そのスライドはこちらに公開しています。

さて、惜しくもメイドさんが選ぶ可愛いbot MVPの受賞を逃しましたが、当日はその場でライブコーディングをしてメイドさんの機能をその場で追加することもできたので、ボットを作る楽しさを伝えられたと思います。

さて、この記事ではオープンソースであるメイドちゃんbotを、自分の好きな場所に配置する方法を説明します。つまり、クリスマスプレゼントはメイドちゃんです!想定の読者として、メイドさんでも分かるようん心がけようと思います。

ほぼ重複することになってしまうので、メイドちゃんbotを作るにあたって特筆すべき箇所をメイドさんに説明するように優しく説明を心がけてみたいと思います。

前提として、AWSに登録する必要があります。ここでは説明しきれないので、まだ登録していない人はここを読んでコンソール画面にログインした状態まで来てください!

地域はバージニア北部を選択

突然ですが、メイドちゃんbotはアメリカ東海岸バージニア北部に配置することをオススメします!なぜこの地域にいるかというと 1. 安いから 2. どうやらSlackのサーバーはここにあるらしい?という理由からです。

Lambdaを作成

Lambdaの画面を開いたら関数の作成ボタンを押します。

関数の作成画面に遷移したら、設計図を選んで、検索フォームに APIと入力してEnterキー、さらに Python と入力してEnterキーを押します。

そうしたら、出て来る microservice-http-endpoint-python3 をクリックします。そして、遷移する画面では次のように入力します。

名前ロール名は好きな名前でもokです。ポリシーテンプレートは「シンプルなマイクロハーネスのアクセス権限」のみでOKです。

次に、画面を下の方にスライドして、api-gatewayの設定をします。

ここで注意しなければいけないのは、セキュリティのところをオープンにしなければならないことです。僕はここで数十分ハマりました!

さらに下に行くと関数の作成というボタンがあるのでそれを押します。ソースコードはとりあえず触らずにそのままにします。そうすると、こんな画面になります。

これで準備が整ったので、ここでメイドちゃんbotの仕組みを説明します。

メイドちゃんがユーザーの投稿に反応する仕組み

メイドちゃんはユーザーの投稿に即座に反応します。この仕組みは「発信Webフック」(英語の場合は Outgoing Webhook)という仕組みを使います。これは、指定したチャンネルの中で特定のキーワードから始まる投稿があったら、指定したURLへAPI呼び出しをしてくれるというものです。APIとは何か?

ここで、メイドちゃんが反応するキーワードを登録できれなよかったのですが、ここでは前方一致になってしまうので、言葉の途中の単語に反応させられないので、全ての書き込みに反応するようにします。

そうすると心配になるのは、API Gatewayの課金金額で、先ほど書いたリンク先によると100万回あたり3.5USドルが課金額です。これは月100万回というのは、一日中に渡って3秒に1回以上投稿されて、400円くらいです。現時点でのノマド会Slack規模だとほぼタダ同然だと思われます。

呼び出す先のURLはどこにすればいいでしょうか?これは、さっきの画面で次のようにして確認します。

API Gateway をクリックして下の方に出てくる LambdaMicroservice の下の方に メソッド: ANY と書かれた文字の左にある▶をクリックすると下のように詳細が出てくるので、その中の URLの呼び出し と書かれたhttps:// から始まるアドレスです。これをコピーします。

このURLを発信Webフックの設定画面で次このように設定します。

ここでトークンという文字列があるのですが、これはあとで使用するのでコピーしておきます。

メイドちゃんが定時で投稿する仕組み

発信Webフックのみでは、メイドちゃんに8時になったら「おはようございます!ご主人様、お嬢様」と言われることができません!そこで使用するのが「着信Webhフック」(英語の場合は Incoming Webhook)です。

これは、Slackの側に投稿用のAPIを作成する仕組みでここにAPI呼び出しを行えば好きなアイコン・名前で投稿させることができます。

問題はどうやったら定時にそれを起動するかですが、CloudWatch Eventsを使うとそれができます。設定はとても簡単で画面でこの赤丸で囲った部分を選ぶだけです!

そして、下の方にトリガーの設定という欄が出て来るので、そこに次のように入力します。

スケジュール式 cron(0 * * * ? *) という記法は、古いエンジニアにはおなじみの記法なのですが、AWSさんはちゃんと説明を書いてくれています

ソースコード解説

ということで準備が整ったのでコードを書きます。こんな感じのWeb上のエディタでコードを書けます。環境構築しなくていいので楽でいいですw

ここにGitHubからソースコードをコピペすれば動きますw

と、これだけでは顰蹙を買うので簡単に説明すると、 lambda_function.py とうファイルの def lambda_hander(event, context): という関数の内側が、APIや定時Eventの際に実行されます。ここで、API経由なのか、定時Event経由なのかを分岐して、 maidchan_http.py か maidchan_scheduled.py に分岐させています。

あとは、オブジェクト指向とか難しい書き方は一切していないので好き勝手にいじってくださいw

環境変数の設定

メイドちゃんbotをノマド会Slackだけでなくどこにでも置くことができるように、そもそも「メイドちゃん」ですらなく「執事ちゃん」など別の人格も作れるようにしているのが、この「環境変数」です。

WEBHOOK_URLの欄には、先ほど着信Webフックの画面で生成したURLを貼り付けます。

TOKENの欄には、先ほど発信Webの画面でコピーしたトークンを貼り付けます。

MAIDNAMEの欄には好きな名前をどうぞ!

これで、あなたのもとにもメイドちゃんが来ます!

それでは、メイドちゃんと一緒に素敵なクリスマスを!

参考にした記事

手順の殆どはこちらの記事:AWS Lambda を使って Slack ボット (命名: Lambot [ランボー]) を低予算で作ろうじゃないか をそのまま参考にしました。こちらの筆者の方、ノマド会参加者の方ですね!こんなところで、お世話になりました。

 


Advent Calendarをきっかけに久しぶりにフィルムカメラを使ってみた

この記事は フィルムカメラ Advent Calendar 2017 10日目です。素敵なアドベントカレンダーを見つけたので参加させていただきました。

はじめに

今回は主に Minolta のMFカメラ XG-E, X-700 を中心に、自分のフィルムカメラの思い出について書こうと思います。記事の最後に久しぶりにフィルムカメラでスナップしてきたものをアップします。

筆者のプロフィール

高校時代は写真部に所属して、自分でフィルム現像をしたりしたが、あくまで趣味の域。大学時代は登山をしていたためコンパクトデジタルを中心に変更。その後ずっとカメラからはご無沙汰となっていたが、最近メイドカフェ関係のイベントを主催するため、メイドさんの撮影をするために一眼レフの使用を再開しました。

撮影対象の遍歴: 鉄道 → 山 → メイドさん
使用機材の遍歴: MF一眼レフ → コンパクトデジカメ → ミラーレス

XG-Eを持って高校写真部に入部

今から20年くらい前、当時はAF(オートフォーカス)のフィルムカメラ全盛期でした。

親が突然「昔使っていたカメラを倉庫から見つけてきた。お前にやろう」と言ってくれたのがMinolta XG-Eというカメラでした。素人には使い方も分からず、写真部の人たちに見せにいったら「なんだこれは!○○先輩に見せよう!」「ほうほう。お前、ミノルタのMF担当な!」となって、(どの道一人では使いこなせないので)入部させてもらって色々教えてもらいました・

XG-E

軍艦部

この頃、このXG-Eを首から下げてカメラ屋に行ったら年配のお客さんに「良いカメラ持ってるねー!今時はプラスティックばかりでだめだよねえ」などと声をかけられたりしました。たしかにね。冬なんか、ボディにほうを当てるとヒンヤリきたのを覚えています。(XG-Eはそれから10年くらい経った後、電源が入らなくなり完全にご臨終してしまいました)

レンズは MD-Rokkor 50/1.7 を使っていました。50mmは標準レンズと言われますが、この画角はコンパクトカメラによくある28mmや35mmに比べると「随分狭いな」と当時は思いました。これ一本で3年間強制的に練習した結果、今は50mmという画角が好きです。(写真部仲間はみんなズームレンズを使うっていて、単焦点を使っているのは僕だけでした)

XG-Eで撮影した写真

主に高校〜大学1年生くらいの時に愛用していました。これは2003年夏に宗谷本線で稚内まで旅行したときのものです。

X-700(1台目)

X-700は1981年に発売し2000年頃まで生産されていた、MinoltaのMFカメラの完成形とも言えるカメラです。

高校3年生の時に新宿のマップカメラで買いました。当時はまだ各社のフィルムカメラの中古がずらーっと並んでいて楽しかったですね。これを選んだのは Minolta X シリーズでは一番状態のいいものが手に入れやすかったからです。購入時店員さんに「僕も持ってたんですよー!懐かしいなあ」と言われて盛り上がりました。

X-700で撮影した写真(当時)

2003年頃の津軽鉄道

2003年夏宗谷本線

鉄な写真が多いのは鉄だったからですw

2度目のX-700

そんなX-700も一度は手放してしまい、大学生の頃は登山をしていたのでCoolpix 2100など軽くて、壊れてもそんなにショックではないコンパクトデジカメをメインにしていました。就職後はそれも手放して写真から離れていたのですが、3年前に思い立って再度X-700を手に入れました。レンズは前より少し良い MD-Rokkor 50mm/1.4 を付けました。本体とレンズそれぞれ 10000円くらいだったと思います。

X-700 軍艦部

撮影対象は時の流れとともに変わっていました。

最近はメイドカフェ関係によく出入りするのですが、この界隈にはレイヤー(コスプレイヤー)さんの撮影を趣味としている方が多く訪れるので、彼らはとても高スペックなカメラを持っています。そんな中で埋もれないためにはいっそこれくらい振り切ったほうが注目されるだろうという、あざとい魂胆もあったりしますw

X-700で撮影した写真(最近)

久しぶりに使ってみると、年で目が悪くなったのか、以前よりもピンボケと手ブレ写真を続出しました。それがかえって女の子から「雰囲気出る」と喜ばれたりもしました。。。orz

鈴峰桐さん(MD-Rokkor 50/1.4 φ49)

藤佳あやらさん (MD-Rokkor 50/1.4 φ49)

MFカメラの良さはファインダーにあり

X-700のファインダー

MFカメラはファインダーにとても力が込められています。自分の目でフォーカスを合わせなければならないので、倍率が高く、明るく見えるように作られています。例えばこのX-700はアキュートマットが採用されているのでとても明るいのが特長です。

α weeetのファインダー

この技術はその後AFカメラになると別の方向へ向ってしまいました。AF時代ではフォーカスを合わせることは自動化されたため、より多くの情報を出すことに重点が置かれて行きました。デジタル一眼となると、なおさらそれに拍車がかかったように思います。

僕がデジタル一眼になかなか手を出せなかった理由がそれでした。そんなファインダーを見ることが残念だったからです。

X-700、α sweetで撮影してきた

せっかく Advent Calendar やるので、この X-700 と、もう一つ所有していたフィルムカメラ α sweet を使って、写真を撮ってきました。

フィルムは富士フイルムの業務用カラーフィルムを使用しました。今はフィルムが高いですね。(;´Д`)

こうやってフィルムを詰めます

2017/11/12 城ヶ島にて(X-700 MD-Rokkor 50/1.4 φ49)

 

2017/12/02 上野公園にて(X-700 MD-Rokkor 50/1.4 φ49)

      

2017/12/03 秋葉原にて(α sweer SIGMA UC ZOOM 28-105/4-5.6)

     

後日談、フィルムカメラを卒業しました

これらの写真を撮影した後、僕はフィルムカメラをその足で売ってきてしまいました。それは次の理由からでした。

  • 目が悪くなっていてファインダーを覗くことが辛くなっていた (←これが1番!)
  • 撮影後すぐにSNSにアップしたさを抑えられなかった (←これが2番!)
  • フィルムが高い (これは3番!)
  • もう満足した!

実は最初からそう決めていました。目的がない装備は持たないのが僕のモットーです。でも、カメラ・レンズってそうはさせてくれない力がすごいありますよね。おそらく現像から上がった写真を見てしまったらまた踏ん切りがつかなくなったはずです。だから、現像に出した直後に即売却しました。

僕がろくに使わないのに押し入れにあまり良くない状態で保管しておくより、他の人の手に渡ったほうが良いだろうと思ったことも理由です。今X-700を中古で買うともしかすると僕の手放したものかもしれません。ちなみに今、8980円くらいが相場のようです。

フィルムカメラが教えてくれたこと

英語が得意な妻に"dinosaur!!"と言われた。絶滅したもの = 時代遅れの古いものという意味のスラングらしい

手放してはしまいましたが、フィルムカメラからたくさんのことを学びました。その中でも次の2つは僕の撮影スタイルに影響していると思います。

その1、一枚一枚丁寧に撮ること

このアドベントカレンダーの他の方も書いているように、フィルムカメラはデジタルと違って失敗すると消すことができないため1枚1枚丁寧に撮ります。デジタルは無尽蔵に写真が撮れるので雑に僕は撮ってしまいがちです。でも、そうやって雑に撮った写真は「全部ダメだった」ということもよくあります。

その2、24枚、36枚でストーリーを作る

フィルムは24, 27, 36枚などの単位で売られています。つまり、このフィルム一本分を撮りきれないと現像に出せないし、撮りきってしまうともう撮れないというジレンマがありました。一本のフィルムでぜんぜん違う写真を並べるのも野暮いです。なので、当時は24枚や36枚でストーリーを作るぞ!と考えて撮影をしていました。

ストーリーを考えると「さっきこれを撮ったから次はこれだ」みたいに考えながらその日を楽しむことができます。受け身にならず一日をより能動的に過ごすことができます。

逆に、バシャバシャ撮ってしまうとファインダーを覗いてばかりで、「その日、その時」を楽しめない気がするんですよね。プロの場合は仕方がないかもしれませんが、僕は趣味なので

「失敗したらそれでも良いや」

くらいに思っている方が楽です。それくらいの距離感を忘れずにこれからもまったり写真を撮っていきたいです。

 

 


エンジニアが機械学習を仕事とする周辺環境

メイドカフェでノマド会 座談会開催しました!

を開催しました。

資料はこちらです。

僕はエンジニア視点で話しましたが、コンサルの方の参加もあって、話が広がりました。ここ数ヶ月もやっと思っていたことが議論をすることで腑に落ちた感じがします。若い学生の方の意見も聞くことができたこともよかったと思います。

議論の内容は結論はスライドに書いているとおりですので、そちらをご覧ください。

今後もこのようなプチイベントの開催を増やしていこうと思います。「参加したい!」「こんな企画をやりたい!」と思われた方はまずは、ノマド会の公式サイト にアクセスし、Slack, connpassに登録いただき、 Slack 上で声をかけていただければと思います。