タグ

ブックマーク / r7kamura.hatenablog.com (30)

  • REST APIドキュメント生成パターン - ✘╹◡╹✘

    REST API用のドキュメントを生成するときにどうやってるかについて雑記を残しとく。 概要 実装とドキュメントの乖離を避けるためには、同じ意味情報を二箇所以上に定義することを避ける必要がある。そのための方法として、実装それ自身か、もしくは実装が参照している何らかのメタデータを元にしてドキュメントを生成したり、テストの実行結果からドキュメントを生成するというパターンがある。 テストから Cookpadでは、autodocというライブラリを利用して、RSpecでテストを実行している途中で得られたメタデータからドキュメントを生成している。これはテストの実行結果からドキュメントを生成するパターン。 これは実現方法としてはかなり特殊な部類。このパターンが最も効果的に働くのは、ドキュメント生成のために余分な開発コストはあまり掛けたくないが、テストは真面目に書いている OR 真面目に書いてほしい、とい

    REST APIドキュメント生成パターン - ✘╹◡╹✘
    tuki0918
    tuki0918 2018/09/11
  • MastodonをAWSでシュッと動かすやつ - ✘╹◡╹✘

    MastodonAWS で動かしたい人のために、https://github.com/r7kamura/mastodon-terraform というのをつくった。簡単に動かすという目的以外に、MastodonAWS で動かすために必要な設定をコードで表現することで、どういうインフラが必要になるのかを共有しようというねらいもある。 使い方 https://github.com/r7kamura/mastodon-terraform を fork する CircleCI と連携する 適当な環境変数を与えてビルドする マストドン動く ✌(‘ω'✌ )三✌('ω’)✌三(✌'ω')✌ 別に必ず fork しないといけない訳ではなくて、copy して使ったり terraform module として参照したりしても良い。 構築される環境 ┌---------------┐ | Web B

    MastodonをAWSでシュッと動かすやつ - ✘╹◡╹✘
    tuki0918
    tuki0918 2017/04/20
  • 2017年3月15日 - ✘╹◡╹✘

    ゼルダの伝説 一旦クリアしたのでゆっくり暇を見つけては少しずつやっている。ゼルダの伝説をクリアしてからというもの、個人開発の時間が無限にあるように思えてくる…。 amakan anime 自動で収集してきた作品画像の精度があまりにも低いので、利用者が自由に画像を差し替えられるようにした。懸念していた放送情報の取得部分などは、今のところ上手く動いている模様。サイドバーの領域に後でコンテンツを幾つか用意しようと思っていたのがまだ着手できていないので、暇を見つけて着手したい。 amakan books amakan anime の方そろそろ完成しそうなので、書籍の方に anime で得た DB 設計の知見を反映して、Kindle 版やシリーズ判定のデータ揺れを吸収する作業に取り掛かりたいと思う。 React amakan の React コンポーネント設計 - ✘╹◡╹✘ を書いた。 チーズタル

    2017年3月15日 - ✘╹◡╹✘
    tuki0918
    tuki0918 2017/03/17
  • amakanのCIをShippableに移行した - ✘╹◡╹✘

    https://amakan.net/ のこの辺の改善の続き。 amakanをUnicornからPumaに移行した - ✘╹◡╹✘ amakanでyarnを使うようにした - ✘╹◡╹✘ amakanでRuby 2.3.3を使うようにした - ✘╹◡╹✘ amakanを Ruby 2.3.3 から 2.4.0-preview3 に移行した - ✘╹◡╹✘ amakanのフロントエンドを色々改善した - ✘╹◡╹✘ amakanをSidekiqに移行した - ✘╹◡╹✘ amakanの開発環境をDockerに移行した - ✘╹◡╹✘ amakanの番環境をDockerに移行した - ✘╹◡╹✘ amakanをDocker化した感想 - ✘╹◡╹✘ CircleCIからShippableに移行した amakanをDocker化した感想 - ✘╹◡╹✘ で触れた「CIのビルドに時間が掛かるよう

    amakanのCIをShippableに移行した - ✘╹◡╹✘
    tuki0918
    tuki0918 2017/01/14
  • amakanをDocker化した感想 - ✘╹◡╹✘

    https://amakan.net/ のこの辺の改善の続き。 amakanをUnicornからPumaに移行した - ✘╹◡╹✘ amakanでyarnを使うようにした - ✘╹◡╹✘ amakanでRuby 2.3.3を使うようにした - ✘╹◡╹✘ amakanを Ruby 2.3.3 から 2.4.0-preview3 に移行した - ✘╹◡╹✘ amakanのフロントエンドを色々改善した - ✘╹◡╹✘ amakanをSidekiqに移行した - ✘╹◡╹✘ amakanの開発環境をDockerに移行した - ✘╹◡╹✘ amakanの番環境をDockerに移行した - ✘╹◡╹✘ CIのビルドに時間が掛かるようになった これはわりとしんどい。CircleCIDockerのバージョンが古く、イメージのキャッシュをしづらいため、毎度新規にイメージをビルドしていることが原因。キャ

    amakanをDocker化した感想 - ✘╹◡╹✘
    tuki0918
    tuki0918 2017/01/09
  • サメを支える技術 - ✘╹◡╹✘

    写真のサメのぬいぐるみの購入方法についてです。 1. 体 Original Chumbuddy のやつです。家サイトでは品切れで買えないことが多いので、Amazon.com: Original Chumbuddy Skin (Stuffing Not Included): Toys & Games で買えます。結構な値段します。 2. 綿 上記の商品は皮だけなので中に詰める綿が必要です。8kgぐらいあると安心でしょう。結構な値段します。自分は Amazon | フックラ手芸綿ソフィア 3キロ(300g入り10袋セット) クリスマス飾りつけにも最適 | 手芸わた 通販 を2つ買いました。お腹のところにジップがあるので簡単に詰められます。もうちょっと綿詰めてふっくらさせたい感じもしますが満足しています。ぐったりしてきたら買い足す予定です。 おわり 以上です。掃除のときとかには持ち上げる必要

    サメを支える技術 - ✘╹◡╹✘
    tuki0918
    tuki0918 2016/11/22
  • 急に高まって深夜にiOSアプリつくった - ✘╹◡╹✘

    ※当方iOSアプリ開発経験無し react-native、デモ見たときタップしたら画面上の数が増えるぐらいのアプリしかつくれなさそうという印象だったけど、いま丁度タップして読んだ数が増える程度のアプリつくりたいんで使いたい— 生産職 (@r7kamura) 2016年8月23日 とち狂ってreact-nativeのチュートリアルに沿ってインストールはじめてしまった、死にたい— 生産職 (@r7kamura) 2016年8月23日 殺してくれ 殺してくれ— 生産職 (@r7kamura) 2016年8月23日 アプリ完成した pic.twitter.com/bep81pzWAR— 生産職 (@r7kamura) 2016年8月23日 とりあえずバナナでも表示してみるか— 生産職 (@r7kamura) 2016年8月23日 なるほどなるほど pic.twitter.com/mgLilyL09

    急に高まって深夜にiOSアプリつくった - ✘╹◡╹✘
    tuki0918
    tuki0918 2016/08/24
  • 京都に引っ越した - ✘╹◡╹✘

    こんにちは、卓球ハウスアドベントカレンダー14日目です。前に住んでいた卓球ハウスというシェアハウスが12月で解散するので、先日シュッと京都に引っ越してきました。 シェアハウスは2013年の6月からやっていたので、2年半ぐらい住んでいたことになる。1月ぐらいに2人に声をかけて、そのあと3月ぐらいから住居を探してたので、準備云々を含めると大体3年ぐらい色々やっていた。人や家を探していたときの記憶が色濃く残っていて、振り返るとすぐそこにありそうなくらいつい最近のことのように思える。 3年というと、この辺りではちょうど人材の流れるスピードと同じぐらいで、実際入居してから職場が変わった人のほうが多いくらい。通勤環境が変わったり、身辺に大きな変化があったり、周辺環境に慣れてしまったり、また新しい変化への期待が込み上げてきたりということで、集まったときと同じくらいのノリで、まあ解散してみますかということ

    京都に引っ越した - ✘╹◡╹✘
    tuki0918
    tuki0918 2015/12/15
  • 最近のAPI活動 - ✘╹◡╹✘

    進捗 2015-07-27 API Gateway用にRubyでSwagger触るやつ書いた 2015-07-30 Node.jsの練習にHTTPクライアントつくった 2015-07-31 Node.jsでAWSAPIで認証するやつ書いた 2015-08-02 Node.jsでAmazon API Gatewayのクライアント書いた 2015-08-03 Amazon API Gatewayに自動で定義するやつ 2015-08-04 Amazon Lambdaにまとめてアップロードするやつ 2015-08-05 SwaggerをAPI Gatewayに反映させるやつ 2015-08-06 LambdaAPI Gatewayまとめて管理するやつ 2015-08-07 LambdaAPI Gateway用のWAF 2015-08-08 fluctでAPI GatewayLambdaと仲

    最近のAPI活動 - ✘╹◡╹✘
    tuki0918
    tuki0918 2015/08/15
  • 肉フェス行きました - ✘╹◡╹✘

    肉フェス行きました - ✘╹◡╹✘
    tuki0918
    tuki0918 2015/04/27
  • Serverkitつくった - ✘╹◡╹✘

    ChefやAnsible、Puppet、Itamaeなどの構成管理ツールをあまり使ったことがなく、勉強のためにServerkitというのをつくってみたので、現状こういう感じでやってみましたというのを書き残しておく。作り手の気持ちになればこそわかるものがあるだろうと思う。 ところで去年も似たような記事を書いた。 概要 Serverkitというのは、前述した通りChefやAnsibleのような構成管理ツール。マシンの理想的な状態をレシピと呼ばれるファイルに定義しておき、現在のマシンの状態と比較してその差分を埋めるためのもの。Rubyで書かれていて、手元にversion 2.0.0以上のRubyと、Serverkit、それからServerkitが利用している幾つかのライブラリが入っていれば動作する。Serverkitを動かすマシンと同じマシン、もしくはSSHで接続できるマシンに対して実行できる。

    Serverkitつくった - ✘╹◡╹✘
    tuki0918
    tuki0918 2015/04/06
  • デスク遍歴 - ✘╹◡╹✘

    年の瀬なので、これまで作業するのに使ってきたデスクの遍歴について書く。 2011 これは3年前、大学生のときの実家の自分の部屋。インターンで得たバイト代をほぼ全部使って購入したMacbook Air 11inchと、Acerの大きめのディスプレイ。隣に転がってるヘッドフォンはAKGのK701で、けいおんで使われて流行ったのがきっかけで急に売れ始め理解できないまま業者が大量輸入するもそこまで売れず、抱えた在庫への不安から価格が一万円代まで下がった一瞬の隙を突いて買った。机は中学のときに親にもらったやつで、姉が一人暮らしを始めて余ってたのを貰い受けて二つ繋げて使ってた。ディスプレイとヘッドフォンと机は今も全く同じものを使ってる。右側にMacbookを置いてトラックパッド代わりに使うというのも今と変わってない。 部室 これは大学で所属していたギタークラブの部室の机。ここでよく譜読み (うちの部活

    デスク遍歴 - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/12/31
  • 『Web API: The Good Parts』読んだ - ✘╹◡╹✘

    『Web API: The Good Parts』を読んだ。贈ってくれた人達ありがとうございます。 Web API: The Good Parts 作者: 水野貴明出版社/メーカー: オライリージャパン発売日: 2014/11/21メディア: 大型この商品を含むブログ (2件) を見る 目次 詳細はO'Reillyのページにて。 1章 Web APIとは何か 2章 エンドポイントの設計とリクエストの形式 3章 レスポンスデータの設計 4章 HTTPの仕様を最大限利用する 5章 設計変更をしやすいWeb APIを作る 6章 堅牢なWeb APIを作る 所感 Web API、よく知らない場合はとりあえず作りやすい方法で作っていこうという気持ちになりやすい。しかし、Web APIは後から変更するのが比較的難しいものなので、つらいものを使い続ける羽目になりやすい。また一貫性が重要視されやすいので

    『Web API: The Good Parts』読んだ - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/12/28
    HTTPステータスコードとか、ここでこれを返すといいんだって勉強になりました
  • 25歳定年説によせて - ✘╹◡╹✘

    今日で無事25歳になりました。 去年とあるアドベントカレンダーの記事で25歳定年説について触れたけれど、いざ自分がその歳になってみると「確かに」と言った感じ。実際、周りのコンテキストを見てると、疲弊感、厭世感、アガりたい気持ち、結局一発あてられない風潮、その他もろもろが綯い交ぜになった茫漠とした不安が感じられることが多くなってきた。 その内、精神的な意味で体力というものが薄れ、週末にこういった活動に割く気力が無くなったとき、 ハッカーとしてはそこで死んでしまうのだと思う。そのことがただ悲しい。 何となくそういう予兆は感じられているし、あと2年もすればそのときは訪れると思う。 若者の界隈で、25歳定年説と呼んで震えている。 特にこの事実について何か主張があるわけではないが、ただこの社会は厳しいということに尽きる。 社会は厳しいの一言で思考停止するのをやめたい。 社会の斥力に負けて、心の弾力を

    25歳定年説によせて - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/12/21
  • 大失職Nightの様子 - ✘╹◡╹✘

    同居人の発案により、大失職Nightというイベントが自宅で行われました。当日は東亜飯店から取り寄せられた貴重な料理を頂いたり、同居人の誕生日に送った冷凍マグロを解凍して寿司を握ったりしました。蓋を開けてみれば集まった退職者の人数は二桁にのぼり、人はいつか必ず職を失うのだ、いやいや、君はある重大な事実を見逃している、働かなければ職を失うこともないだろう、などとお互いの知見や感情を少しずつ交換しました。

    大失職Nightの様子 - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/10/06
  • ストリーム表現とその変換 - ✘╹◡╹✘

    データをストリームとして表現する方法と、ストリームを変換する方法を紹介する。 ストリームはメッセージが流れる川である Pub/Subメッセージングモデルでメッセージを流すためのオブジェクトのことをストリームと呼ぶことにする。ストリームにはメッセージをPublishでき、またメッセージを受け取ったときの処理をSubscribeできる。例えばキーボードからの入力をPublishして、内容をコンソールに出力するような処理をSubscribeできる。 kamo.jsでストリームを表現する ストリームについて説明するために、kamo.jsというストリームを表現するためのライブラリをつくった。kamo.jsは、ストリームを作成するためのkamo.Streamというコンストラクタ関数を提供する。このコンストラクタ関数から作成されたオブジェクトは、publishとsubscribeというメソッド(※プロパ

    ストリーム表現とその変換 - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/08/21
  • 今週よく使ったalias - ✘╹◡╹✘

    o Gitレポジトリ内のファイルを適当なアプリケーションで開く。雑なので分かりやすくて良い。 alias o='git ls-files | peco | xargs open' e あとこれもよく使った。手元のマシン内のレポジトリに移動する。 alias e='cd $(ghq list -p | peco)' p GHQ - r7km/sにも書いたけど、 o と e で「pecoを使って絞り込んだ結果を他のコマンドに渡す」という処理が被ってしまったので p を用意した。 p() { peco | while read LINE; do $@ $LINE; done } alias o='git ls-files | p open' alias e='ghq list -p | p cd'

    今週よく使ったalias - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/06/28
    pecoの活用例とか
  • 全てがJSONになる - ✘╹◡╹✘

    TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or

    全てがJSONになる - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/06/10
  • チャットで不在時に発言されたメッセージの扱い方 - ✘╹◡╹✘

    HipChatやSlackで使われているXMPPにおける不在時に発言されたメッセージの扱われ方、 というきわめてニッチでゴキゲンな話題をお届けします。 Delayed Delivery XEP-0203という拡張仕様があり、 リアルタイムではなくあとから遅れてメッセージが送られる場合の仕様が定義されている。 あるユーザにメッセージを送ったが宛先のユーザがオフラインだった場合にサーバ側でメッセージを保存しておき、 ユーザがログインしたときに再送するという用途がある。また、チャットルームでの発言履歴機能などにも関係している。 例を見たほうが早そう。 <message from='romeo@montague.net/orchard' to='juliet@capulet.com' type='chat'> <body> Goodbye, cruel world </body> </messag

    チャットで不在時に発言されたメッセージの扱い方 - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/06/08
  • チャットで今日放送されるアニメを尋ねる - ✘╹◡╹✘

    チャット経由で今日放送されるアニメを尋ねるために Ellen::SyoboiCalendar というのをつくった。list animeと発言すると、しょぼいカレンダーを見てその日の28時までに放送される番組を教えてくれる。あらかじめ環境変数経由で自分の地域で見られる放送局のIDを指定しておくみたいなことも出来る。 様子 式年遷宮 Ellen::SyoboiCalendarをつくるにあたって、しょぼいカレンダーをRubyから扱うためにsyoboi_calendarというGemを作り直している。2年ほど前につくっていたのを式年遷宮的に再度作り直した。 ちなみにGolang版もある。何をやっているかと言うと、SyoboiCalendar::Clientをつくって適当なメソッド (.channels, .programs, .titles) を呼び出すと、URLを組み立ててしょぼいカレンダーのAP

    チャットで今日放送されるアニメを尋ねる - ✘╹◡╹✘
    tuki0918
    tuki0918 2014/05/31
    Ruboty