2011年8月21日日曜日

ScalaのgroupByメソッドを使ってみた

最近Scalaのコレクションクラスに「groupBy」というメソッドがあることを知り、ちょっと使ってみました。
使ってみて改めて画期的なメソッドだな~と感じたのでちょっと紹介いたします。

groupbyメソッドは引数に渡した関数の戻り値をキーにしたマップを作成するメソッドです。同じキーを返した値がマップの値になります。

例として売上げを商品毎にまとめてみます。

2011年8月7日日曜日

AntでScalaをコンパイルする

最近ScalaファイルのコンパイルをAntを利用して行うようにしたので、その方法をメモしておきます。

  1. Scalaコンパイル用タスクの設定
  2. ターゲットの作成

2011年7月22日金曜日

iPod + iTunes が嫌いな5つの理由

最近ブログ更新してなかったから、電気屋に行っていつも思うことを書いてみました。
  1. (iPod nanoの)インタフェースがダサい。
    なんでジョグダイヤル回らないの?カチカチいいながら回らないと楽しくないじゃん
  2. iTunesがiPodと同期することを前提にしたインタフェースである
    iPod + iTunes は基本的に全曲同期をベースに作られているせいなのか、「フォルダへコピペ」ができるiPod以前のWin系MP3プレーヤーに比べると「気分に合わせて入れる曲を選ぶ」をどうやるのか非常にわかりづらいインタフェースになっている。
  3. CD(アルバム)取込み時の分類アルゴリズムがバカ
    洋楽でフィーチャリングしてる曲があると別アーティストとして勝手に分類してしまうので、取り込んだアルバムをアルバム通りの曲順で聞こうと思うと意外な苦労を強いられることがある。
  4. iTunes Store が重すぎて使いづらい
    iTunes Store のトップページに動画広告多すぎて、トップ表示から次の操作が実行されるまでに10秒ぐらいのタイムラグがある。iTunes の問題なのかわからないけど全体的に他の音楽配信サイトに比べて重い
  5. こんだけ使いづらいのに何故かメジャーな地位を獲得している
    電気屋に並んでいるiPod nanoたちを見ていつも心の中でこれを叫んでます。

2011年6月12日日曜日

dabbrevのポップアップにXTAGSの関数リストを追加する

普段XYZZYで開発をしています。
文字補完にdabbrevを利用しているわけですが、dabbrevは表示バッファしか候補リストに表示してくれないので、補完リストに表示させるためだけに編集しないファイルを開いたりしなければいけなくって結構に面倒に感じていました。
関数が補完候補にあがってきてくれればいいので、関数のタグジャンプ機能を利用する際に生成されるファイル(XTAGS)をdabbrev実行時に読み込んで、関数を補完リストに表示させるようにしました。
仕事でつかっているのがPHP4(というか関数しかつかってないPHP)なので、そういった環境での利用を想定しています。

2011年6月11日土曜日

[XYZZYTIPS]PHPDoc風関数コメントとコメントを生成するマクロ

仕事でPHPを利用しているのですが、PHPは型の指定を一切しないのに、PHPDoc用の関数コメントには型を明記しないといけないんですよね。それとインデントをそろえるのが面倒くさくて関数とコメントを生成するマクロを作成してみました。


具体的には、

これはテスト用の関数です。
@test_function param:array:配列 return:string

という入力を
/**
* これはテスト用の関数です。
*
* @param  array  param 配列
* @return string       
*/
function test_function($param) {



}

に変更します。



これは次のような手順で実現しています。

2011年5月10日火曜日

【読書メモ】ザ・ゴール

ザ・ゴール ― 企業の究極の目的とは何か
エリヤフ・ゴールドラット
ダイヤモンド社
売り上げランキング: 459

随分昔に読んで、その時はいい本だけどプロジェクト型である自分の仕事(IT系SIer)では、このノウハウはあまり通用しないかなと思い、そのままにしてありました。
しかし先日「クリティカルチェーン」を読んで、TOC理論がプロジェクト型の仕事に当てはめられていく過程を読みすすめていくうちに、一度シリーズを一から読み直したいという衝動に駆られ、久しぶりに本書を読んでみることにしました。
本書を読んでいて
1.従業員というのは、実は企業の目的というのをあまり理解していないものである。
2.目的への達成度を測定するのに間違った指標、複雑すぎる指標を利用しがちである。
3.物事の本質を抜き出してモデル化すると、その姿は意外なほどシンプルである。
という教訓を得ることができました。

また、「クリティカルチェーン」を読んだあとだったせいか、前回読んだときより本書でのポイントが自分の中にすんなり入ってきてとても読みやすく感じました。

本書で紹介されている具体的な方法論(バッチサイズの変更、ボトルネックのリソースを最大化する方法)などは、工場での製造現場でしか利用できないことなのかもしれませんが、本書で提示されている概念や主人公たちの奮闘する姿勢などはとても参考になりました。ただ概念や姿勢の話などになると、実は次作の「ザ・ゴール2」の中でより詳しく説明されているのでそちらの方がより参考になると思います。
しかし、いきなり2の方を読むよりは本書を導入編と位置づけて一度読んでおいたほうが、理解もより深まるでしょう。

個人的には、小説形式のビジネス本というのはポイントがわかりづらいし、そのポイントにいたるまでの過程にまどろっこしさを感じてしまうのであまり好きではありませが、この本は小説としても楽しく読めました。昨年話題となった「もしドラ」といい、売れるビジネス本というのは、エンターテイメントの要素も必要なんだなと改めて思いました。

2011年5月5日木曜日

【XYZZYTips】タブキー押下時に囲み文字を抜ける

Eclipseだと文字列を書いたりしている場合に、タブキーを押すと文字列(「"」で囲まれた範囲)から抜けることができるのですが、それと似たようなことをXYZZYでもできないだろうかということで、タブキーを押したときに隣にある文字列が囲み文字列(「"」、「'」、「>」)などのときは、カーソルを一つさきにすすめるというマクロを作ってみました。