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

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

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

  • 2017年振り返り - r7kamura - Medium

    突如として2017年を振り返る。主に仕事技術面。 フリーランスとして仕事を請けるようになった2012年からクックパッドで正社員として働き、2014年からは転職して Increments で働いていたが、2017年6月に退職し、そこから個人事業主としてフリーランス仕事を請けるようになった。 仕事内容は、設計レベルでのリファクタリング、別フレームワークへの書き換え、パフォーマンスチューニング、開発環境の改善、コードレビュー、コードベース全体を見てのコンサルティング、新機能の設計と実装という感じの内容が多く、まるまる1つ Web アプリを新たにつくって納品するというよりは、こういう仕事内容の方が確かに自分にも合っていそうだった。プログラミング言語としては、RubyPHPJavaScriptCSS 辺りを触ることが多かった。請負先は、近所の会社であったり、海外の会社であったりと様々。勤務

  • 2017 年にお金を払った購読型サービス - r7kamura - Medium

    V 氏の次の記事が良かった。自分も真似すべく、記事を書くことに。従量課金や一度きりの支払いのものは除いて、月額あるいは年額で支払っているものを対象に振り返ることにした。 継続しているものGitHub月額 $7。プライベートリポジトリが幾つかある。リポジトリ数の制限が無くなったことで当に便利になった。 Heroku月額 $7。個人でやっているサービスの検証環境として使っている。日向けのサービスばかりつくっているので、US リージョンに番環境のサービスを置く選択肢が取りづらく、結果的に検証環境用途でしか使っていない。Pull Request ごとに検証環境を立てられる Review Apps は非常に重宝している。 Freee月額980円 (税抜)。青色申告をやるために利用している。特に税理士を雇わずに自分で確定申告をやる上では当に助かっている。 Amazon プライム年額3900円

  • 個人で運用している Web サービスをどう管理しているか 2018年版 - r7kamura - Medium

    個人で運用している幾つかの Web サービスについて、自分がどう管理しているかを振り返る。 実験には Heroku を利用習作につくったアプリやβ版段階のアプリは、Heroku で動かしている。Heroku を使う場合のより具体的な条件としては、データベースが明らかに無料枠に収まりそうで、24時間動いていなくてもまあ誰にも怒られそうないような場合。Slack 用の Bot や、nippo という日報専用サービスのクローズドβ版などを主に置いている。 メリットに感じている部分は、無料で使えること。デメリットに感じている部分は、サーバが US に配置されることと、データベース系の Add-On が高くつくこと。例えば日語圏向けのサービスだと、通信時間がそこそこ長くなり、結果的にサービスの体験が悪くなる(昨今の平均的な Web サイトの速度はまだまだ遅いので、それと比較すると悪くなるというほど

  • 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 ごとにまず順序を気にしないといけないやつを記述して、後に辞書順のやつを記述するように

  • Gyazo の Web API の設計変更 - r7kamura - Medium

    業務委託として現在 Nota 社の Gyazo のサーバサイドの開発をお手伝いさせてもらっているのですが、その中でやっていることについて幾つか紹介したいと思い、今回は開発環境で全面的に Docker を使うようにしたという話について書こ… ここでは、Web ブラウザやその他のクライアントから HTTP を介して利用し、JSON などのデータフォーマットでクライアントアプリケーションとやり取りを行うようなエンドポイントのことを Web API と呼んでいます。 Jbuilder からの移行これまでのコードでは、JSON を生成するために Jbuilder というライブラリを使っていました。これは DSL を用いて JSON を生成するライブラリで、Rails の場合は ActionView と協調して動きます。 Jbuilder からの変更の理由は幾つかあるのですが、主要な理由を挙げると、以

  • Gyazo 開発環境の Docker 化 - r7kamura - Medium

    The easy way to save screenshots, GIFs, and websites. Make everyone happy by sharing smarter, faster, and with your… 単純にスクリーンショットを保存するだけなら OS の機能だけでも十分ですが、GIF 動画を保存できたり、いつどこでどんなアプリケーションを利用しているときに撮影したのか、あるいは画面にどんな文字が写っているかといった情報を元に検索できたり、保存した画像をコレクションという単位でまとめて共有できたりと、Gyazo を使って保存しておくと意外と便利なことが多く、個人的にも重宝しているサービスの1つです。 我々が開発環境で Docker を使うメリットGyazo のサーバサイドの実装には、プログラミング言語の観点で見ると RubyGoJavaScript などが

  • Draft.js と Slate.js と CodeMirror の感想 - r7kamura - Medium

    幾つかの Web サービスや Electron ベースのアプリに組み込むエディタを実装するにあたって、Draft.js、Slate.js、CodeMirror を試してきて得た情報について、個人の感想を述べる。今更感があるので、ライブラリそのものについての解説はしない。 Draft.js冒頭で挙げている三つのライブラリの中では、単純に Server-Side Rendering してもエラーを出さず、普通に動くところが良かった。単純に動かないタイプのライブラリでは、例えば React ではライフサイクルイベントのコールバックである ComponentDidMount メソッドを利用するなどして、クライアントサイドのみでエディタが描画されるように工夫しなければならない。 Draft.js でエディタのスタイルを変更するには、Decorator という、描画前の内部データを DOM 要素へと変

  • Web アプリの JavaScript の初期化処理をどうまとめるか - r7kamura - Medium

    いわゆる JavaScript のエントリポイントを、どういうパターンで管理しているかについて。 ディレクトリ構成自分の場合、次のようなディレクトリ構成でまとめていることが多い。 client/javascripts/entryPoints/*.jsclient/javascripts/initializers/*.js実例を挙げると、現在携わっているプロジェクトでは以下のようなファイルが存在する。 client/javascripts/entryPoints/client.jsclient/javascripts/entryPoints/server.jsclient/javascripts/initializers/googleAnalytics.jsclient/javascripts/initializers/helmet.jsclient/javascripts/initiali

  • 作業用に曲面ディスプレイを導入 - r7kamura - Medium

    主にプログラミング作業用に 34 型の曲面ディスプレイを導入したので、嬉しがって設置してみた様子を紹介する。 PC での作業用途ならアームが欲しいスタンドがしっかりとした構造になっている分、スタンドが奥行きを取る構造をしている。PC での作業用に使う場合は、少し近すぎるかもしれない。このままでもまあ良いけど、もう少し遠くても良いかな、ぐらいの感覚。 幸い標準的な規格のディスプレイアームに対応しているので、ディスプレイアームを取り付けるかどうか検討中。スタンド部分がかっこいいので微妙に惜しい。スタンドにボールベアリングが付いていて、角度調整がかなり柔軟に行えるようになっているので、机の奥側に適当な台を置いて角度を調整するだけでも良いかもしれない。 やはり曲面ディスプレイは作業に向いている以前までは作業用に 43型の 4K 平面ディスプレイを利用していたが、大画面で迫力がある一方、机の中央に座

    作業用に曲面ディスプレイを導入 - r7kamura - Medium
  • 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

  • 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
  • Speee Cafe Meetup #07 に参加した - r7kamura - Medium

    TypeScript, Flow最近会社で開発している Web アプリケーションに TypeScript を導入したという話を聞いたので、その辺に居た人を交えて、Flow と TypeScript を比較するとどういう感想ですか、という会話をした。あまり詳しくないという人向けに説明しておくと、どちらのプロジェクトも、JavaScript の文法に手を加えて静的な型検査を行えるようにしようというものである。

    Speee Cafe Meetup #07 に参加した - r7kamura - Medium
  • チャットボットフレームワーク Ruboty を振り返る - r7kamura - Medium

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

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