タグ

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

  • 『サービスデザインパターン』を読んだ - r7kamura - Medium

    AmazonでRobert Daigneau, 角 征典, 高木 正弘のサービスデザインパターン SOAP/WSDLとRESTful Webサービスの基的な設計ソリューション。アマゾンならポイント還元が多数。Robert… 振り返りとして読むことにした2012年ので、Web サービスの設計手法の進化の速度を考えると、内容が少し古くなっている。しかし、最近の情勢を考えると RPC スタイルやメッセージスタイルの API 設計について振り返る良い機会だと思ったので、読むことにした。 複数の Web サービスを協調させる設計を採用する事例は、ここ最近でより身近になってきているし、サービス同士を強調させるための規格化されたインターフェースや、そのための便利なツールチェイン、フレームワークなども沢山登場してきている。 そういう中で、まずは分散オブジェクト通信の実現方法を中心的に考えていた頃から

    nagayama
    nagayama 2018/04/05
  • ディスプレイアームを導入したら机が広くなって最高 - r7kamura - Medium

    自分の利用しているディスプレイは結構な重量があるので、それに耐えられるアームにしようということで、信頼のおけそうな製品を選ぶ方針に。このディスプレイには背面に 100 x 100 mm のネジ穴が用意されているので、耐荷重・可動域を考慮して、結果的にエルゴトロン MX を選択。他社の製品よりも比較的微調整が行いやすく、重厚感のある見た目が好印象だった。 様子まず以下が導入前の様子。

    ディスプレイアームを導入したら机が広くなって最高 - r7kamura - Medium
    nagayama
    nagayama 2018/03/23
  • 個人で運用している Web サービスをどう管理しているか 2018年版 - r7kamura - Medium

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

    nagayama
    nagayama 2018/01/24
    Terraform学習したくなった
  • 2017年振り返り - r7kamura - Medium

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

    nagayama
    nagayama 2018/01/08
  • Gyazo の Web API の設計変更 - r7kamura - Medium

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

    nagayama
    nagayama 2017/12/26
  • 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 などが

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

  • 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 要素へと変

    nagayama
    nagayama 2017/11/15
  • 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

    nagayama
    nagayama 2017/09/25
  • 『Writing An Interpreter In Go』を読んだ - r7kamura - Medium

    In this book we will create a programming language together. We'll start with 0 lines of code and end up with a fully… 全部で4章の構成になっていて、1章で Lexer、2章で Parser、3章で Evaluator をつくろうという構成。3章までで一旦完成させて、4章では更に言語を拡張していく方法を学べる。 ここでの Lexer というのは、ただの文字列であるコードをトークンという単位ごとに分割して、トークン列をつくる処理。Parser は、このトークン列を抽象構文木と呼ばれる木構造に変換する処理。Evaluator は、この抽象構文木を評価して、コードの意味している処理を実際に行う処理となっている。 インタプリタに関する知識はの中できちんと紹介されるので、この辺りで

    『Writing An Interpreter In Go』を読んだ - r7kamura - Medium
    nagayama
    nagayama 2017/06/22
  • 『ZERO BUGS』を読んだ - r7kamura - Medium

    Amazonでケイト・トンプソン, 酒匂 寛, 小田 朋宏の{ProductTitle}。アマゾンならポイント還元が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽… 全体が78個の物語によって構成されており、それぞれの物語において教訓が紹介される。ZERO BUGS というタイトルの通り、どの物語もソフトウェアの不具合をテーマにしている。文章の内容は平易で、プログラマ初心者にもわかりやすく、しかしながら示唆に富んでおり、経験が浅いプログラマであれば「なるほど」、経験が深いプログラマであれば「あるある」とどちらも頷きながら読み進めていけるはず。 それぞれの物語は2ページ程度でとても短く、何かの合間にも少しずつ読み進めていける。出来る限りコンパクトに話を収めようという気持ちで書かれていることが文面から伝わり、とても好感が

    『ZERO BUGS』を読んだ - r7kamura - Medium
    nagayama
    nagayama 2017/06/09
  • 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
    nagayama
    nagayama 2017/06/06
    飲みに行くぞ!
  • 1