AOHARU YOUTH

シャッフルしてたらひっかかったので、アルバム通して聴いたけど、 やっぱいいですのー。

ProductName HIGHVISION
スーパーカー
キューンレコード / ¥ 3,059 (2002-04-24)
通常24時間以内に発送

そういえば、エウレカの時は日曜ちゃんと朝起きてたなぁ。 それ以来テレビはほとんど見てなくて、最近「電脳コイル」と「精霊の守人」を立て続けにみた。

Catalyst+jQuery+Flotの組み合わせ

Catalyst::View::JSONとjQueryの組み合わせでJSONデータのやりとりは簡単にできるのでたまにグラフを書きたくなったらFlotを使うとよさげな感じ

あんま凝ったことはできないのでちょっとした折れ線グラフかヒストグラムな用途

tickに数字以外のものを表示させるメモ

data:  [[0,2],[1,4],[2,6]]
ticks: [[0, "red"], [1, "brue"], [2, "pink"]]

という感じで xの値と対応させたい文字列を合わせてticksに指定する。

SRM176-DIV2-500

ベクタのベクタを作ったらなんだかpush_backが多くて見にくいなと思ってたら stringの二次元配列を作ってる解答があったので見習う。

あと、ベクタのベクタを作る場合にダイヤモンドの間にスペースを入れないとコンパイルエラーになる理由がよくわからん。

