タグ

2015年2月4日のブックマーク (20件)

  • 今年も1月終わったし DCI の話しようか - Qiita

    いままで色々 Rails 向けに DCI を実現する gem を作ってきたわけですが(Dicer / BluePrint)、今年もまた新しく考えなおして Rails 向けに DCI を実現する gem を書きました。毎年毎年ほんとよくやりますね。 今年は何気なく作り続けて、いままで活用されていなかった uninclude という gem をついに使って DCI をやってみました。 uninclude にてついては特に解説することもないというか、名は体を表すということで『#unextend や #uninclude を Ruby で使えるようになる』という gem です。Refinements などでも実現可能なのですが、Refinements はファイルごとだったりでスコープがわかりづらくなるので使っていません。 RockMotive 2015年の DCI on Ruby は RockMo

    今年も1月終わったし DCI の話しようか - Qiita
  • 『DCI なんて面倒なだけで Service 使えばいい』への返答 - 鳩舎

    NOTE: 最下部に追記があります。 よく言われる話として、 DCI なんて実装が面倒な上に夢の実装の話をしており、現実解としては Service クラスを用いて実装すればシンプルな実装になるのだから、そういったものは必要ないのだ、というご意見への返答です。 こういった批判の文脈の際、 Service クラスというのがどこの Service クラスを指しているのか、が問題なのですが、 DDD における Service ではないように思えるので、おそらく PofEAA などで語られる Service Layer などを指していると思われます(違うならそう言ってください)。 PofEAA における Service Layer(以後、 Service と呼ぶものはこの PofEAA における Service です)はドメインオブジェクトからアプリケーションロジックを切り離すことを主目的としていま

    『DCI なんて面倒なだけで Service 使えばいい』への返答 - 鳩舎
  • FactoryGirlで用意されたデータに望むこと - ppworks.jp

    FactoryGirl というテストデータを用意するためのgemがあります。 読んだ人に、どんなデータが入ることを想定しているか、それが伝わるデータを用意していきたいですね。'MyString'じゃなくて、例えばどんなデータなのかを教えて欲しいのです。 伝わりづらい例 FactoryGirl.define do factory :post do title "MyString" content "MyString" end end 具体的な例 FactoryGirl.define do factory :post do title "pplog開発のコードレビューから学ぶpull requestによる自律的行動とコミュニケーション" content "pplogの過去のポエムを複数単語で絞込できるようになりました。" end end FactoryGirl.define do factor

    FactoryGirlで用意されたデータに望むこと - ppworks.jp
  • JavaScriptのデバッグ方法 – JSを嫌いにならないためのTips | POSTD

    この記事のオリジナルは voxxed に投稿されたものです。 JavaScript関連の問題を抱えるチームをサポートする仕事を通じて、いくつか共通の問題点があることに気づきました。もしあなたもJavaScriptに対するイライラを感じているのであれば、この記事は何らかの助けになるかもしれません。おことわり:私がお教えするヒントはすでにご存知のものもあるとは思いますが、うまくいけば、多少なりとも有用な情報があるかもしれません。特にエンタープライズアプリケーションやCMSソリューションを構築する際に有効なヒントです。チームの誰もが話したがらないCMSのコードについてお話しします。いずれも必要に応じて採用できるものです。 debuggerステートメント 大半のブラウザでサポートされているにもかかわらず、JavaScriptを書く際に最も活用しきれていない機能の1つです。debuggerステートメ

    JavaScriptのデバッグ方法 – JSを嫌いにならないためのTips | POSTD
  • blank?の振る舞いを詳しく調べてみた - Qiita

    概要 ActiveSupportによって定義されるObject#blank?の挙動について、興味位で無駄に詳しく調べたのでまとめる。 調査したバージョン:ActiveSupport 4.0.0 調べた内容 レシーバーがなんとなく「空っぽい時」にtrueを返してくれるようだが、厳密に言うとどんな時にtrueを返すのか? それらの振る舞いはどのような仕組みで実装されているのか? 調べ方 RailsGuidsを読む コードを読む わかった事 概要 レシーバーとなるクラスが何なのかによって、#blank?がどんな振る舞いをするかが変わる。 おおむね以下の4つのパターンに分けられる 1. #empty?にデリゲートした結果を返す 例えば、Hash#blank?はHash#empty?と同じ結果になる。 HashとArrayがこのパターン 2. インスタンスの状態にかかわらず、決め打ちで値を返す 例

    blank?の振る舞いを詳しく調べてみた - Qiita
  • インフラエンジニアがプレイするべきゲーム「Papers, Please」 - チューリング不完全

    プレイしたゲームがあまりにも自分の仕事内容を思い起こさせるものだったのでご紹介します。 (実はゲームをプレイしてこういう記事を書こうかな、と思ってから1年位経ってる) 今回ご紹介するのは「Papers, Please」というゲームで、Steamで980円で購入することができます。(ただし年に数回あるセールのときは80%OFFとかで買えるので、そっちを狙うのがオススメ) 2015/02/03 追記 iPadでもプレイできるらしい。 Steamにあるゲーム紹介の文章を以下に貼ります。 おめでとう。 10月度勤労抽選により貴方を入国審査官に命ずる。 即座配属のため、至急グレスティン国境検問所の入国管理省に赴くように。 貴方とその家族には、東グレスティンの8等級の住居が割り当てられる。 アルストツカに栄光あれ。 ここは、共産主義国アルストツカ。隣国コレチアとの6年間の戦争がついに終わり、国境の町グ

    インフラエンジニアがプレイするべきゲーム「Papers, Please」 - チューリング不完全
  • 【前編】七転八倒の先に見出したCTO道――グリーCTOに、色々ホンネで聞いてみた

    Twitterでハッシュタグ「#naoya_sushi」が生まれてしまうほど、無類の寿司好きとして知られる伊藤直也氏(@naoya_ito)。そんな伊藤氏をホスト役とし、トップエンジニアをゲストに招いて、寿司をつまみつつホンネで語ってもらおうという、この企画。 第二回のゲストは、伊藤氏が師と仰ぐ『グリー株式会社』の取締役 執行役員常務 最高技術責任者(CTO)である藤真樹氏(@masaki_fujimoto)。実は生魚が苦手という藤氏を寿司屋に招くという暴挙に及んだ今回は、どんな興味深い話が繰り広げられるのでしょうか。乞うご期待! — 伊藤直也(以下「naoya」):まずは僕と藤さんの関係性から読者に知らせようと思うんですが。藤さんとは、僕がはじめて『グリー』のオフィスに遊びに行ったときが初対面でしたけど、当時すでにPHP界隈でよく使われてたEthna(PHPのWebアプリケーショ

    【前編】七転八倒の先に見出したCTO道――グリーCTOに、色々ホンネで聞いてみた
  • [PDF]中央快速線等へのグリーン車サービスの導入について / 2015年2月4日 東日本旅客鉄道株式会社

    逗 233

    nyangry
    nyangry 2015/02/04
  • 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
  • 気遣いのあるデザインの裏にある努力 - ワザノバ | wazanova

    http://paulstamatiou.com/twitter-video/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 38分前 フレームワークやツールが進化することで、そこそこのスキルがあれば比較的短い期間でもそれなりのプロダクトをつくれるようになるという恩恵を世の中全体が享受できますが、一方で才能のある人たちは、その便利になった道具を利用して、更に先に進みます。そしてUIの競争は際限なく続きます。 一つの目のパターンは、意外なところまで気遣いをしているので、それを発見したときにポジティブな喜び、驚きを感じるところ。 Slackを使っていると、 登録済のパスワードの入力を求められる画面で、スマホキーボードでのパスワード入力を面倒に思う人、もしくはパスワードが長い人に配慮して、「パスワードを入力する替わり

  • ScaleOut | Supership

    日々の出来事、メンバーの働く様子や声、未来への想いなど、Supershipの“BE SUPER”なストーリーをシェアしています。

    ScaleOut | Supership
  • 君にグロースハックはいらない

    2015 年 1 月 30 日に Viling Venture Partners で行ったグロースハックに関する講演資料です。 『君にグロースハックはいらない』というタイトルは別にグロースハックを dis っているわけではなく、いずれ必要になる方法がまとまっていると思います。ただ 74% のスタートアップの死因が premature-scaling という報告もあるように、あまり初期においてスタートアップが (細かなテクニックなどを中心に膾炙してしまっている) グロースハックの手法に力を入れてスケールしてしまうと、意味がないどころか自分の首を絞めるだけなのでは、という考え方を中心にまとめています。

    君にグロースハックはいらない
  • 2007-12-13

    知らなかった。ごめん。 Redirect permanent /old/ http://hoge.hoge/new/ これは、「old」というディレクトリ以下のファイルにアクセスがあった場合に、自動的に「new」というディレクトリ以下にある同じファイル名をもつファイルへと HTTPリダイレクトさせます。 水の飲めるコップをデザインしてもらうとして、陶芸作家にガラスのコップを期待するのは無理がある。 素材の特性によって、表現できる形が規定されるから。 素材の特徴を把握するのに修行するわけで。 パソコンで作るから素材の違いはないけれども、円を極めた人、矩形を極めた人とか、白の人、黒の人みたいな極め方はあるんじゃないかと思うわけです。 プログラムはインプットとアウトプットを先に決めてから作るから、ブラックボックスでも、思ったとおりの答えが出てくるのを期待するのは当然。 デザイナにとっての入力は、

    2007-12-13
    nyangry
    nyangry 2015/02/04
  • Vim のウィンドウ分割機能 - Vim のブログ

    Vim は、ウィンドウを分割することが出来ます。Vim のウィンドウは、バッファと独立に存在する「覗き窓」です。 分割されたウィンドウで、同じバッファ(ファイル)を開くことも、別のバッファを開くことも出来ます。あるファイルを編集しながら、ウィンドウ分割を利用して、同じファイルの別の部分を参照することも、別のファイルを参照することも可能です。 Vim のウィンドウ関連でノーマルモードで利用できるコマンドは、すべて <c-w> から始まる2ストロークのコマンドです。 :h CTRL-W からすべてを網羅した一覧を確認することも出来ます。 下に使用頻度の高いウィンドウ分割関連のコマンドを紹介します。 コマンド動作覚え方 <c-w>s <c-w><c-s> :sp (ファイル名) :split (ファイル名) ウィンドウの上下分割 split <c-w>v <c-w><c-v> :vs (ファイル

    Vim のウィンドウ分割機能 - Vim のブログ
    nyangry
    nyangry 2015/02/04
  • メソッドの override を強制する - Qiita

    class Mage attr_reader :name def initialize(name) @name = name end def spell "#{job} の #{name} は #{magic} を唱えた!" end private # サブクラスで必ず実装しておいて欲しい。 def job raise NotImplementedError.new("You must implement #{self.class}##{__method__}") end # サブクラスで必ず実装しておいて欲しい。 def magic raise NotImplementedError.new("You must implement #{self.class}##{__method__}") end end class BlackMage < Mage private def job "黒

    メソッドの override を強制する - Qiita
    nyangry
    nyangry 2015/02/04
  • couponとvoucherはニュアンス的に何が違いますか? - voucherは権利を持った人が、使うことのできる引換券... - Yahoo!知恵袋

    voucherは権利を持った人が、使うことのできる引換券のイメージが強いですね。子供手当もバウチャー化しては、という意見もありました。つまり、現金で渡すと子供以外に使われるかもしれず、来の目的からそれる可能性があるから。 couponは万人あてに印刷されたものを、使いたい人が使って金券として使うイメージがあります。スーパーで切り取って使うようなイメージです。 いかがでしょうか。

    couponとvoucherはニュアンス的に何が違いますか? - voucherは権利を持った人が、使うことのできる引換券... - Yahoo!知恵袋
  • Vim に惚れるシーン(IP アドレス と ポート番号 を分ける) - Qiita

    > show nat descriptor address detail 参照NATディスクリプタ : 1, 適用インタフェース : LAN2(1) Masqueradeテーブル 外側アドレス: primary/xxx.xxx.xxx.xxx ポート範囲: 60000-64095, 49152-59999, 44096-49151 12231個使用中 プロトコル 内側アドレス 宛先 マスカレード TTL(秒) UDP 172.22.11.13.63646 200.172.127.74.53 59355 1 TCP 172.19.1.17.61312 113.127.234.60.80 56468 1 TCP 172.32.3.49.50138 61.32.128.97.110 56737 1 TCP 172.25.4.6.56077 51.235.213.115.80 50755 39 T

    Vim に惚れるシーン(IP アドレス と ポート番号 を分ける) - Qiita
    nyangry
    nyangry 2015/02/04
  • levenshtein gem で DroidKaigi と DanKogai の類似度を測定する #ruby #droidkaigi - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    levenshtein gem で DroidKaigi と DanKogai の類似度を測定する #ruby #droidkaigi - Qiita
  • Riot.js試してみた - Qiita

    Reactで消耗しているmizchiです。 とりあえず一通り動かしてみた。webpack上でtag-loader使ってtagを動的にコンパイルすると便利だった。 https://github.com/mizchi-sandbox/webpack-riot-skeleton Overview 軽量仮想DOM実装 Vue風の独自文法 riotが軽量なのは独自の文法に対してプリコンパイラを持っててパーサがランタイムから切り離されてることと、仮想DOM実装が当に最低限で結構サボってるようにみえる。 仮想DOMの実装部分はここ https://github.com/muut/riotjs/blob/master/riot.js#L348-L413 一通り書いてみた結果、独自シンタックスが最大の特長で、イベントハンドラ周りで基的にDOMべったりのコードを要求されるといった印象。 JSとHTMLを並

    Riot.js試してみた - Qiita
  • よく考慮したコーディングとパフォーマンスの関係 - ワザノバ | wazanova

    http://hacksoflife.blogspot.com.au/2015/01/the-four-horsemen-of-performance.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Benjamin Supnik曰く、高いパフォーマンスをだせるソフトウェアは、高いパフォーマンスを目指したデザインプロセスが大切。「当にひどい状態になったら、プロファイラで調べて直すから。」といっても色々積み重なると簡単には直せなくなると指摘しています。そして、ゲーム開発において遅いコードを生み出すパターンを挙げてくれてます。 1. 無駄なことをする テーブルを再描画する際、ユーザが見える部分だけでなく、テーブル全体のデータを取得していないか? 同じ値が計算されて何度も使われるケースで、都度計