Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

2008-11-01から1ヶ月間の記事一覧

JavaがFlexに負ける??

ゲーム開発会社Sharendipitous Moments社のブログに最近投稿された(リンク)「私達はFlashに乗り換えます。その理由は…」というエントリを皮切りにJavaが、Flexのような、RIA技術に負けてしまうのではないかという議論が始まった。 InfoQ: JavaはFlexに負けて…

テストカバレッジの意味

1. カバレッジはしっかりとしたテストが書かれている状況でのみ意味を持つ。役に立たないくだらないテストが書かれることを防ぐことはできない。 2. カバレッジはテストが通過した行/分岐を測定しているだけに過ぎない。 3. カバレッジはテストが不十分かど…

静的型付け言語の優位性

Anyway, read Guido's take and especially the comments. Here is one I found particularly interesting, from David Pollak, the creator of Lift: But, unlike my Ruby code, [with Scala] I only need 50%-60% test coverage (vs. 95% coverage) to hav…

Oracle Technology Day in 大阪に行ってきた

Oracle Technology Day in 大阪 BEA&Oracle合併後初の大阪での技術者セミナー OracleとBEAが合併して初の関西イベント。 コミュニティもOTNとdev2devが合併した感じ。 『Oracle Coherence』が特に興味深かった。 ハードウェアとJVMを横断した共有メモリ領域…

若いうちから窮屈な考え方をしない!

よく「○○はしないようにしてる」という行動を制限する考えがある。 カラオケには行かないようにしてる、みたいな。 ここではカラオケはどうでもよくて。 それが犯罪であったりとてもお金や時間がかかったり健康を害するものでないなら、そんな窮屈な考え方は…

メイン開発環境としてのMac

開発者の中にはMacはまだ開発用としては遅く、チューニングも充分ではないと感じている人もおり、仮想メモリシステムのページングのパフォーマンスの悪さや、デフォルトのネットワークファイルシステムのAFSに対する不満などを耳にする機会が多いという。 ス…

Androidケータイ2009年発売?

ドコモが「グーグル携帯」 無償ソフト採用、低価格で09年発売 http://www.nikkei.co.jp/news/sangyo/20081119AT1D140B418112008.html 404 ないわー Not Found ってか「グーグル携帯」ってなんか違うよ日経さん。 902SHが2年以上経ったので機種変したいけど、…

目標管理は費用対効果が合わない

組織として整えるべきは目標管理制度ではなく、その会社の社員の行動がどうあるべきかと、実際の行動に対する評価(フィードバック)をどうするのかってことだ、と言いたい。 会社は目標じゃなくて行動をマネジメントしろ - 今日とは違う明日 禿同。超禿同。…

第2回社内デブサミしました

僕は株式会社クロノスに所属しているんですが、「クロノスエンジニアの会」略して「エン会」という社内デブサミを3ヶ月前開催しました。 デブサミと言えるほど大きなものでもないんですけど。 第1回では先輩社員が主にセッションしたから若手社員には少し内…

人事について的確に捉えてる記事だなあ

IT企業を襲う「優秀なプロマネ不足」の打開策 − @IT自分戦略研究所 via kwoutPMの話だけでなくIT企業の人事問題を的確に捉えてる。 IT業界における技術の変化は非常に早く、同じ技術を使って同じ仕事をしていては、いずれ給与に見合う価値を発揮できなくな…

働きやすい会社とはプライベートを持ち込める会社

今から話すことは僕個人が考える、一般的な意味での会社論だけど。働きやすい会社とは、プライベートな事情を気軽に持ち込める会社だと考えてる。 持ち込む個人は申し訳ないという意識を強く持つことなく、持ち込まれる組織は嫌々受け入れるという無言の圧力…

オンリーワンの誘惑

オンリーワンは誤解されている言葉だと思う。 その誤解とは、SMAPの『世界にひとつだけの花』でいうと NO.1 にならなくてもいい もともと特別な Only one の「もともと特別」の部分に特に感じる。 これは(おそらく歌詞の真意ではないと思うが)「何もしなくて…

Scalaでクロージャ

