2012/05/23


シャア 「Viをやめろと言ったはずだ。それがVimとはな」
セイラ 「兄さんこそ、EmacsユーザにまでなってVimmerに復讐しよう
     なんてやることが筋違いじゃなくて?」
シャア 「お前の兄がその程度の男だと思っているのか?アルテイシア」
セイラ 「え?」
シャア 「Emacsユーザになって小指を鍛えて来たのも、小指で遠いESCキーを
     押したかったからだ。しかしな、アルテイシア、私だってそれから
     少しは大人になった」

シャア 「VimmerをEmacsユーザが倒すだけではテキストエディタ界の真の
     平和は得られないと悟ったのだ」
セイラ 「なぜ?」
シャア 「Eclipseの逆襲だ」
セイラ 「EclipseがエディタじゃなくIDEだから?」

ブライト 『Eclipse?』

シャア 「うむ、そのEclipseを敵にするのは面白くない。今後はこれまで
     培った変態技が使えぬ、ということだ」
セイラ 「IDE推進派は、Eclipseは開発環境全体が変わるべき理想のIDEだ、と
     教えてくれたわ。だったら、Eclipseを敵にする必要はないはずよ」
    「キャスバル兄さん、兄さん何を考えてるの?」
シャア 「もう変態技を使えぬと言った。アルテイシアはVimを使うのを止めろ」
セイラ 「Vim?あの変態エディタのこと?」
シャア 「ああ。Sakuraエディタに乗り換えるくらいの移行手順書は残していく。
     Windowsユーザになって一生をまっとうしろ。私はもう、
     お前の知っている兄さんではない」
セイラ 「に、兄さん」
シャア 「vimshellを使っている訳がわかるな?私はシェルを捨てたのだよ」
インスパイア元
シャア
http://shibats.tumblr.com/post/23600220688/javascript-ajax
Posted at by



2012/05/22


時代がWindowsハッカーに追いついてきた。

GitHub for Windows

sync Stay in sync The sync button turns the complex workflow of pulling and pushing into a single op...

http://windows.github.com/
GitHub for Windows - GitHub

Ever wish there was an easy way to get up and running with Git and GitHub on your Windows computer? ...

https://github.com/blog/1127-github-for-windows


github for windows

待ってたよ。
ダウンロードしてインストールしてみた。
login

この後、PC内から存在するリポジトリを検索してくれるけど、いくらか抜けがあったのであまりあてにならない。
ここでスキップしても後から超簡単に追加出来るので、いっそスキップしてしまって良い。

ログインすると所属の一覧なんかが出てくる。
organizations


右側のパネルにリポジトリを含むフォルダをドロップすると、リポジトリ一覧に追加される。
自分のリポジトリじゃなくても使えるし、管理しやすそうだったので僕はローカルにある物をガサーっとドロップした。

repos

絞り込みも出来るし、右のペインにREADMEも表示される。もちろんmarkdownにも対応。
filter

リポジトリ名をダブルクリックするとcommit一覧とファイル一覧が表示される。
commits

ここからブランチを切り替えたり、選択リポジトリへpushしたり、revertしたり色んな事が出来る。
あと、github上の各リポジトリに「clone in windows」というボタンが出来ていて、これをクリックするとGitHub for Windowsの管理対象に追加される。
clone in windows


ぶっちゃけ、他のGit GUIに比べたら非にならないくらい便利だし、分かりやすい。

エクスプローラのエクステンションなんかも試した事あるけど、僕は殆どgithubで管理してるのでこれがあればいらない子。
Gitリポジトリ管理ツールはこれで決まりだ。

要望を言うとしたら、少し重たいのと、filterでキーをタイプするとフォーカスを見失ってしまうことくらいかな。
Posted at by



2012/05/18


逆FizzBuzz問題 (Inverse FizzBuzz) - 猫とC#について書くmatarilloの雑記

逆FizzBuzz問題 (Inverse FizzBuzz) General | Inverse Fizzbuzz - just another scala quant を日本語にしました。 ちなみに...

