タグ

ブックマーク / qiita.com/yuku_t (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
  • powを使ってdevelopment以外のRAILS_ENVでRailsを起動する - Qiita

    ここでは書かないけれど MacRails の開発をするなら pow が便利。 閑話休題 プロジェクトのルートに .powenv というファイルを作る もしくは $HOME/.powrc に書いてもいいけれど、こちらに書くと全ての Rails が local で起動されるようになるので注意。 これで pow が local として起動してくれる。開発サーバの development とローカル Mac で設定を変えたい場合に使える。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do

    powを使ってdevelopment以外のRAILS_ENVでRailsを起動する - Qiita
    a2ikm
    a2ikm 2015/05/01
  • よく実行するコマンドにキーバインドを割り当てると捗る話 - Qiita

    履歴を使えば同じコマンドを高速に実行できますが、キーバインドを使えばさらに高速化することが可能です。 zshのキーバインドの基礎を紹介します。 zshのキーバインドの概要 zshには bindkey という組み込み関数が存在します。詳しくは zshzle(1) の ZLE BUILTINS を読めということなんですが、これを使うとキーバインドを設定できます。 例えばzshをemacsモードで使っているとCtrl-Aでカーソルを先頭に移動させられますが、あれは内部的にはこのキーバインド機能を使って実現されているようです。

    よく実行するコマンドにキーバインドを割り当てると捗る話 - Qiita
    a2ikm
    a2ikm 2015/03/17
  • 実行時に標準出力がパイプされているかどうか判断するにはisattyを使う - Qiita

    % mysql -e 'SELECT * FROM life;' +------------------------+ | カルマ | +------------------------+ | リア充爆発しろ | | 他人の不幸で飯がうまい | +------------------------+

    実行時に標準出力がパイプされているかどうか判断するにはisattyを使う - Qiita
    a2ikm
    a2ikm 2014/12/12
    IO#isatty
  • .zshrcで見かけるautoloadの意味と使い方 - Qiita

    今回はこの autoload が何をするものなのか解説します。 autoloadはシェル関数を読み込む autoload はシェル関数を 自動読み込み するシェルの組み込み関数です。上記のスクリプトの場合、 compinit というシェル関数を自動読み込みします。 シェルコマンドは PATH に入っていればそれだけで実行可能でしたが、シェル関数の場合は関数を定義しなければ使えません。 autoload はファイルシステム上にある関数定義を読み込むための関数なのです。そして autoload 探索するディレクトリは FPATH に入っています。 余談ですが FPATH だと : 区切りの文字列、 fpath だと配列になります。PATH と path と同じですね。 シェル関数とシェルコマンドの違い autoloadを使ってみる % mkdir ~/functions % FPATH="${

    .zshrcで見かけるautoloadの意味と使い方 - Qiita
    a2ikm
    a2ikm 2014/11/13
  • 中規模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
  • Facebookみたいにtextareaの一部を強調する - Qiita

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

    Facebookみたいにtextareaの一部を強調する - Qiita
    a2ikm
    a2ikm 2013/09/25
  • Qiitaのtextarea自動補完がOSSになりました - Qiita

    jQuery.textcomplete(デモ) GitHubのようなtextareaの補完機能を実装する - カーソル位置の取得 を書いたのも今は昔、いつか続きを書こう書こうと思いながら気がつけば5ヶ月が過ぎました なんか続きを書くのが面倒くさくなったのと、某日最大レシピ共有サイトの技術部長の人から「OSSにして欲しい」という要請を人伝に受け取ったこともあって、OSS化した次第です。 ライセンス MITライセンス 簡単な使い方 簡単に説明します。詳しくは README を読んでください。 まず jQuery.textcomplete は名前からも分かるように jQuery プラグインになっているので、別途 jQuery が必要です。 <script src="path/to/jquery.js"></script> <script src="path/to/jquery.textcomp

    Qiitaのtextarea自動補完がOSSになりました - Qiita
  • この夏Google Analyticsが新しくなるって知ってた?Universal Analyticsを予習しよう - Qiita

    この夏Google Analyticsが新しくなるって知ってた?Universal Analyticsを予習しようJavaScriptGoogleAnalytics 意外と認知度が低い感じですが、Google Analyticsがそろそろ新しくなりますよ! 現在パブリックベータとして提供されているUniversal Analyticsが 予定では 7月中 に正式リリースになります。つまり今月! 世の中見渡していると非エンジニアなウェブマスター向けの紹介記事が多い印象なので、ここではJavaScriptのインタフェースがどう変わったか、それを使ってエンジニアはどういうことができるようになるか、みたいな、よりエンジニア向けの話題を中心に書いてみたいと思います。 ソースは公式ドキュメントなので、より詳しく知りたい方はそちらを参照してください。 簡単なまとめ Universal Analytics

    この夏Google Analyticsが新しくなるって知ってた?Universal Analyticsを予習しよう - Qiita
  • Qiitaの画像アップロード機能も簡単に実装できる。そう、S3ならね。 - Qiita

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

    Qiitaの画像アップロード機能も簡単に実装できる。そう、S3ならね。 - Qiita
  • NeoBundle+localrcでプロジェクト固有のプラグインを遅延読み込み - Qiita

    tpope/vim-railsのように、プロジェクトに応じて読み込むかを変えたいプラグインが存在する。Djangoプロジェクトvim-railsを読み込んでも無意味だからだ。 それをNeoBundle+localrcで実現する NeoBundleLazyの復習 Shougo/neobundle.vimの:NeoBundleLazyを使うと、特定のfiletypeのバッファを開いた時にだけプラグインを読み込むことが簡単にできる。これによって不必要なプラグインを読み込まずに済むようになるのでvimの高速化が期待できる。 例えば次のように書けばcoffeescriptのファイルを開いたタイミングでkchmck/vim-coffee-scriptを読み込む。

    NeoBundle+localrcでプロジェクト固有のプラグインを遅延読み込み - Qiita
  • A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita

    オバマ大統領の再選に大きく寄与したことで大きな注目を集めているA/Bテスト。A/Bテストを導入した、することを検討している、という開発現場も多いのではないだろうか。 そんな中、Web上で次のような議論を見つけた。 20 lines of code that will beat A/B testing every time Why multi-armed bandit algorithm is not “better” than A/B testing 一言でまとめると「A/Bテストよりバンディットアルゴリズムの方がすごいよ」「いやいやA/Bテストの方がすごいし」ということだ。 で、バンディットアルゴリズムとは一体何者なのか? そこでBandit Algorithms for Website Optimization (O'REILLY)を読んでみた。その結果分かったことを踏まえてざっくりと

    A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か - Qiita
  • Boxen使わなくても許されるのは2012年までだよね - Qiita

    続編を書きました - Boxen使ってて許されるのは2013年だけだった すごいすごいと話題な割に誰も使っていないと話題のBoxenを使ってみた。 3行で分かる結論 Boxenは... Macのセットアップを自動化してくれる 個人用途でも十分便利だが真価を発揮するのは大人数で使うとき Puppet知らなくても案外使える この記事で分かるもの Boxenの個人用途での使い方 Boxenのチーム用途での使い方 Puppetのmanifestの簡単な書き方 この記事を読んでも分からないもの Puppetの詳しい使い方 Boxenを使うと何ができるのか BoxenはGitHub社が開発しているシステムで、Macのセットアップを簡単にできるようにしてくれる。新しくMacを購入したら開発環境や各種アプリケーションをインストールすることから始めるが、これをコマンド一発で全てやってくれるようになる。 Bo

    Boxen使わなくても許されるのは2012年までだよね - Qiita
    a2ikm
    a2ikm 2013/02/27
    クリーンインストールしたときのために、いつかやらなければらならい…
  • zshでログイン・ログアウト時に実行されるファイル - Qiita

    今まではバカの一つ覚えのように何でもかんでも$HOME/.zshrcに書いていたけど、サーバ管理をよくするようになってきて、複数アカウントの共通設定とかをしたくなったので調べた。 順番 以下の$ZDOTDIRは指定されていない場合$HOMEになる。 ログイン時 /etc/zshenv $ZDOTDIR/.zshenv /etc/zprofile $ZDOTDIR/.zprofile $ZDOTDIR/.zshrc /etc/zlogin $ZDOTDIR/.zlogin ログアウト時 $ZDOTDIR/.zlogout /etc/zlogout 言うまでもなく、個人的な設定は$ZDOTDIRに、汎用的な設定は/etcに書く。 各種説明 zshenv 必ず実行される。/etc/zshenvは上書き不可で$PATHや$MANPATHの設定がされる。 $ZDOTDIR/.zshenvにはいかなる

    zshでログイン・ログアウト時に実行されるファイル - Qiita
    a2ikm
    a2ikm 2013/02/25
  • なぜGoogleはJSONの先頭に while(1); をつけるのか - Qiita

    Stack Overflowに面白い質問があったので紹介する javascript - Why does Google prepend while(1); to their JSON responses? - Stack Overflow 質問 Googleのサービス内で使われるJSONの先頭に while(1); てついているのは何故? 例えばGoogle Calendarではカレンダーを切り替えるときに以下のような内容のデータがサーバから返される。 while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],['remindOnRespondedEventsOnly','true'],['hideInvitations_remindOnRespondedEventsOnly','false_true'],['C

    なぜGoogleはJSONの先頭に while(1); をつけるのか - Qiita
    a2ikm
    a2ikm 2013/02/06
    パースする前に先頭何文字を取り除いてるのか//文法エラーにするなら`)`だけでもいいような
  • アプリエンジニア向け:「サーバがなんか重い」時にすること - Qiita

    アプリケーションエンジニアの人には「なんか重い」という状況に遭遇したらインフラの人にタスクを投げる、という人もいるかも知れません。けど、その重さのどこに原因があるのか。CPUか、ネットワークか、IOかくらいの診断はできた方がアプリ開発においても有益です。 「せっかくつくったシステムがなんか重い」 そんな時にアプリケーションエンジニアとしてできることを書きます。 職のインフラの人にはぬるい内容だと思います。何を隠そう僕自身がアプリ寄りの人間なので、突っ込んだ話はできないのです。あしからずご了承ください。 なんかサーバが重いなー まずはロードアベレージを調べる サーバが重いと思ったら、まず真っ先にすべきことは対象ホストにSSH接続してロードアベレージを調べることでしょう。ロードアベレージとは 実行されずに待たされているプロセスの数 のことで、多すぎるとやばいと認識しておきましょう。ロードアベ

    アプリエンジニア向け:「サーバがなんか重い」時にすること - Qiita
  • 1