脊髄反射公的目録
tumblr
アーカイヴ

rvm+bundler で便利生活

rvmとbundlerを併用して,複数のバージョンのruby複数のgemを管理する.


なぜrvmだけではダメなのかというと,rvmのgemsetでは複数のgemが必要なgemsetを用意する際に必要なだけ

gem install hoge

と指定してやらなければならないし,
アプリごとにgemを使い分けるということがしにくい
(gemsetの量がアプリ分だけ増えてしまいどのアプリにどのgemsetを割り当てていたかが分からなくなる)


bundlerがあればアプリごとに必要なgemをインスコできる.
その際Gemfileに適当な感じで記述してやって,railsアプリ用に作成したディレクトリで

bundle install --path vendor/bundle

とすることで,gemの依存関係とかをよしなに取り計らってくれる.
だからrvmで複数バージョンのrubyの管理を,bundlerでアプリごとに必要なgemの管理をそれぞれ分担したほうが楽.
ーーという理解でいいのだろうか.


つまり,rvmのgemsetは使わずにbundlerでgemを管理するってことだよね?
複数のバージョンのrailsの管理は,rvmのgemsetを使えば良いかな.


追記:2012・12・6
いや別にrailsの管理もbundlerですればおkか.

topcoderに参戦したいんだけど,macchromeではjavaアプレットが開けないのですごく残念です.firefox使うしか無いのか.
あとなんかproxy刺してると色々とめんどくさい設定が必要らしい.よくわからないです.もういいです.AOJでちまちまと問題を解いていくことにします

carry a cheese 0107

  • 方針:

skitched-20120323-082907

  • 筋道:バブルソートを使ってみたかった.まあ数が3つしかないのでソートとかしなくていいとおもう.

3種類の対角線の長さを計算して円の半径よりも小さい値が一つでもあればおkである.バブルソートはほぼコピペ

  • code:.c
//carry a cheese 0107 AOJ

#include <stdio.h>
#define MAX 10000

int BubSort(int cheese[], int n)
{
  int i, j, temp;

  for (i = 0; i < n - 1; i++) {
    for (j = n - 1; j > i; j--) {
      if (cheese[j - 1] > cheese[j]) {  /* 前の要素の方が大きかったら */
        temp = cheese[j];        /* 交換する */
        cheese[j] = cheese[j - 1];
        cheese[j - 1]= temp;
      }
    }
  }
}


int main()
{
  int cheese[3]; //チーズのx,y,h
  int n; //入り口の個数
  int r[MAX]; //それぞれの入り口の半径
  int i,j;

  while (1) {
    scanf ("%d %d %d", &cheese[0], &cheese[1], &cheese[2]);
    if (cheese[0]==0 && cheese[1]==0 && cheese[2]==0) break;
    scanf ("%d",&n);
    for (i = 0; i < n; i++){
      scanf ("%d",&r[i]);
    }

    BubSort(cheese, 3);
    for (j = 0; j < n; j++){
      if (cheese[0]*cheese[0] + cheese[1]*cheese[1] < (2*r[j]) * (2*r[j]) ) {
        printf ("OK\n");
      }else
        printf ("NA\n");
    }

  }
  return 0;
}

yasnippetのポップアップ問題解決!!!!!!!!!!!!!!!!!!!!!!!

yasnippet - ヨッパ谷のドロンジョ様へ
上記問題の暫定的解決

やった!
やはりちゃんと一次情報であるソースを見るべきですね!
yasnippet.elを見てみると,コメント中にこのような記述を発見しました.

;;   The `dropdown-list.el' extension is bundled with YASnippet, you
;;   can optionally use it the preferred "prompting method", puting in
;;   your .emacs file, for example:
;;
;;       (require 'dropdown-list)
;;       (setq yas/prompt-functions '(yas/dropdown-prompt
;;                                    yas/ido-prompt
;;                                    yas/completing-prompt))

yasnippetディレクトリ内に
dropdown-list.elというポップアップ表示に関連しそうなelispファイルを発見して,
yasnippet.elでどのように使われているのか覗いてみよう!と思い立ったのがこの結果につながりました.


コメントにあるようにdropdown-listをrequireすると,当初のポップアップウィンドウとはUIが異なるドロップダウンリストウィンドウと思われるUIが表示されました.ちゃんと,ポップアップ(ドロップダウンリスト)内の移動もC-n,C-pでできます!めでたしめでたし.
それにこっちのUIの方がかっこいい.
snippet dropdown-list

ふぁぼ
jones_millionの今読んでる本