Scalaでクロージャする超簡単なサンプル。 package sample object ClosureSample extends Application { def makeCounter() = { var count = 0; () => { count += 1 count } } var count = 100; val counter = makeCounter() println(counter()) println(cou…

はてなのトラバ

って自分自身の引用でも今までトラバ飛んでたっけ?? 1ヶ月前の時点だとそうじゃなかった気がするけど。。。

「モナドは象だ」の翻訳まとめ

とてもエントリが多くの回にわたったので、まとめます。 One Div Zero: Monads are Elephants Part 1 モナドについて調べていく(7) - Fight the Future じゅくのblog モナドについて調べていく(8) - Fight the Future じゅくのblog モナドについて調べていく…

モナドについて調べていく(23)

One Div Zero: Monads are Elephants Part 4の翻訳続き。長かった連載もこれで最後です。 Ladies and Gentleman I Present the Mighty IO Monad(みなさん、すばらしいIOモナドを紹介します) The IOAction.apply factory method takes an expression of type …

ScalaでCPS(継続渡しスタイル)

まるごとJavaScript & Ajax ! Vol.1を読み返してCPSを学んでみる。 def sumIterTrump(i: Int, part: Int, cont: Int => Unit): Function2[Int, Int, Function0[Int]] = { if (i > 10) { cont(part) null } else { println("progress " + i + "/10") sumIterT…

末尾再帰とは?

CPSを学ぶためにまるごとJavaScript & Ajax ! Vol.1を引っ張り出してきたけど、その前に末尾再帰を学ぶ。 末尾再帰とは 末尾再帰(まつびさいき)とは、プログラミング手法のひとつで、再帰のある関数またはプロシージャのおこなうべき最後のステップが、関…

関西アジャイルナイト2008 in 京橋

うおっ!こんなイベントがあったのか! 関西初のアジャイルソフトウェア技術者の交流イベントとして、11月24日に「関西アジャイルナイト2008 」を開催します。 関西アジャイルナイト2008 in 京橋 (eXtreme Gadget (エクストリーム ガジェット) ポケットに入…

モナドについて調べていく(22)

One Div Zero: Monads are Elephants Part 4の翻訳続き。 That Darn Property 3(最悪の特性3) The 3rd property said that the world can only be in one state at any given moment in time. I haven't solved that one yet and here's why it's a problem3…

モナドについて調べていく(21)

One Div Zero: Monads are Elephants Part 4の翻訳。 今回からパート4です。 ずっと気になっていた、IOとモナドの関係に入りました。 Until you experience an adult elephant first hand you won't really understand just how big they can be. If monads …

モナドについて調べていく(20)

One Div Zero: Monads are Elephants Part 3の翻訳続き。 これでパート3は終了。 The Second Zero Law: M to Zero in Nothing Flat(第2のゼロの法則:すぐにMをゼロにする) The reverse of the zero identity law looks like thisゼロの同一法則を逆にすると…

モナドについて調べていく(19)

One Div Zero: Monads are Elephants Part 3の翻訳続き。 The First Monad Law: Identity(第一のモナド則:同一性) The first and simplest of the monad laws is the monad identity lawモナド則の最初の、そしてもっとも単純な法則はモナドの同一性の法則…

モナドについて調べていく(18)

One Div Zero: Monads are Elephants Part 3の翻訳続き。 ついにモナド則まできました。 Functors and Monads, Alive, Alive Oh(ファンクターとモナドはまだまだ続く) As you may have guessed by now all monads are functors so they must follow the func…

モナドについて調べていく(17)

One Div Zero: Monads are Elephants Part 3の翻訳続き。 ファンクターが出てきました。 WTF - What The Functor?(ファンクターとは何か?) Usually articles that start with words like "monad" and "functor" quickly devolve into soup of Greek letters…

モナドについて調べていく(16)

One Div Zero: Monads are Elephants Part 3の翻訳。 今回からパート3。 偶然見つけた割には本当に良質の記事だと思います。モナドって説明読んでも全然わからない!って人は僕と一緒にこの記事読んで勉強していきましょう! In this series I've presented …

モナドについて調べていく(15)

One Div Zero: Monads are Elephants Part 2の翻訳続き。 Filtering "For"(「for」のフィルタリング) So far our monads have built on a few key concepts. These three methods - map, flatMap, and forEach - allow almost all of what "for" can do.これ…

モナドについて調べていく(14)

One Div Zero: Monads are Elephants Part 2の翻訳続き。 なぜかはわからないけど、この翻訳で自分がレベルアップしているように感じる。 自分に足りない基礎概念の理解が深まっているような。。。そんな感覚。 Now With More Expression(さらに式を増やして…

モナドについて調べていく(13)

One Div Zero: Monads are Elephants Part 2の翻訳。 今回からパート2のエントリです。 衝撃的ですが、これはパート4まであるようです。 またこのBlogの著者はScala Blogのグループに属しているそうです。 どうりでわかりやすいわけだ。。。 In part 1, I in…

モナドについて調べていく(12)

One Div Zero: Monads are Elephants Part 1の翻訳続き。 パート1はこれで終わり。 Conclusion for Part I(パート1の結論) Scala monads must have map and flatMap methods. Map can be implemented via flatMap and a constructor or flatMap can be imple…