タグ

ブックマーク / qiita.com/yuku_t (13)

  • 新QiitaでReactをやめてhyperappを採用した背景 - Qiita

    12/1 に Qiita のトップページをリニューアルしました。これまで React を使っていましたが、それをやめて hyperapp を採用しました。まわりを見てもあまり採用事例が見当たらないので、この記事では一体なんで今をときめく React ではなく hyperapp を選択したのか、どういうところが魅力的なのかについて プレゼンテーション層を実装するためのツールとして 学習コスト の観点から書きたいと思います。なおこの記事に書かれていることは全て個人の感想であり、はっきりいって個人の日記レベルです。 それと hyperapp の開発者が社内にいるという事情もあるので、そこら辺さっぴいて読んでください。 TL;DR プレゼンテーション層を実装するためのツールとして React は機能過多だし、機能不足 hyperapp は過不足ない 学習コスト 仮想 DOM は学ぶ価値のある知識

    新QiitaでReactをやめてhyperappを採用した背景 - Qiita
    taka222
    taka222 2017/12/29
  • 検索・置換を便利にするvim-abolish - Qiita

    これは Vim Advent Calendar 2014 11日目 の記事です。 日頃Railsを書いている。その際vim-abolishが便利なんだけど、日語記事で紹介されている場面をあまり見ないので紹介したい。 インストール インストールはいつものとおりVundleやNeoBundleで。 3つ機能 ところでvim-abolishは大きく分けてAbbreviation、Substitution、Coercionの3つに分類されるが、Abbreviationは使っていないので、SubstitutionとCoercionだけを取り上げる。 Substitution Vimで :substitute と言えば置換処理に使うコマンドだが、Substitutionはこの置換処理に加えて検索を便利にしてくれる機能だ。 賢い検索 個人的にvim-abolishいれてから普通の検索はあまり使わなくな

    検索・置換を便利にするvim-abolish - Qiita
    taka222
    taka222 2016/08/16
    便利
  • RDB - 実例で学ぶ、JOIN (NLJ) が遅くなる理屈と対処法 - Qiita

    "Nested Loop Joinしか取り上げて無いのにタイトルが大きすぎないか" と指摘を頂いたので、タイトルを修正しました。Merge JoinとHash Joinのことはまた今度書こうと思います。 「JOINは遅い」とよく言われます。特にRDBを使い始めて間がない内にそういう言説に触れた結果「JOIN=悪」という認識で固定化されてしまっている人も多いように感じています。 たしかに、JOINを含むようなSELECT文は、含まないものに比べて重たくなる傾向があることは事実です。また、質的に問い合わせたい内容が複雑で、対処することが難しいものも存在します。しかし、RDBの中で一体どういうことが起きているのかを知り、それに基いて対処すれば高速化できることも少なくないと考えています。 稿では、JOINの内部動作を解説した上で、Webサービスを作っているとよく出てくるJOIN SQLを例題に

    RDB - 実例で学ぶ、JOIN (NLJ) が遅くなる理屈と対処法 - Qiita
    taka222
    taka222 2015/07/12
  • Qiitaの画像アップロード機能も簡単に実装できる。そう、S3ならね。 - Qiita

    QiitaとKobitoで画像アップロードができるようになりました。 その後ろ側をちょっぴり公開します。 件名からも分かるように、背後ではAWSのS3を画像ストレージに採用しています。 画像アップロード機能をリリースしました - The Official Qiita Blog Kobito v1.6.1リリース: ドラッグ&ドロップやスクリーンショット撮影で簡単に画像を添付できるようになりました! - The Official Qiita Blog 用語統一 サーバ はQiitaのサーバのことを指すことにします。(つまり、S3ではない、ということ) また クライアント は各ユーザのブラウザのことを指します。 要件 画像アップロード機能を実装するにあたっていくつかの要求がありました。 成りすましを防げる アップロードされたファイルを管理できる 自分達のサーバに負荷をかけたくない 変な画像のア

    Qiitaの画像アップロード機能も簡単に実装できる。そう、S3ならね。 - Qiita
    taka222
    taka222 2015/02/25
  • コールバック関数内のthisを束縛する - Qiita

    今回はBackbone.jsが依存するunderscore.jsに関する話題です。 Backbone.jsに限らず、JavaScriptではコールバック関数内でthisがグローバルのwindowを差してしまうため、この問題に対処するために、以下のようにthatやselfといった変数にthisを代入してコールバック内で使うということをすることがあると思います。 function () { var that = this; someFunc(function () { this; // window that; // 外側のthis }); }

    コールバック関数内のthisを束縛する - Qiita
    taka222
    taka222 2015/01/19
  • ActiveRecordを高速化するAdequateRecordは何をするものか - Qiita

    TL;DR AdequateRecordはActiveRecordの機能の名前 新しいgemとかでは無い #find #find_by そして #find_by_XXXを2倍に高速化する 引用: AdequateRecord Pro™: Like ActiveRecord, but more adequate | Tenderlovemaking 内部的にはクエリ呼び出しの度にActiveRecordが生成するオブジェクトをキャッシュする 対象を#findなどに限っているのは、生成されるオブジェクトや条件が単純だから Rails 4.2.0 beta1 リリース 先日Rails 4.2.0 beta1がリリースされて、そのリリースブログの中にAdequate Recordなるものが ActiveRecordの動作 ActiveRecordの#whereなどを使ってDBからレコードを引っ張っ

    ActiveRecordを高速化するAdequateRecordは何をするものか - Qiita
    taka222
    taka222 2014/08/26
  • Capistrano3におけるRailsのデプロイタスクの内部実装 - Qiita

    CapistranoはRailsアプリケーション専用のデプロイツールとして生まれたという歴史的な背景から、今までRails用の機能がCoreモジュールに組み込まれていましたが、昨年リリースされたCapistrano3からはそういった特定のドメインに特化した機能がCoreから排除されて別のRubygemsとして提供されるようになりました。 稿では、それらRailsデプロイまわりの機能について見ていきたいと思います。 参考 Capistrano3のデプロイフレームワークについては下記の記事を参照してください。 Capistrano3のデプロイフレームワークの使い方 - Qiita capistrano/railsとcapistrano/bundler 具体的にはRailsまわりの機能はcapistrano-railsとcapistrano-bundlerというRubygemsに分割されていま

    Capistrano3におけるRailsのデプロイタスクの内部実装 - Qiita
    taka222
    taka222 2014/08/09
  • 中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita

    TL;DR MVCもレイヤで捉えて関係性の設計をするといいのでは 普通のRubyオブジェクトを積極的に使いたいですね 「パーフェクト Rails」に期待しましょう 長くなって面倒くさくなり、途中から手抜き感が半端ないですが許してください この記事の位置付けなど 7 Patterns to Refactor Fat ActiveRecord Models - Code Climate Blog [翻訳] エリック・エヴァンスのドメイン駆動設計 エンタープライズ アプリケーションアーキテクチャパターン これらの参考文献を踏まえてRailsアプリケーションのリファクタリングをしていて、だいぶ方向性や考え方がまとまってきたので、これからチームに合流する人を想定読者に、Qiitaがどんな感じで作られているのかを文書化したものです。(参考文献の一覧は記事の最後にあります) 内容的には文献[2,3]を踏

    中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita
    taka222
    taka222 2014/07/21
  • Capistrano3のデプロイフレームワークの使い方 - Qiita

    Capistranoはバージョン3から汎用的なデプロイフレームワークになりました。タスクのフックを利用することで簡単に自分のアプリケーション環境に特化したデプロイプロセスを記述することができます。 稿では、この汎用化されたデプロイ機能の使い方に焦点を絞って解説したいと思います。より基的なCapistrano3の解説は 入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineers' Blog がよくまとまっているので、そちらを参考にしてください。この参考記事では "5. Capistranoデフォルトタスクの消去" でCapistranoの新規導入時のコストを下げる目的で、このフレームワーク機能を消去しています。稿はこのフレームワーク機能の使い方を解説するものです。 deployとframeworkの2つの抽象度が用意されている Capi

    Capistrano3のデプロイフレームワークの使い方 - Qiita
    taka222
    taka222 2014/06/11
  • MavericksでC拡張を含むgemをインストールできない場合の対処法 - Qiita

    流れ MavericksにOSをアップデートした後に boxen を実行したら gem install json -v '1.8.1' に失敗した。Boxenはシステムのrubyを使って実行しなければならず、MavericksからシステムのRubyが2.0.0p247に上がった影響で色々と環境構築から必要になるみたいだ。 分かりやすいように gem コマンドだけを実行するとこんなエラーがでる。 $ sudo gem install json -v '1.8.1' Fetching: json-1.8.1.gem (100%) Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /Sys

    MavericksでC拡張を含むgemをインストールできない場合の対処法 - Qiita
    taka222
    taka222 2013/10/31
    ”Ruby - MavericksでC拡張を含むgemをインストールできない場合の対処法 - Qiita [キータ]”
  • Facebookみたいにtextareaの一部を強調する - Qiita

    Facebookで人物を補完すると、その人物名の周りに枠が表示されて強調されますよね(gif画像参照)。 これのやり方を解説します。 TL;DR textareaの強調表示は、textareaを透明にして後ろにいい感じの背景を設置してるだけ textareaの中にDOMを入れても表示されない パッと考えるとtextareaの中にDOMツリーを入れるとそれが表示されるんじゃないか、と思うかも知れません が、ぜんぜんそんなことは無くて、そのまま文字列が表示されてしまいます。 ご存知のようにtextareaやinputは、他の要素のように子要素を表示するのではなく、自身のvalue属性の値を画面に表示する働きをします。value属性は文字列を格納するためのものなのでDOMを入れられないわけですね。 強調用のDOMを重ねあわせる textareaにはDOMをそのまま入れられないので、仕方がなく周り

    Facebookみたいにtextareaの一部を強調する - Qiita
    taka222
    taka222 2013/09/25
    ”JavaScript - Facebookみたいにtextareaの一部を強調する - Qiita [キータ]”
  • Gitフックを使っておかしいRubyコードをコミットできないようにする - Qiita

    #!/bin/sh git diff --cached --name-only --diff-filter=AM | grep '\.rb$' | xargs rubocop exit $? grep '\.rb$' で拡張子が rb であるファイル、という意味なので、必要に応じてこの部分を変更してください。例えば app ディレクトリ以下のみにしたければ ^app/.*\.rb$ にします。 忘れずに実行権限をつけます。

    Gitフックを使っておかしいRubyコードをコミットできないようにする - Qiita
    taka222
    taka222 2013/08/22
    ”Gitフックを使っておかしいRubyコードをコミットできないようにする - Qiita [キータ]”
  • Rubocopをsyntasticを使ってVimから自動実行する - Qiita

    NeoBundle 'scrooloose/syntastic' let g:syntastic_mode_map = { 'mode': 'passive', \ 'active_filetypes': ['ruby'] } let g:syntastic_ruby_checkers = ['rubocop'] syntastic_mode_map は 'active' もしくは 'passive' を指定します。 'active' だとバッファを保存するたびにsyntasticが走り、 'passive' の場合は :SyntasticCheck 実行時に走ります。 'active_filetypes' は保存の度にsyntasticを走らせるファイルタイプを指定します。 2つをあわせると、基的にsyntasticは走らせないけど、rubyのときだけは自動的に走らせる、という設定にな

    Rubocopをsyntasticを使ってVimから自動実行する - Qiita
    taka222
    taka222 2013/08/17
    ”Ruby - Rubocopをsyntasticを使ってVimから自動実行する - Qiita [キータ]”
  • 1