http://d.hatena.ne.jp/matarillo/20120515/p1
逆FizzBuzzって、オートマトンなので正規表現を使うと楽に出来るはず。 #!perl
use strict;
use warnings;
use Test::More;

sub inv_fizzbuzz {
  my ($fz$n$pat) = (''1join ',*?'@_);
  while (1) {
    $fz .= $n % 15 > 0 ?
             $n % 3 > 0 ?
               $n % 5 > 0 ?
                 ',''buzz,''fizz,''fizzbuzz,';
    if ($fz =~ /,($pat)/) {
      my $rhs = $1;
      my $lhs = substr($fz0index($fz$rhs) + 1);
      $lhs =~ s/(fizz|buzz)//g;
      $rhs =~ s/(fizz|buzz)//g;
      $lhs = length($lhs);
      $rhs = $lhs + length($rhs||'');
      return [$lhs$rhs];
    }
    $n++;
  }
}

is_deeply(inv_fizzbuzz('fizz'), [33]);
is_deeply(inv_fizzbuzz('buzz'), [55]);
is_deeply(inv_fizzbuzz('fizz''buzz'), [35]);
is_deeply(inv_fizzbuzz('buzz''fizz'), [56]);
is_deeply(inv_fizzbuzz('fizz''fizz''buzz'), [610]);
is_deeply(inv_fizzbuzz('fizz''fizz'), [69]);
is_deeply(inv_fizzbuzz('fizz''buzz''fizz'), [36]);
is_deeply(inv_fizzbuzz('fizzbuzz''fizz'), [1518]);

done_testing;
追記1
Vimだとこうか?
functions:inv_fizzbuzz(...)
  let [fz, np= [''1join(a:000',\{-}')]
  while 1
    let fz .= n%15>0?n%3>0?n%5>0?",""buzz,""fizz,""fizzbuzz,"
    let m = matchstr(fz, p)
    if len(m) > 0
      let lhs = len(split(fz[:stridx(fz, m)-1], ','1))
      return [lhs, lhs + len(split(m, ','1))-1]
    endif
    let n += 1
  endwhile
endfunction

追記2
ちょっと改良。方針は変わってない。
#!perl
use strict;
use warnings;
use Test::More;

my $gs = 'AAFAABAFAAAFABAAFAAAZ';

sub inv_fizzbuzz {
  my ($fz$n$pat) = (''1,
    join('A*?'map({fizz=>'F'buzz=>'B'fizzbuzz=>'Z'}->{$_}, @_)));
  my $m;
  while (1) {
    $fz .= $n % 15 > 0 ?
             $n % 3 > 0 ?
               $n % 5 > 0 ?
                 'A''B''F''Z';
    last if length($fz) > length($gs) * length(@_);
    if ($fz =~ /^.*($pat)$/) {
      my $rhs = $1;
      my $lhs = substr($fz0rindex($fz$rhs) + 1);
      $m = [$lhs$rhsif !defined($m) || length(@{$m}[1]gt length($rhs);
    }
    $n++;
  }
  return [] unless $m;
  
  my ($lhs$rhs) = @{$m};
  $lhs = length($lhs);
  $rhs = $lhs + length($rhs||'') - 1;
  return [$lhs$rhs];
}

is_deeply(inv_fizzbuzz('fizz'), [33]);
is_deeply(inv_fizzbuzz('buzz'), [55]);
is_deeply(inv_fizzbuzz('fizz''buzz'), [910]);
is_deeply(inv_fizzbuzz('buzz''fizz'), [56]);
is_deeply(inv_fizzbuzz('fizz''fizz''buzz'), [610]);
is_deeply(inv_fizzbuzz('fizz''fizz'), [69]);
is_deeply(inv_fizzbuzz('fizz''buzz''fizz'), [36]);
is_deeply(inv_fizzbuzz('fizzbuzz''fizz'), [1518]);
is_deeply(inv_fizzbuzz('fizzbuzz''fizz'), [1518]);
is_deeply(inv_fizzbuzz('buzz''buzz'), []);

done_testing;
vimスクリプト版はkoronさんが書いてた。
koron/zzub-zzif-vim ツキ GitHub
https://github.com/koron/zzub-zzif-vim
Posted at by