ブックマーク / blog.mah-lab.com (13)

  • Chromeのタブを検索できるAlfred Workflowがすこぶる便利 | mah365

    良いAlfred Workflowを教えてもらいました。Chromeのタブを検索できるAlfred Workflowがすこぶる便利です。 どんなの? こんな感じで、tabsと打ち込むと現在開いているタブの一覧が出てきます。検索文字を入れると、インクリメンタルサーチができます。僕みたいにタブを30個とか平気で開いちゃう人には必需品ですね! Workflowはこちらからダウンロードできます。

    Chromeのタブを検索できるAlfred Workflowがすこぶる便利 | mah365
    daiki_17
    daiki_17 2017/02/21
  • HerokuでパフォーマンスモニタリングするならLibratoを入れよう! | mah365

    HerokuでのパフォーマンスモニタリングにはNewRelicアドオンを入れるのも便利ですが、Libratoという「よりHerokuに寄り添った」メトリクスを出してくれるアドオンもあります。 こんな感じ とあるサービスで導入してみたところ、こんな感じでメトリクスが出ます。 RouterのQueueが詰まっていないか?とか、Dynoのメモリの推移や、PostgreSQLの容量は大丈夫か?といった情報をひと目で把握できる感じです。ダッシュボード的な感じですね。 他にも必要なメトリクスがあれば追加することができます。 もちろんアラートを設定することもできます。 無料のプランから使えるので、まずはお試しで。 とはいえ無料のプランでも十分に使えるクオリティだと思います。Herokuでアプリを運用している方は、ぜひご活用を! Librato

    HerokuでパフォーマンスモニタリングするならLibratoを入れよう! | mah365
    daiki_17
    daiki_17 2016/08/08
  • AngularJSとRailsの丁度良い関係を探る:コード解説編 | mah365

    以前投稿したAngularJSとRailsの丁度良い関係を探るという記事のコード解説編です。前回はざっくりとしたアーキテクチャの紹介のみにとどめていたので、このエントリでサンプルコードの詳細について解説します。 バージョン情報 ruby 2.1.3 rails 4.1.7 devise 3.2.4 angularjs 1.3.2 ディレクトリ構造 app以下のディレクトリ構造は以下のような形です。 app ├── assets │   ├── images │   ├── javascripts │   │   ├── app │   │   │   └── tasks │   │   │   ├── tasks.controller.js.erb │   │   │   ├── tasks.html.erb │   │   │   ├── tasks.js.erb │   │   │  

    AngularJSとRailsの丁度良い関係を探る:コード解説編 | mah365
    daiki_17
    daiki_17 2014/11/26
  • インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365

    Rubyといったオブジェクト指向言語を学ぶと、メソッドの定義方法としてインスタンスメソッドとクラスメソッドという2通りの定義方法があることを学ぶと思います。しかし、言語自体のガイドブックには「定義方法にインスタンスメソッドとクラスメソッドがある」と書いてあるだけで、大抵その使い分けについては書かれていません。 そういう訳で、このエントリではその使い分けについて少し考えてみたいと思います。理論的に厳密な使い分けを目指すというよりは、そもそも使い分けの検討が全くつかない!という方に向けて、その指針の一助となることを目指します。 インスタンスメソッドとクラスメソッドとはそもそものところ、Rubyといった「オブジェクト指向の考え方」を実装した言語の機能です。その機能がなぜあるのか?というそもそものところは、オブジェクト指向の考え方にさかのぼることになります。 そこで、インスタンスメソッドとクラスメ

    インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365
    daiki_17
    daiki_17 2014/11/13
  • 人のコードを引き継ぐときに一番困るのは「使われていないコード」 | mah365

    プログラミングを生業としていると、人のコードを引き継いで開発するなんてこともままある訳ですが、そういうときに一番困るのは「使われていないコード」だなー、としみじみ感じます。 使われていないコードがもたらす弊害 特に動的言語で書かれたコードというのは前触れ無く呼び出される可能性があるため、当に利用されていないのかどうなのか、きっちりと調べあげるのは困難なケースがあります。例えばrubyであれば、method_missingでキャッチしてsendで動的に処理先を振り分けるなんてことをしていると、単純にgrepして利用状況を見るだけでは不十分な場合があります。 そういう意味では「使われていないコード」というよりは、「使われているのか使われていないのかはっきり分からないコード」という方が適切な表現かも知れません。 そういった「はっきりと判断のつかないコード」がある状態だと何が問題なのかと言うと、

    人のコードを引き継ぐときに一番困るのは「使われていないコード」 | mah365
    daiki_17
    daiki_17 2014/10/23
  • Rails Style Guideに載っていることが分かれば大体Rails書ける気がする | mah365

    Rails Style Guideに載っていることが分かれば大体Rails書ける気がしました。もちろん実際に書けるというのと、知識として知るのは全く別のことだと思うのですが、知識としては要点がかなりおさえられている気がしました。 Rails Style Guideで言っていることが分かれば大体分かってる もちろんRails Style Guideは個々の単語(ActiveRecordとかMigrationとか)が分かっている前提で書いてあるので、その分のハードルは高いのですが、逆にここで書いてあることが理解できれば大体Railsのコードが書けるし読めるという到達点が示されている、と捉えることもできます。 昔流行った遅延学習法の話に遡るわけでもないのですが、1から積み上げで勉強していくのも退屈だし、0の段階からいきなりコードを書くのも若干ハードです。何より、知識としてどこまで学べば良いのか分

    Rails Style Guideに載っていることが分かれば大体Rails書ける気がする | mah365
    daiki_17
    daiki_17 2014/10/03
    まあ、そうだよね
  • Writing Fast Rubyというスライドが良い | mah365

    ちょっとしたコードの書き方でパフォーマンスが変わることがあります。リーダビリティを重視する向きからすれば小手先のテクニックに映るかも知れないのですが、リーダビリティを維持しながらちゃんとしたパフォーマンスを出すためにも、テクニックを知ることは大事なことだと思うのです。 結構違うもんですなー というわけで、そんなテクニックをまとめたスライドがWriting Fast Ruby。見ていて参考になったのでメモ。 たとえば引数に&blockをとってcallするよりも、yieldの方が5倍速い、とか、 def slow(&block) block.call end def fast yield end mapにブロックを渡すよりも、シンボルを渡す方が20%速い、とか (1..100).map {|i| i.to_s} (1..100).map(&:to_s) mapしてからflattenを呼び出すよ

    Writing Fast Rubyというスライドが良い | mah365
    daiki_17
    daiki_17 2014/09/28
  • Railsのアプリがちょっと速くなるかも知れない?Gemたち | mah365

    Improve Rails performance by adding a few gemsでRailsのアプリがちょっと速くなるかも知れないGemが紹介されていたので、早速試してみました。 どんなGemRailsのViewのエスケープ処理を高速化するescape_utils みんな大好きblank?メソッドの処理を高速化するfast_blank JSONに関する処理を高速化するoj OJは個人的には定番でしたが、それ以外は知らないGemでした。 Railsアプリのテストの実行速度で前後比較してみた 小規模ではあるもののテストが充実しているアプリで、上記のGemを使用している場合と使用していない場合とで比較してみました。Rails4.0.5で、Ruby2.0.0の環境。 使用前:Finished in 117.683018 seconds 使用後:Finished in 101.366

    Railsのアプリがちょっと速くなるかも知れない?Gemたち | mah365
    daiki_17
    daiki_17 2014/06/29
  • 大規模Rails開発を蝕む5つのアンチパターン | mah365

    Railsでアプリを作っていると、最初の立ち上がりは速いものの、コードが多くなってくると結構散らかってきますよね。そんな中、5 ARCHIRECTURE ANTI-PATTERNS AND SOLUTIONS FOR LARGE RAILS APPSという記事を見つけたので、ご紹介します。 1. 複数の責務を持つサービスクラスがある 業務別の処理をサービスクラスという形で分割したときの話ですね。ActiveRecordのクラスに直接仕事をさせるのではなく、プレーンなクラスに業務処理をまとめて、そこからだけActiveRecordのクラスのオブジェクトにアクセスするという考え方です。 で、業務別の処理をサービスクラスにまとめたのは良いんだけど、「これもこの業務だよね」という感じで、どんどんサービスクラスに処理を追加していくと、単一責任の原則に違反してしまうし、混沌とするので、良くないよねと。

    大規模Rails開発を蝕む5つのアンチパターン | mah365
    daiki_17
    daiki_17 2014/05/22
  • AngularJSでWebアプリケーションを作ろうと思った時に構成に悩んだら、generator-angular-fullstackからはじめるのが良いのでは | mah365

    HOMEソフトウェア開発AngularJSでWebアプリケーションを作ろうと思った時に構成に悩んだら、generator-angular-fullstackからはじめるのが良いのでは AngularJSでWebアプリケーションを作ろうと思った時に構成に悩んだら、generator-angular-fullstackからはじめるのが良いのでは AngularJSはあくまでクライアントサイドのフレームワークなので、サーバサイドをどうしようかなーと悩むことがあると思います。Railsが得意ならRailsに組み込むのもいいんですが、Railsはビューヘルパーが異様に充実しているので、Rails上でAngularJSのコードを書いてるとRailsの良いところが10%も生かせてない気がして辛い気持ちになってきます。うーん、どうしよう。 そんな風に悩んだらYeomanのgeneratorであるgener

    AngularJSでWebアプリケーションを作ろうと思った時に構成に悩んだら、generator-angular-fullstackからはじめるのが良いのでは | mah365
    daiki_17
    daiki_17 2014/02/19
  • Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる | mah365

    SaaSのCIと言えばTravis CIやCircle CIといったサービスが有名ですが、いずれにしてもプライベートリポジトリを使う場合は有料なのです。しょうがないよね、商売だもんね。でもCI入れたいなぁ。 そんな中、GithubだろうがBitbucketだろうがプライベートリポジトリでも無料で使っていいよ!というβ期間中のCI、Werckerが僕の周辺で話題になっていたので、触ってみました。画面もスゲー使いやすい上に、ハマりどころもなく、これはひょっとしてひょっとするんじゃないの?という期待を込めて、rails newからRailsアプリをHerokuにデプロイするまえのチュートリアルを作ってみました。みなさんもこの記事を参考に、ぜひ使ってみてください。 この記事のゴール Githubにpushしたら自動的にWercker上でRSpecのテストが動くこと Werckerでのテストに成功し

    Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる | mah365
    daiki_17
    daiki_17 2014/01/08
  • 2013年12月版!SonicGardenにおけるherokuでのサービス運用構成 | mah365

    こんにちは、こんにちは! 2013年12月版のサービス運用構成をお知らせします。 なんでも @interu という男が、SonicGarden Study #6 で「そういえば @mah_lab が公開しているHerokuの資料、あれ、もう古いですよ」「そろそろ更新してくれると思うんですけどね(チラッ」と言っていたようなので、2014年版をお知らせする前に、2013年12月版をお知らせする次第なのであります。 前回からの変更点 バックアップ監視の仕組みが、よりスマートになりました 以前はAWS Backup Checkerと実際にバックアップを取る仕組みは別に存在していたのですが、AWS Backup Checkerがバージョンアップし、バックアップもやってくれるようになりました。今ではバックアップを取りつつ、バックアップが正常に取れているかどうかも監視するという、1人で2役3役こなしてく

    daiki_17
    daiki_17 2013/12/05
  • 知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365

    Herokuの公式ドキュメントは英語なので読みづらいですよね。herokaijp/devcenterのように、有志が日語訳してくれているドキュメントもありますが、その中でも特に抑えておきたい16個の常識について挙げてみました。(16日に公開する予定の記事なので、何となく16個挙げてみました。。) (補足)Herokuを使う上での登場人物の名前 Dyno 「だいの」と呼びます。1Dynoと言ったとき、一つサーバが立ち上がっているようなものだと考えて下さい。 Routing Mesh Herokuアプリにアクセスがあったときに、Dyno間の負荷をロードバランスしながらリクエストを振り分ける機構をRouting Meshと呼びます。たまに「Router Error」というログを吐くのですが、そのとき障害が起こっている場所はここです。 常識1. Dynoは1時間アクセスがないとアイドル状態になる

    知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365
    daiki_17
    daiki_17 2013/05/16
  • 1