タグ

ブックマーク / medium.com/@r7kamura (8)

  • c6c7842bc468

    外部のプロセスとやり取りするために、ssh-agent がソケットファイルを提供しており、このパスが環境変数 SSH_AUTH_SOCK に設定されています。例えば ssh-add などがこの環境変数を利用しています。このファイルをマウントしつつ環境変数 SSH_AUTH_SOCK をマウントしたパスに指定してあげることで、対象の Docker コンテナからホストの ssh-agent を forward して通信できるようになります。 以下は docker-compose run を使ったときのコード例です。SSH_AUTH_SOCK は実行時に動的に変化するため、docker-compose.yml の volumes の項目に記載しておくことはできず、-v オプションで実行時に指定する必要があります。(-v を使うと volumes で指定している設定は使われなくなるので気を付けてく

  • ActiveRecordを試すときに便利なやつ - r7kamura - Medium

    手元で ActiveRecord を試したいときに、いちいちデータベースを用意したり、再現性のあるコード片に整えたりするのは、結構な手間に感じてしまうかもしれません。この記事では、そういったケースで利用できる知識を幾つかまとめておこうと思います。 以下は今回題材に使うコード例で、これを上から順に説明していきます。 ActiveRecord で .count の挙動を試す例bundler/inlinebundler/inlineBundler 1.10 から追加された機能です。これを利用すると、Gemfile を独立したファイルとして用意することなく、スクリプトの中にその定義を埋め込めるようになります。 続くスクリプトがどのバージョンの Gem で動かせるのかということを明示でき、必要であればライブラリを実行時に自動的にインストールし、依存関係を調べて $LOAD_PATH を調整し、

  • arel 9.0.0の一部を読んだ - r7kamura - Medium

    activerecord への理解を深めるために、arel 9.0.0 のコードを読んだので、arel が SQL で表現された文字列を生成する流れについてここにまとめておきます。 サンプルコードarel の README では、簡単なサンプルコードとして、以下のコードが紹介されています。この記事では、このコードを見ながら説明を進めていきます。 users = Arel::Table.new(:users) query = users.project(Arel.sql("*")) query.to_sql抽象構文木の構築、文字列への還元上記のコードは、SELECT * FROM “users” に相当する SQL 表現を文字列として生成するためのコードです。まずは全体像を把握するために、このコードの全体の流れについて説明していきます。それぞれの部分の具体的な実装については後述します。 ar

    clavier
    clavier 2018/04/11
  • nippo の Gemfile (2017-12-02版) - r7kamura - Medium

    Rails で使っている gem の知見が欲しいという話をいただいたので、いま開発している nippo という Web アプリの、2017年12月2日時点で master に commit されている Gemfile の中身を解説する。 定義順序について説明してから、個々の gem について簡単に説明する。 定義順序まず group 指定の無いもの、次に group 指定付きのものという順で定義している。細かいけど group それぞれも辞書順。複数の group を同時に指定する場合は、それらを繋げたものを順序指定時のキーとしてソートする。こういうルールなので、gem メソッドの引数の :group オプションは利用しない。 意図的に順序を気にして定義しないといけないケースが存在するので、各 group ごとにまず順序を気にしないといけないやつを記述して、後に辞書順のやつを記述するように

  • config/routes.rb の書き方を見直した – r7kamura – Medium

    開発を手伝っている Rails アプリの config/routes.rb の書き方を見直した。 ルール以下のようなガイドラインを設け、これを守るように書き換えた。 resource(s) などの DSL の利用を避けるパスの辞書順に定義するHTTP メソッドの部分だけ特別にインデントする具体例こういう形の、素朴なルーティングがひたすらに羅列されていくコードになる。実際のコードでは数百行以上に及ぶ。基的に1行に1つのルーティングが定義される。 MyApp::Application.routes.draw do get '/' => 'top_pages#show', as: :top_page delete '/api/applications/:applicaiton_id' => 'api_applications#destroy', as: :application get '/a

    clavier
    clavier 2017/09/24
  • Gemfile の書き方を見直した - r7kamura - Medium

    Gemfile を記述するときの自分のルールを見直したので言語化しておく。 ルール決まった順序で定義しなければいけない Gem は上部に書く順序に依存しない Gem は名前の辞書順に書くコメントも含めて 1 つの Gem あたりに 1行使うgroup が必要なものは group メソッドを使って下部に書くgroup も辞書順に書くサンプルコード実際のアプリケーションでは、もう少し込みいったコードになるはず。 source "https://rubygems.org"# Fixed order gem "rails", "5.1.4"# Alphabetical order gem "aaa" gem "bbb", "1.2.3" # https://github.com/bbb/bbb/issues/123 gem "ccc"group :xxx do gem "ddd" gem "eee

  • Incrementsを退職します – r7kamura – Medium

    IT エンジニア退職するときに添えられることが多い東亜飯店の画像今月いっぱいで Increments 株式会社を退職します。今日が最終出社日で、残りは有給消化です。 Increments では何をやってたの?Increments と言えば Qiita を運営している会社というイメージですが、Qiita の開発に直接携わる機会はほとんどなくて、技術基盤や Qiita:Team の開発に携わったりしていました。 分かりやすい例を幾つか挙げると、Qiita API v2、トップページのフィード、通知購読、絵文字リアクション、タスクリスト、qiita-elasticsearch、qiita-markdown、アクセス権限付きグループ、サポートサイト、チーム統合機能の開発や、UI 刷新、絵文字画像セット移行、ログインセッション永続化、Docker 移行、VPC 移行、Terraform 導入、We

    Incrementsを退職します – r7kamura – Medium
  • チャットボットフレームワーク Ruboty を振り返る - r7kamura - Medium

    Ruboty を利用したデプロイの様子この記事では、Slack や HipChat で動く Bot をつくるためのフレームワーク Ruboty の仕組みを振り返り、現状の実現方法を把握し、今後 ChatOps を改善するための足掛かりとしたい。 出勤、デプロイRuboty というチャットボットフレームワークを数年前から開発しており、仕事でも Ruboty でつくった Bot を使った業務フローを導入・運用する機会が増えてきた。例えば、いま働いている会社では、Qiitan という Bot が出勤管理やデプロイに使われている。 Qiitan に最もよく投げかけられている発言は、「@qiitan 出勤」である。この発言を行うことで、自動的に社で利用している出勤管理サービスに対して、発言者が出勤した旨を代わりに登録してくれる。他によく使われる発言として「@qiitan デプロイしたい」がある。これ

    チャットボットフレームワーク Ruboty を振り返る - r7kamura - Medium
    clavier
    clavier 2017/05/25
  • 1