タグ

ブックマーク / daisuke-m.hatenablog.com (18)

  • 父親になりました♪ - 都元ダイスケ IT-PRESS

    なんか、気づいたら半年近くブログ放置してましたw この半年色々ありましたけど、それはまた、別のお話。 ってことで、えーー、先ほど 5/22 22:04 に息子が産まれました! ワーーイ。産まれた瞬間、ベタですが、涙出ました。嬉しい! 良い人生を送って欲しいな、と心から思いました。 っていうかね。悪いけど、マジかわいいぜ、ウチの息子!! うはwww これは、毎日風呂に入れたくなるってもんですわーーww ベビーバスまだないけどなwwww っつーか、まだ名前も付けてないけどなwwwwwww 早く考えてやんないと。名前呼びてーーーけど、ないwww だめだ、テンションがアレだww まぁそれはともかく、とりあえずwishlist 貼っておきますね :) http://www.amazon.co.jp/registry/wishlist/3U2NT3SPZNGP 追記 というわけで当にたくさんの方から

    Nagise
    Nagise 2012/05/23
    おめでとうございます!
  • 細かすぎて伝わらないJava7の変更点 - 都元ダイスケ IT-PRESS

    日のエントリーはJava Advent Calendarの25日目です。昨日は @mike_neck さんのmike、mikeなるままに…: hamcrestを拡張してmoreThanとか作ってみたでした。日はクリスマスですが、Advent Calendarはまだまだ続きます。明日はt.ogisawaさんのhttp://webinter.sakura.ne.jp/pbd/210です。 さて、今年はJava7がリリースされましたね。try-with-resources、diamond operator、invoke dynamic、Folk/Join framework…魅力的な新機能の数々が、多くの人によって紹介されています。が、Java7の変更はそれだけじゃないはず。小粒だが、キラリと光る変更がきっとあるはず。ということで、Java6とJava7のsrc.zipを比較してみました。小

    細かすぎて伝わらないJava7の変更点 - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2011/12/27
  • 都元ダイスケ IT-PRESS

    都元ダイスケ(当時34)は、クラスメソッド株式会社に転職しました。 こんだけJavaJavaしてた都元が、なんとAWSエンジニアになっております。世の中どうなるかわからんですね〜。まぁとは言え、ちょいちょいJava触ってますが。 そんなわけで、今後共よろしくお願いします! って1年以上前の話やけどな。 「第一回チキチキjava-ja ymsr送別会」に行ってきた。 ちょっと湿っぽくなった瞬間もあったけど、笑いの絶えない良い会だった。 あいつは絶対準備して待ってる。 というわけで、その時が来たら、「第一回チキチキjava-ja ymsrによる歓迎会」に参加しようと思う。 しばらく待ってろ。 ごぶさたです。都元です。 日経ソフトウエア2012年8月号が昨日発売となりました。都元が特別付録の文庫サイズ別冊「Eclipse逆引きポケット事典」に寄稿しました。この原稿は、息子誕生の混乱のさなかに脱稿

    都元ダイスケ IT-PRESS
    Nagise
    Nagise 2011/07/06
    よいエンジニアが放出されても獲得できる資本がない(ノД`)
  • 難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS

    java.io.Serializable …、ある程度Javaに触れて来た人は必ず見たことがあるインターフェイスだと思う。私も何度も見てきたし、必要に迫られて自分の作ったクラスにSerializableをつけたこともある。しかし、こいつは一体何なのか? 継承の便利さ 僕らがまだJava初心者だった頃。継承というメカニズムに助けられながら育って来た。簡単に言えば、HttpServletクラスを継承しさえすれば、自分の作ったクラスがサーブレットとして認識されるのだ。また、abstractメソッドなどという便利な機能もあり、継承にあたって実装しなければいけないメソッドは確実に指示され、言われた通りにそのメソッドを実装すれば良い。 StrutsのActionも然り。そう、多くの場合は「継承さえすれば、望む物がだいたい出来上がる」というのがJavaの世界だと思っていた。 だが、世の中そんなに甘くない

    難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2010/04/14
  • 前提条件を破った場合、どのような挙動をするのか? - 都元ダイスケ IT-PRESS

    「Nullチェックされている前提の処理」とJavadocに書いたとき、「throws NullPo…」は書くんだろうか。んー、コード上は発生しうるけど、実際発生しないから不要なのかな はてなブックマーク - u1tnkのブックマーク / 2009年12月29日 まぁ、このブログで書いている話は、あくまでも「俺式」ということをご理解いただいた上で。(ここに書いた事が全て、って訳じゃありません。他にも色々ポリシーはあると思うが、自分はこれが一番良いと考えている。) 自分の考えは、契約プログラミングに基づいてます。DbC(Design by Contract)って奴ですね。 あるメソッドが「Nullチェックされている前提の処理」というのは、引数にnullは入ってこない前提、ということですよね。そしてJavadocを書くということは恐らくこのメソッドは公開API(publicかprotected)

    前提条件を破った場合、どのような挙動をするのか? - 都元ダイスケ IT-PRESS
  • 可視性と公開APIと非公開(内部)APIと - 都元ダイスケ IT-PRESS

    Javaではpublic, protected, default, privateという4種類の可視性がある。 Javaを始めてしばらくの間、この4つの使い分けがよくできていなかった。 「外から呼ぶならpublic、呼ばないならprivate」時代 当時から、なるべく可視性は下げた方が良い(オブジェクト指向は「隠す技術」である → 継承とコンポジット - 都元ダイスケ IT-PRESS参照)ということは理解していたので、「外から呼ぶならpublic、呼ばないならprivate」という指針からスタートした。 上記に加えて「継承先からしか呼ばないならprotected」時代 Template Methodパターンを覚えた頃の話。この時代が一番長かった。 そして残ったひとつ、default(package-private)の使い方が全く分からなかった時代でもある。色々使おうと頑張ってみたが、pa

    可視性と公開APIと非公開(内部)APIと - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/12/24
    現代は4つのアクセスレベルでの可視性制御の限界が囁かれていて、打破するためにいろいろ模索しているところ
  • インピーダンスミスマッチング - 都元ダイスケ IT-PRESS

    今日はインピーダンスミスマッチについて語ってみたいと思うのだが、そもそもインピーダンスって何よという所を説明しなければなるまい。 前半、オブジェクト指向には全然関係ない話に見えると思うが、少々辛抱いただきたいw オームの法則 私が初めて「インピーダンス」という言葉を聞いたのは、大学の軽音楽部(要は、バンド部だ)に所属して、音響理論まわりを勉強している時だった。スピーカーや、マイク等の電子音響機器の入出力端子には、インピーダンスという値(単位はオーム)が示されている*1。 学生時代、オームの法則でつまずいた人は多いと思う。おそらく、未だによくわからない人が大半を占めるだろう。E=IR、電圧=電流×抵抗って奴だ。 なんで理解できないのかって、「電流・電圧・抵抗って一体なによ」というイメージが全くできないからだと思う。抵抗はおぼろげながら「電気を流れにくくする何かやな」ってのは分かるかもしれない

    インピーダンスミスマッチング - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/11/10
    電子音響とプログラミングという取り合わせが変態的でよいと思います。まる。
  • プロフィール画像を書いてもらった! - 都元ダイスケ IT-PRESS

    地豆のアイコンを自分のアイデンティティアイコンにしていたのだが、近頃 @jiemamy などのアカウントを動かし始め、周囲から「地豆botと大ちゃんの区別がつかねーよ」と大変不評でありました。 ということで、自分のイラストは前々から欲しかったのだが、不運なことに周囲にイラストを書ける人が一人も思いつかなかった>< そんな時、マイピク というサービスを発見し、価格帯も充分お値頃だったので、気に入った画風のイラストレーターさんを見つけてみた。お願いしたのはこちらのイラストレーターさん。http://www.mypic.jp/data/0075/index.html そして書いてもらったのがコレ。 ドーン。地豆の筒は、遂に杯になってしまった。 Dukeと共演したい*1、とか、一升瓶に地豆って書いて! とかなかなか無茶な注文をしまくってしまったのだが、一発でイメージ通りのイラストが出て来てめちゃく

    プロフィール画像を書いてもらった! - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/10/30
    アイコン詐欺の手引。参考になる
  • Apache commonsが便利な件(commons-configuration編) - 都元ダイスケ IT-PRESS

    久々のシリーズ。 今回はcommons-configuration。設定ファイル、ってありますよね。Javaだとproperties、Windosだとiniファイルが使われる事が多い。複雑なものだとXMLで書いたりする。 さて、そんなファイルの読み込み・書き出しってどうしますか。まさかFileInputStreamで自前で読み出すとか、しないですよね。コメント行の処理等、やらなきゃいけないことは結構あります。まぁ、propファイルだったらPropertiesクラスで読み書きできますが、それでも、そうそう便利には出来ていません。 XMLファイルだったりすると、DOM組んで読み書きしますかね。これも結構大仕事。 という時に使うのがcommons-configurationのようです。まぁ、能書きよりコードですかね。 propertiesファイルの場合 foo = hoge foo.bar =

    Apache commonsが便利な件(commons-configuration編) - 都元ダイスケ IT-PRESS
  • Throwableについて本気出して考えてみた 2nd Season - 都元ダイスケ IT-PRESS

    1st Seasonはこちら。Throwableについて気出して考えてみた - 都元ダイスケ IT-PRESS 以前は、何かをスローする状況を3つに分けてそれに合った設計をした例外を投げましょう、という考え方を示しました。 callerのバグ: RTE calleeのバグ: Error どちらでもない: Exception (非RTE) まぁ詳しくはSeason1の方で。 Seasar2はRuntimeExceptionですね。2004年ぐらいからのフレームワークはRTEをスローしていると思いますよって、ひがさんから情報。 チェックされる例外とチェックされない例外について - じゅんいち☆かとうの技術日誌 ただ、上記のような考え方もあるのも事実。実際.NETRuby, Python, 新鋭のScala等もcatchを強制する例外というものが言語仕様的に存在しません*1。逆に、チェック例

    Throwableについて本気出して考えてみた 2nd Season - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/10/19
    例外についての論考
  • オブジェクト指向のプログラムに込める「意図」 - 都元ダイスケ IT-PRESS

    その昔、プログラムを覚えたての頃、プログラムってのは単に「処理」を記述するものだと考えていた。処理を1ステップごとに記述し、場合によってはサブルーチンに切り出し、再利用する。 今振り返ると、オブジェクト指向を覚え始めてしばらくして、その意識は変わっていた。当然「処理」を落とし込まなければプログラムは動かない。だから「処理」はプログラムに込める。ただ、オブジェクト指向言語を使うと、これに加えて「意図」を落とし込むことができる。 オブジェクト指向を学び始めた当初、Javaのインターフェイスの存在意義がわからなかった。プログラムは「処理」を記述するものだという視点で見ると、インターフェイスには「処理」を書くことができない。インターフェイスだけでは何も起こらないからだった。 さらに、IDEを使ってコードを追っていると、途中でインターフェイスのソースを開くことになり、「なんだよ、中で何やってっかわか

    オブジェクト指向のプログラムに込める「意図」 - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/10/14
    用語としては「契約に基づくプログラミング」がこの話題を言い当てているかな
  • 敢えて規約を破るケース(Checkstyleの警告抑制) - 都元ダイスケ IT-PRESS

    先日の日経ソフトウエア記事で、「規約は大事だが、可読性や保守性を高めるためにあえて例外的に規約を破るケースもある」ということを説明しました。 しかし、Checkstyleは情け容赦なく、違反を摘発します。 数が少ないうちは良いのですが、多くなってくると「無視すると決めた警告」に「大事な警告」が埋もれて、気づくべき違反に気づかなくなってきます。 そこで、checkstye.xml を少し編集してみましょう。TreeWalkerモジュールの子にFileContentsHolderモジュールを追加します。 … <module name="Checker"> <property name="severity" value="warning"/> <module name="TreeWalker"> <!-- 追加ここから… --> <module name="FileContentsHolder"

    敢えて規約を破るケース(Checkstyleの警告抑制) - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/10/13
    Checkstyleの警告解除
  • 敢えて規約を破るケース(FindBugsの警告抑制) - 都元ダイスケ IT-PRESS

    の情報も探してみた。が、こちらは結構難しい。 Checkstyleは、*.javaを解析してチェックします。なので、コメントに反応できる。しかしFindBugsはコンパイル後の *.class がチェック対象です。なのでコメントでFindBugsを制御することはできません。 従って、FindBugsではアノテーションによる警告抑制手段を用意しているようです。 @edu.umd.cs.findbugs.annotations.SuppressWarnings( value="EQ_COMPARETO_USE_OBJECT_EQUALS", justification="because I know better")http://stackoverflow.com/questions/249536/when-using-eclipse-with-findbugs-can-you-mark-a-

    敢えて規約を破るケース(FindBugsの警告抑制) - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/09/17
    LGPLなのか。アノテーションをextendsしたアノテーションを作って間接的に使うとか出来ないかしら
  • メソッドのアクセス制御 - 都元ダイスケ IT-PRESS

    いやいや、忙しくてブログ更新サボっちまったぃ。まぁ、ぼちぼち書くつもりです。 メソッドのアクセス(可視性)を制御するために、しばしばアクセス修飾子(private, publicなど)を使うのはご存知の通り。書いたコードの可視性を、全てpublicにしても、変更前と同じ動作は出来ます。しかしー、オブジェクト指向では、この手法を使って「外に見える必要がないものは公開するべきではない」という情報隠蔽(information hiding)を実践していくコトが多いです。基中の基ですね。 自分、今まで「アクセス修飾子のみで」情報隠蔽を行って来たのですが、最近一つ学んだので書き記しておきます。 メソッドへのアクセス制御って、インターフェイスを使っても実践できるんですね。 インターフェイスには記述されていないけど、実装クラスには存在するpublicメソッド。例えば、あるクラスライブラリで、Fact

    メソッドのアクセス制御 - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/09/09
  • 継承とコンポジット - 都元ダイスケ IT-PRESS

    id:happy_ryoに「わかんねーんだよ、説明してみろゴルァ」されたので、書いてみる。 前書き*1 とりあえず、日のエントリのキモを最初に。「オブジェクト指向は、隠す技術である」(俺談w)ということを意識して読んで見てください。隠すとは何か? 公開しすぎない事。分かりやすく言えば、publicをprivateに変える事。これが「隠す」。 んじゃあ、隠すと何が良いのか。あるクラスから、見えるもの(=操作できる可能性の範囲(scope))が狭ければ狭いほど出来る事のバリエーションが減るから、プログラムは単純になる。つまり、隠すと複雑性(complexity)が下がる*2。 要件を満たした上で、いかに型(class, interface, etc.)やメンバ(field, method)の可視性を落とすか。可能な限り可視性を下げ、プログラムを単純化し、メンテナンス性を上げるにはどうしたらい

    継承とコンポジット - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2009/05/20
    クラス群のうち、外に対して必要なもの以外を隠す、が今だとできないのが不満だなぁ。
  • Apache commonsが便利な件(commons-lang編) - 都元ダイスケ IT-PRESS

    http://d.hatena.ne.jp/daisuke-m/20080702/1214982943 やー、前書いたエントリいつだったかな、と思って見たら7月ですよ。コツコツ書いていきますね。まず初回はcommons-lang。 commons-lang は、java.langパケにあるような基的なクラスを追加で提供している感じです。また、既存の基クラス(String,Object,配列等)のメソッドに対してnullチェックを搭載したものが多く提供されています。null対策を内部で行っているので、ぬるぽを恐れる必要があまりありません。こういうのを使いこなせると便利ですね。 StringUtils これはよく使いますかね。もしかしたらcommonsで一番知名度の高いクラスかもしれない。しかしその中でマイナーかもしれないのはまず定数系。下記の例では、後者の方が記述量は多くなりますが、「コ

    Apache commonsが便利な件(commons-lang編) - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2008/11/21
    正直言って標準APIを把握するだけでも物量的に難しいのでこうしたカンペはありがたい
  • Sabotter v0.0.2 - 都元ダイスケ IT-PRESS

    Twitter & Wassr クライアント「さぼったー v0.0.2」リリースです。 まだまだ、イケてないとこいっぱいです。 前回と同様、プラグイン版(Eclipseに乗せて使う版)と、スタンドアロン版(単一のアプリケーションとして起動)があります。お好みでどうぞ。 まだ、更新サイトによる追加プラグインのインストールがうまく動いていないので、Standalone coreはリリースに含めていません。 Eclipseプラグイン版(普段Eclipseを立ち上げている方用) 更新サイト:http://svn.xet.jp/sabotter/ (ブラウザで見るとリダイレクトされますが、ここに表記されたアドレスをEclipseに入力してください) この中から、以下のものをインストールしてください。 必ず必要 さぼったー プラグイン版 コアフィーチャー 0.0.2 どちらかが必要(両方でもOK) さ

    Sabotter v0.0.2 - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2008/07/12
    Eclipseプラグインによるクライアント
  • Eclipse+Subversive環境での、複数プロジェクトの扱い - 都元ダイスケ IT-PRESS

    やー、凹んだorz 何が起きたのか Sabotter 0.0.2リリースの為に、タグ打ったんですよ。 そしたら、その一操作でCodeReposに12回ものコミットが入ったんですよorz で、IRCで話題沸騰。 一般的な話 Sabotterは、12個の「Eclipseプロジェクト」に分かれています。もう少し詳しく言うと、7つのコンポーネントと、5つのフィーチャープロジェクト*1。そして、その7つのコンポーネントはそれぞれ依存関係があります。 Sabotterの様な複数コンポーネントのプロジェクト群は、repository/trunk 内に、複数のディレクトリを作って、それぞれコミットすると思います。で、チェックアウト時には trunk ディレクトリを指定して、内部のプロジェクトをごっそりチェックアウトしますね。これが一般的な使い方。 /repository/ trunk/ Component

    Eclipse+Subversive環境での、複数プロジェクトの扱い - 都元ダイスケ IT-PRESS
    Nagise
    Nagise 2008/07/12
    複数プロジェクトから成る場合、Eclipseとはどうにも相性が悪い
  • 1