using namespace std;
class Matching {
public:
  vector <string> findMatch(vector <string> first, vector <string> second) {
    vector <string> cards, colors, shadings, numbers, ret;
    cards.push_back("CIRCLE");   cards.push_back("SQUIGGLE");   cards.push_back("DIAMOND");
    colors.push_back("RED");     colors.push_back("BLUE");      colors.push_back("GREEN");
    shadings.push_back("SOLID"); shadings.push_back("STRIPED"); shadings.push_back("EMPTY");
    numbers.push_back("ONE");    numbers.push_back("TWO");      numbers.push_back("THREE");
    vector < vector<string> > data;
    data.push_back(cards);
    data.push_back(colors);
    data.push_back(shadings);
    data.push_back(numbers);
    for(int i=0;i<first.size();i++){
       if(first[i] == second[i]){
    ret.push_back(first[i]);    
      }else {
     for(int j=0;j<data[i].size();j++){
      if(data[i][j] != first[i] && data[i][j] != second[i]) ret.push_back(data[i][j]);
    }
      }
    }
    return ret;
  }

ライフサイエンス統合DBのこと

PNEのバックナンバーが探せるってのが便利。早速自分の書いたやつを検索して「おーあるじゃん」とかやってみたり。

あと、OpenIDサーバーが立っていてなんじゃ?と思ってたら、研究開発創作日誌に書いてあった。

でも、IDの使い回し以外に他にもなんか考えているんだろうか?気になる。

AnnoCPANの論文版みたいなのできたらええかもしれんなぁといつも思うけど、OpenIDとか組み合わせるともっと面白いかもしれんなぁ。

YAPCのトーク聴いとけばよかったなぁ。

というわけでいまからニコニコで見る。

追記 08.06.03

AnnoCPANはCPANのPODにアノテーションつけられるサービスです。

論文もああいう風にパラグラフとかのもっと細かい単位でアノテーションつけたりできればよいんではなかろうかと思ってます。

IFは雑誌のおおざっぱな指標にしかならなくて、個々の記事の質はやっぱまちまちだからなーなんて思ったりしてるので、なんか適当にアイデンティティを保証さえできれば、どういう論文にどういうアノテーションをつけてるかとかで(アノテーター自体の)クオリティとか把握しやすいと思うんですよね。

あと、そういう場合にpagerank的なやり方でなんかファクター作れんのかなぁとかそういうことに興味があったりとか。

SRM175-DIV2-550

過半数とるまで、最下位の票を無効にしてもう一度投票し直しまっせっていう問題。

投票者は候補者をランク付けしておいて、一位の候補者が過半数を取っていればいいし、もしそうでなかったら、最下位に投票した投票者の票の次のランクの候補者に票を割り振っていくという。

シュワルツ変換でソートをかけていって、一位が過半数とってたらその候補者をreturnすればいいし、そうでなかったら、最下位候補者を投票の文字列から除いて再度やればいいのはわかったんだけど、 c++での書き方がわからん。

結局こんな感じになってしまった。一位と最下位調べるのにmapで組を作っておいて、イテレータで走査してminとmaxを記憶というやり方までは一緒。そのあと、最下位を消すのがわからなかったけど、この解答ではfindして見つかったindexをeraseしてた、なるほど。

perlだと

@votes = sort {$b->[1] <=> $a->[1]} map {[$_,$votes->{$_}]} split(//,$candidates);

っていうふうにつなげられるのがよいんだけどな。

$ballots = [map {s/$votes[-1]->[0]//;$_ } @$ballots];

あとCだと文字列の置換がまだしっくりこない。

perlの解答

sub outcome {
  my ($candidates, $ballots) = @_;
  my $total = @$ballots;
  return "" if  $total == 0;
  my($votes, @votes);
  while(1) {
    $votes = count_vote($ballots);
    @votes = sort {$b->[1] <=> $a->[1]} map {[$_,$votes->{$_}]} split(//,$candidates);
    return $votes[0]->[0] if($votes[0]->[1] * 2 >= $total);
    $ballots = [map {s/$votes[-1]->[0]//;$_ } @$ballots];
    $candidates =~ s/$votes[-1]->[0]//;
  }
}

sub count_vote {
  my $ballots = shift;
 my $counts = {};
  $counts->{substr($_,0,1)}++ for (@$ballots);
  return $counts;
}

print  outcome("ABC",["ACB", "BCA", "ACB", "BCA", "CBA"]);                       # B
print  outcome("DCBA",["ACBD", "ACBD", "ACBD", "BCAD", "BCAD", "DBCA", "CBDA"]); # B
print  outcome("ACB",["ACB", "BCA", "ACB", "BCA", "ACB", "BCA", "CBA", "CAB"]);  # ""
print  outcome("CAB",["ACB", "BCA", "ACB", "BCA", "ACB", "BCA", "CAB", "CAB"]);  # A
print  outcome("Z",["Z"]);                                                       # Z

ルービックキューブ二種

だいぶ前にRubic キューブと置換の乗算を読んで以来、ルービックキューブが欲しくてたまらなかったのだけど、ふと2x2のキューブがあるという事実を発見し、セットで購入。

ProductName ルービックの2×2 キューブ(CUBE)

メガハウス / ¥ 1,260 (2002-03-20)
通常24時間以内に発送

ProductName ルービックキューブ (6面完成攻略書付)

メガハウス / ¥ 2,079 (2005-01-23)
通常24時間以内に発送

2x2は娘が遊ぶかなと期待してたんだけど、揃える以前にまわす事ができず、怒って床に叩き付けてた。

とはいえ、自分で遊んでも、全面揃えるのは結構難しい。あとでhaskellのやつに倣って2x2の解き方を書いてみる。

マリオカート wii

二歳の娘でもハンドル握らせればできるかなと思って購入してみた。

ProductName マリオカートWii(「Wiiハンドル」×1同梱)

任天堂 / ¥ 5,800 (2008-04-10)
通常24時間以内に発送

が、無理だった。

wifi対戦がやたらと楽しい。ちょっと精進して勝てるように頑張るかも。

和イタリア アルポルト

ちょっとしたシンポジウムがあって京都にいってた。京都にいくたびに思うんやけど、

京都最高!

なんで静岡に住んでるんやろか?なんていまだに思う。

さて、シンポジウムではドワンゴの川上さんが「私の起業体験」とかいう話をされていたのだけど、大変興味深かった。

  • 微妙にsed使い
  • 行あたりいくらという勘定してたのでsedパワーで行を増やしてぼろ儲け
  • みんなが賛成するようなプロジェクトは実はライバルが多くてうまくいかないことが多い。むしろ反対されるほどうまくいった。
  • 誠心誠意つくすというよりは、最終的にユーザーがどう思うかの方が大切。

最後の二つは特に心に残った。

懇親会は「アルポルト」。お箸で食べるイタリアンといった感じ。終始ビールだったけど、ワインにするべきだったかも。

あと、同期とか先輩と話したりできて楽しかったし、いろいろ参考になった。

1212306153

前菜とホタテのソテー

1212306154 1212306138

牛肉の(ワイン煮かな?)とパスタ。パスタは見た目と違って酸味が少なくて驚いた。牛肉は柔らかさにびっくり。

1212306149 1212306158

そしてデザート

1212306140

こだましか停まらない駅に住んでると9時前に京都を発たないと帰れないといけないので、ちょっと早めにおいとまさせてもらった。

帰りに撮った京都タワーがやけに奇麗だったな。

1212306145

あー、また京都に住みたいなー。なんてのは最近また強く思うな。

銀座【匠力】

京都拉麺小路内の行列の一番できてないところに並んだ。

1212306156 1212306147

結果として正解。ちょっと麺が好きな感じではなかったが、スープは旨かった。

こういう京都にいくチャンスの時は泊まるべきだとは思うんだけど、なぜか日帰りで帰っちゃうんだよな。

LL Futureのチケット購入

LL Futureのチケット購入した。

1212306142

メタモと合わせて二週連続のイベントで楽しみ。