タグ

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

  • リポジトリの言語割合にドキュメントを含めないようにする方法 - Qiita

    GitHubには各リポジトリがどういった言語で構成されているのかを表示する機能がある(↓こういうの) デフォルトでGitHubがいい感じにしてくれるが、標準から外れたディレクトリ構成になっていると、意図しない感じになったりすることがある。具体的には、標準とは違う場所に 依存ライブラリが直接置かれている ドキュメントが書かれている と言語の割合が狂う。例えば、↑の画像で引用したリポジトリではJavaScriptのモジュールを作っているが、標準とは少し違う場所にドキュメントを置いている都合で、意図せずCSSHTMLが合算されてしまっている。気にしなければいいという話ではあるのだが、どうしても気持ち悪い場合はリポジトリルートに .gitattributes というファイルを用意して みたいにすることで解決することができる。こうすると special-vendored-path に入っているファ

    リポジトリの言語割合にドキュメントを含めないようにする方法 - Qiita
  • Capistrano3のデプロイフレームワークの使い方 - Qiita

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

    Capistrano3のデプロイフレームワークの使い方 - Qiita
  • schema.orgに準拠してクローラと会話しよう - QiitaのSEO事情(後編) - Qiita

    前編ではHTML5のアウトラインを綺麗にする、というお話でした。アウトラインを綺麗にすれば、検索エンジンにコンテンツの階層構造がどうなっているのか、正しく教えることができます。 けどそれだけでは1つ1つのまとまりが一体何を表しているのかが不明です。 schema.orgに準拠することで、そこに何が書かれているのか、を検索エンジンに教えることができます。 schema.orgとは schema.org はGoogle, Microsoft, Yahoo!などの検索エンジンベンダーが集まってマークアップ方式を標準化している組織とその標準化された仕様を文書化しているサイトです。 例えば「ここは著者のことを書いています」「これは著者の名前です」「この記事が公開されたのはこの日時です」などなど、HTMLの機能だけでは伝えきれない詳細な情報をクローラに伝えるための手段が色々定義されています。 ちなみに

    schema.orgに準拠してクローラと会話しよう - QiitaのSEO事情(後編) - Qiita
  • 結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 - Qiita

    結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 一年ほど前に JavaScript - jQuery.Deferredを使って楽しい非同期生活を送る方法 - Qiita [キータ] という記事を書きました。 で、一年経って、ふと、「もっと分かりやすくjQuery.Deferredの便利さを説明できるんじゃないか」と思い立ってざざざっと書いてみました。 小話と言うにはちょっと長いけど。 -- jQuery.Deferredを使うと嬉しいのは、jQuery.Deferredの仕様を満たす部品同士を簡単に組み合わせることが可能だからです。中には処理を書き下すことができるとかコールバックのネストを防げるのがいいとか言う人もいますが、個人的にこっちのほうがよっぽど重要だと感じます。 例えるならレゴブロックです。レゴブロックはあの凸と凹を持ってるブロックを自由に組み合

    結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 - 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
  • 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
    aki77
    aki77 2013/04/17
  • GitHubのようなtextareaの補完機能を実装する - カーソル位置の取得 - Qiita

    続編 JavaScript - Qiitaのtextarea自動補完がOSSになりました GitHubのコメントでは@と入力するとカーソルの下に入力補完が出現する。さらっとやっているが、実はこれが結構難しい。なぜ難しいのかというと、JavaScriptではカーソルが何文字目にいるかは分かるが、 カーソルのXY座標を取得するAPIが存在しない からだ。カーソル位置が分からなければ、適切な位置に補完候補を表示することができない。では一体どうすればいいのか? 今回Qiitaではコメント欄でのメンションの補完機能を実装した。稿では前述の問題を解決するために用いたテクニックを解説する。 ちなみにこのメンション補完機能はチーム用プライベートQiitaである「Qiita:Team」でも勿論使える。現在絶賛無料トライアル実施中なので、興味を持たれた方はそちらも使ってみて欲しい。 要約 textarea内

    GitHubのようなtextareaの補完機能を実装する - カーソル位置の取得 - 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
    aki77
    aki77 2013/02/27
  • jQuery.Deferredを使って楽しい非同期生活を送る方法 - Qiita

    続編も書きました : 結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 jQuery version1.5で導入されたjQuery.Deferredは、無くてもコードを書けるけど、使えば少しコードが綺麗かつ見通しが良くなる、という機能。 無くても書けるという機能がなかなか使われないというのは世の常なので、jQueryクックブック(O'REILLY)の中でも言及されていない、なんとも寂しい状況だ。 ちょっとここらで一肌脱いでやるか、という趣旨で書き始めたら無駄に長くなった。 とりあえず使ってみたい、という人は下の方の「jQuery.Deferred自体の使い方」までジャンプするとよい。 jQuery.Deferredとはどういう場面で使うものなのか コールバックを渡して非同期処理完了時にそれを呼び出してもらうような場面。 具体的には $.get('hoge',

    jQuery.Deferredを使って楽しい非同期生活を送る方法 - Qiita
    aki77
    aki77 2012/11/19
  • UNIXでPython,Ruby,Perl,Node.jsのバージョン管理環境構築 - Qiita

    研究室の新入生向けに書いたやつ。 各種スクリプト言語のバージョン管理をするための環境を構築する。 pythonbrew, rvm, perlbrew, nvmでバージョン管理をし、pip, gem, cpanm, npmでパッケージの管理をする。 アプリについては【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超を読んで適当に入れればいい。 Macの人は「homebrewのインストール」までは順番にやっていく。それ以降は必要なものだけやればいい。 その他のUNIX環境の人はyumなりaptなりを使って必要なパッケージを用意してから、「homebrewのインストール」以降で必要なものをやればいい。 OSXのバージョンを上げる []->[Software Update...] インストール完了するまで待つ Xcodeインストール Download ここからXcod

    UNIXでPython,Ruby,Perl,Node.jsのバージョン管理環境構築 - Qiita
  • アプリエンジニア向け:「サーバがなんか重い」時にすること - Qiita

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

    アプリエンジニア向け:「サーバがなんか重い」時にすること - Qiita
  • Backbone.js入門 「Router と History」 - Qiita

    閲覧上の注意 この記事で対象としているバージョン0.5.3は結構古いので注意してください。 その他の割りと新しい情報は Backbone.js Advent Calendar 2012 などにあります。 (追記ここまで) Backbone.js入門の最終回は Router と History です。 Backbone.js入門 「MVC」で述べたように、URL が変更された時に発生する popstate または hashchange イベントを監視してルーチンを起動するのが Router の役目です。History は Router の裏方で頑張る実体で、直接操作することはほとんどありません。 URL が変更された時にアクセスされるのが Router なので、Rails 的な MVC の枠組みで言えばコントローラと言えますし、伝統的な MVC で言えば全てのアンカーとブラウザの進退ボタンを

    Backbone.js入門 「Router と History」 - Qiita
  • Backbone.js入門 「Model」 - Qiita

    閲覧上の注意 この記事で対象としているバージョン0.5.3は結構古いので注意してください。例えばこの記事の内容でいうと、validateに失敗したときに発生するイベントは'error'から'invalid'に変更されています。 その他の割りと新しい情報は Backbone.js Advent Calendar 2012 などにあります。 (追記ここまで) 今日のテーマは Model です。 MVC に関する回で Backbone.js における MVC は Rails などの WAF における MVC よりは伝統的な MVC に近い というようなことを書きました。 しかしながら、モデルに関して言えばどちらの場合も大差ありませんから、気分が楽です。 Rails におけるモデルである ActiveRecord が OR マッパーとしての役割を持っていたり、データのバリデーション機能を持っていた

    Backbone.js入門 「Model」 - Qiita
  • Backbone.js入門 「View」 - Qiita

    閲覧上の注意 この記事で対象としているバージョン0.5.3は結構古いので注意してください。例えばこの記事の内容でいえば、$elプロパティなどが追加されています。 その他の割りと新しい情報は Backbone.js Advent Calendar 2012 などにあります。 (追記ここまで) Backbone.js Advent Calendar もようやく折り返し地点。 そんな節目のエントリで取り上げるのが Backbone.js プログラミングでの最重要登場人物の一人である View です。 前回のエントリで Backbone.js では View が各種の処理を起動するということを説明しました。 今回は View を使って、イベントハンドリングを行う方法について主に解説していこうと思います。 View と DOM tree View の役割は大きく分けて2つあります。 特定の DOM

    Backbone.js入門 「View」 - Qiita
  • Backbone.js入門 「Events」 - Qiita

    閲覧上の注意 この記事で対象としているバージョン0.5.3は結構古いので注意してください。この記事でいえば、bindは無くなり、現在ではonやlistenToが使われています。 その他の割りと新しい情報は Backbone.js Advent Calendar 2012 などにあります。 (追記ここまで) ネタ切れ感が否めないBackbone.js Advent Calendarですが、今回から何回かに分けて懇切丁寧な入門記事を書いていこうと思います。 以下のように書き進めていく予定です。 Events View Model ViewとModelの連携 Collection ViewとModelとCollectionの連携 RouterとHistory なおここで扱うBackbone.jsのバージョンは0.5.3です。 Backbone.jsのドキュメントを開くとまず最初に解説されているの

    Backbone.js入門 「Events」 - Qiita
  • Modelの一対多を実装する - Qiita

    例えば、Blogテーブルにuser_idカラムがあり、これがUserテーブルへの外部キー制約になっているような場合、WebフレームワークではBlogモデルにuserフィールドを持たせて、そのフィールドにメッセージを送ると、参照しているUserモデルのインスタンスを返してくれるようになっている場合が多いと思います。 このような関係をBackbone.jsで実現しようと思い、つい以下のように書きたくなってしまうかも知れません。 var User = Backbone.Model.extend({}); var author = new User({id: $(".user_id").html()}); var Blog = Backbone.Model.extend({}); var entry = new Backbone({text: $(".text").html(), user_id:

    Modelの一対多を実装する - Qiita
  • js->coffee移行にあたって考えたこと - Qiita

    個人製作のシステムのjsをcoffeeに完全移行したのでその雑感を書きます。あくまでも個人的な感想です。感じ方は人それぞれです。 ちなみに僕は勉強を兼ねて手で移行させましたが、js2coffeeというツールを使うと自動で変換してくれるらしいです。 先に結論 coffeeの方がいいと思う。 よくある批判に「js書けばいいじゃん」というのがあるけど、極端な話、「アセンブラ書けばいいじゃん」と高級言語が出てきた頃に言ってた人と主張の方向性は似てると思う。極端すぎるけど。 jsには落とし穴がいっぱいある。慣れてもたまにはまる。varを忘れたり「関数の頭で全部のvarを列挙する」というプラクティスに従ってたら、冗長になって管理するコスト高くなったり。 coffeeを使うとそういう余計な問題を意識しなくてよくなるのはとても大きい。 しかもjsでできることの全てをcoffeeでできる。工夫が必要になる場

    js->coffee移行にあたって考えたこと - Qiita
  • 1