タグ

ブックマーク / d.hatena.ne.jp/t_yano (8)

  • Twitterでフォローされているけどフォローしてない人をまとめてフォローするScalaプログラム - 矢野勉のはてな日記

    scala, twitterたまりまくって700くらいになったのでプログラムで処理することにした。実際には、この中にはすでにTwitter使ってない人もいると思われるので(あとスパムも)、来ならもっと精密に、直近10日くらいに発言があるかどうかとかチェックすべきかもしれないけど、そこまではやってない。あと、twitter4jが必要です。フォロー中の人から、もう発言してない人を見つけてアンフォローするスクリプトをid:Yoshioriが書いていた気がしたのだけど、ブログ検索してもみつからなかったのであとで探す。 あと、Scalaで書いたものの、ユーザ入力を処理するところがものすごくJavaっぽくてどうなんかな、と思ってます。まあこの部分はtwitter4jのサンプルそのまんまなんですけど。Streamを使うとかっこよく処理できるっぽいのですがまだ未調査です。だれか詳しい人教えてください…A

  • mavenセントラルリポジトリから欲しいjarを依存リソースごとまとめて取得するコマンド - 矢野勉のはてな日記

    Java前にmvnbeansってプログラムを作ったのですが,その主要な目的である「mavenリポジトリから依存リソースごとまとめてjarを取得する」ことなら,maven-dependency-pluginでできるじゃん!あほか私は!!と半年くらい前に気がついた。 mvnbeansはあれはあれでライブラリとしての用途もあるのですが,ことjarを取得することに関しては,要はjarがとれればそれでいいので,dependency-pluginを使ったほうが安全確実。かといって毎回欲しいライブラリのpom.xmlを書くのも面倒。なので,シェルスクリプトでコマンド化しました。 #!/bin/bash if [ $# -lt 3 ] then echo "USAGE: groupId artifactId version are required." >&2 exit 1 fi groupId=$1 a

  • 互いに関連のないオブジェクトを1つのインターフェースにまとめて共通的にアクセス可能にするライブラリを作ってみた - 矢野勉のはてな日記

    Javaもともとやりたかったことは、 あるオブジェクト(インスタンス)がすでに手元にある そのオブジェクトのクラスは何らかの理由で継承不能 そのオブジェクトの一部メソッドをオーバーライドしたい そのオブジェクトにメソッドを1つ足したいという、JavaScriptならすぐにできちゃうことがしたかった。で、これって、オーバーライドしたいメソッドと、追加したいメソッドだけを持ったあるオブジェクトAを用意して、メソッド呼び出し時に該当メソッドの時だけAに委譲しちゃえばできるよね、と思った。他のメソッドはすべてもとのオブジェクトに委譲する。 で委譲コードを書いてみても、すんごいめんどくさい。たくさんのメソッドを定義して、ただ委譲するだけのコードをかかないといけない。でCGLibあたりにそういうのがあるだろうと思って見てみたのですが、どうもないみたい。なんかありがちな要望だと思ったんですが、もうちょっ

    tacroe
    tacroe 2009/06/16
  • Genericsではまった - 矢野勉のはてな日記

    Java, メモ複合的な総称型にキャストするにはどうしたらいいんだろう? というのでちょっとはまったのでメモ。 こんなインターフェースがあります。インターフェースの内容自体は今回はどうでもいいのですが。 public interface Loggableextends MyClass> { Class getLogClass(); void setLatestLog(T log); } で、このLoggableインターフェースを実装していてなおかつMyClassのサブクラスであるインスタンスだけを処理するstaticメソッドがあります。 public static extends MyClass, T extends MyClass & Loggable> L create(T obj) { Class logClass = obj.getLogClass(); Object newObj

  • WicketのCPU負荷について調べてみた - 矢野勉のはてな日記

    Java, Wicketid:s-ishigamiさんがWicketのCPU負荷について調べていて、IMarkupSettingsのsetAutoLinkEnabled(true)をしていると負荷がとても上がって困るって話でした。いやいやそれはおかしいと思って調べてました。...と言ってる間に、id:s-ishigamiさんも継続調査していて似たような方向に調査が向かっているようですが、せっかく調べたので書いておきます。 もとねた:WicketのCPU負荷 - s-ishigamiの仕事日記(WicketでECを作る道のり)WicketのCPU負荷〜その2〜 - s-ishigamiの仕事日記(WicketでECを作る道のり)WicketのCPU負荷〜その3〜 - s-ishigamiの仕事日記(WicketでECを作る道のり)WicketのCPU負荷〜その4〜 - s-ishigamiの

  • Javaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記

    JavaJavaの匿名クラスはすごくかわしいかわいい技術でいろいろキモイことができます。匿名クラスは基的に「サブクラス生成のための特殊記法」であって、クロージャではありません。匿名クラスとクロージャを対比して云々するのはそもそも誤りです。なんならクロージャでサブクラス作ってみなよってことです。匿名クラスによって、Javaではなにかのサブクラスを任意の場所で即座に作り出すことが出来るんです。なにかのクラスのメソッドを三つほど書き換えた新しいクラスをさっと作れるのは、なかなか面白い機能ですよ。 その匿名クラスを利用したカッコイイ(でも使うのは躊躇されている)記法として、次のようなのがあります。(追記:この用法はヨシオリさんところで見たのが最初です) List list = new ArrayList() {{add("a"); add("b"); add("c");}}; Javaには「初期

    tacroe
    tacroe 2009/04/22
    かっこよす
  • WicketとSeasar 2を統合する「wicket-seasar2」ライブラリを作りました - 矢野勉のはてな日記

    Java, Wicket主についったーでid:yuripopがWicketとSeasar2を統合しようとしてウンウン悩んでいるのをみて、いっちょやるかと思ってやった次第。 Seasar 2とWicketの統合にはS2Wicketというライブラリが既に存在していて有名なんですが、このS2WicketがWicket 1.2系統(org.apache.wicketにパッケージ名が変わる前)に向けて作られているっぽく、最新のWicket 1.4-rc1では動かないんですね。 Wicketのページクラス内のフィールドに値を持つ場合、それらのオブジェクトはすべてシリアライズ可能である必要があります。これは、ページはHttpSessionに格納されたり、2次キャッシュ・ファイルに保存されたりするためです。そのために、単純にDIで値を放り込んでもダメなんです。 Wicketでは、この問題を「フィールドには

  • Javaフレームワークの比較検討資料公開 - 矢野勉のはてな日記

    Java仕事で各種フレームワークを比較検討したので、比較用に作った参考資料を公開します。ちなみに現在私は、ドワンゴさんの社内システム開発をお手伝いしてまして、その一環で調べたものです。会社資料じゃなく、私の資料ということでブログで公開してよい、むしろしとけ、とのことなので公開しときます。 今回の案件向けにアプリケーションを画面層コンテナ層データアクセス層に分けて、それぞれフレームワークを選ぶのが目的です。コンテナ層はDIコンテナのうちいずれか、データアクセス層はO/Rマッパーを選ぶことになります。 太枠の範囲が選定対象です。よくに出てくる杓子定規な階層図とは変えてあります。 次のものを比較検討しました。画面層SAStrutsApache Wicket(ほかにもTeedaとかClick Frameworkとかももともとは候補にあったが、調査が追いつかないので二つに絞った)コンテナSeasa

  • 1