タグ

ブックマーク / nowokay.hatenablog.com (28)

  • JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena

    夏のJAWS-UG 三都物語 2014というイベントで「そろそろJavaみなおしてもええんやで」というプレゼンしてきました。 Javaのイベントではなかったので、Javaを使ってない人を想定したプレゼンでしたが、実際会場のほとんどがJavaメインではなかったようです。 for(int num : nums){ if(num > 10) continue; sum += num * 2; } というコードが、NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。 ここまでできるとは思ってなかった。 そろそろJavaみなおしてもええんやで from なおき きしだ

    JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena
    nakag0711
    nakag0711 2014/07/09
    そろそろC++も
  • Java8で最もインパクトのある構文拡張、デフォルトメソッド - きしだのHatena

    Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。 まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメソッドとデフォルト実装 いままでインタフェースには実装をもつことができませんでしたが、Java 8からはインタフェースが実装をもてるようになります。 実装をもつメソッドを定義するときには、キーワードdefaultをメソッドの前につけます。 interface Foo{ void print(String s); default void twice(String s){ print(s); print(s); } } twiceメソッドが実装をもっています。この実装をデフォルト実装といいます。 デフォルトメソッドを実装するクラスで、デフォルトメ

    Java8で最もインパクトのある構文拡張、デフォルトメソッド - きしだのHatena
    nakag0711
    nakag0711 2013/06/10
    処理系の実装の稚拙さをごまかすために多重継承はないほうがいいなどと初心者を騙し続けてきたのがついに終わりの時を迎えたか。でもメンバ変数は継承できないのかなこれ。
  • Java 8を関数型っぽく使うためのおまじない - きしだのHatena

    やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ

    Java 8を関数型っぽく使うためのおまじない - きしだのHatena
    nakag0711
    nakag0711 2013/05/01
    分かりにくい関数型言語を使うのは大胆な最適化がやり易いからだったはずたが、Javaの処理系ってそのメリットが出るような最適化できるのかなあ。C++のはインライン展開だから最適化しやすいようだけど
  • 文章に向いてない構造をいかに文章に向いた構造に直列化するかが大事 - きしだのHatena

    Software Design 12月号の特集が「なぜエンジニアは文章が下手なのか?」というタイトルだったので、読んでみたら、ちょっと残念な内容だった。 「それは文章で書くべき情報なのか」という章があって、直列化した論理構造であれば文章には書きやすいけど、分岐やループがあるような構造だと書きにくいということが書いてあった。そこで文章化しにくい構造の例として地図があげてあって、暗にそういう構造は文章化をやめて図であらわせと言っているように読める。 けれども、図に書いたところで、書く側は文章化から逃げれて満足かもしれないけど、それを読み取る側は結局どこかから順番に解釈していく必要がある。図に逃げるのは、読み手に責任を押し付けているだけだと思う。 で、「ですから文章を書く前にまず論理構造を考える必要があります」と続いていて、では考えた論理構造が「文章に向かない論理構造」だったらどうするの?逃げる

    文章に向いてない構造をいかに文章に向いた構造に直列化するかが大事 - きしだのHatena
    nakag0711
    nakag0711 2012/11/24
    人の作ったものには目的があるんで、それにそって説明するといいと思われます
  • 人間関係をリアルとバーチャルに区別する意味はあるだろうか - きしだのHatena

    今日ちらっと、「ソーシャルとはリアルの人間関係のことである(キリッ」っていう文章みて、こいつバカじゃねーのって思わなかったことにしておくけど、そういう文章をみたんだ。 それで思った。じゃあリアルの人間関係ってなんだ? この対比で言う場合に、バーチャルのほうはわかりやすい。一度も実際に会ったことがない人との関係。でも、じゃあリアルって? 3年くらいはてなTwitterでお互いを認識して、一度だけ同じ飲み会に参加して5分くらい話をした人とは、リアルの人間関係? メールで仕事をもらって、一度も電話することもなく声を聞くこともなく、メールとチャットで打ち合わせをして、納品して請求書送ってお金を支払ってもらった人は、リアル?バーチャル? お金がリアルだから仕事はリアルだろって?じゃあ仕事の前の打ち合わせだけで仕事が流れたら?Twitterで、なんとなく仕事もらえねーかなーと思いながらつながってるの

    人間関係をリアルとバーチャルに区別する意味はあるだろうか - きしだのHatena
    nakag0711
    nakag0711 2012/02/08
    関係というのは、具体的に相手が何をしてくれるか、相手に何をするかということ。そういう意味では、バーチャルだとリアルに比べてある程度制約が生じるのは否めない。
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
    nakag0711
    nakag0711 2011/09/23
    こういう趣旨なら、当然最後にKnuthの本が出てくるんだろうと思ったら……
  • ハードディスクもオンボードになるのかな?そうするとプログラムモデルも変わる。 2008-12-11 - きしだのはてな

    ハードディスクじゃなくてSSDですけどね。 そのあたりは、有機ELディスプレイを液晶ディスプレイと言っちゃう感じ。 ハードディスク/SSDをまとめたパソコン内臓ストレージの呼び名って、なんかいいのありますかね? まあ、それはともかく。 もう少しするとSSDの容量も数百GBとかになってきて、十分使えるようになるわけですよね。普通の用途だと、ストレージなんて200GBもあれば十分で、増設もそれほど必要なくなるんじゃないかと思うのです。 テレビ録画でストレージ必要という話もあったけど、実際には適法性は別としてみんなYouTubeなりニコ動でみたりしてるでしょ。こういう共通コンテンツというのは、ネットワークの上にアクセス可能な形であればいいので、自分の手元にある必要は必ずしもない。独自コンテンツっても子供の運動会くらいのもんで、それほど増えない。それにしてもネット上に保存しておくほうが信頼性が高い

    ハードディスクもオンボードになるのかな?そうするとプログラムモデルも変わる。 2008-12-11 - きしだのはてな
    nakag0711
    nakag0711 2008/12/19
    ファイルという単位がなくなると扱いづらそうだが
  • RDBMSの時代の終わりが見えてきた - きしだのはてな

    クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonSimpleDB。どれも、基的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB

    RDBMSの時代の終わりが見えてきた - きしだのはてな
    nakag0711
    nakag0711 2008/12/13
    ビジネスロジックはOOPなんかでチマチマやるよりストアドで書く方が楽