タグ

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

  • WebSocketをネタにJava EE 7正式版を試してみる - きしだのはてな

    Java EE 7がリリースされて、それに対応したGlassFish 4もリリースされました。 ついでに、Java EE 7やGlassFish 4に対応したNetBeans 7.3.1もリリースされています。 ということで、NetBeansとGlassFishを使ってJava EE 7を試してみようと思います。 今回は、Java EE 7の中でも簡単なコードで動きの派手なWebSocket対応を試してみます。 ダウンロード まずNetBeansをダウンロードします。 https://netbeans.org/downloads/ NetBeansは、ちょっと試すにしてもずっと使うにしても、インストーラーではなくzipで落とすほうが楽なので、ここでは「プラットフォーム」に「OSに依存しないZIP」を選択します。 「サポートテクノロジー」が「Java EE」か「すべて」のものをダウンロードし

    WebSocketをネタにJava EE 7正式版を試してみる - きしだのはてな
  • Java8には型推論があるので型指定不要で変数が使えますよ - きしだのHatena

    Javaプログラマのみなさんは、Javaは型推論がないから変数の型指定をしなくていけなくてダサい、などとイジメられた経験があると思います。 おかあさんに型推論をねだるとGroovyをわたされたり、おとうさんに型推論をねだるとScalaがやってきたり、プレステが欲しいって言ったのにWiiやXboxを買い渡される感を味わった人も多いのではないでしょうか。 そんな良い子のJavaプログラマのために、今年はサンタが素敵なプレゼントを持ってきてくれましたよ。 同じ型を書くのがダサい たとえばウィンドウを出してボタンを押したらメッセージが表示されるサンプルを書くとこんな感じになりますね。 public static void main(String... args){ JFrame f = new JFrame("テスト"); JButton b = new JButton("押して"); JText

    Java8には型推論があるので型指定不要で変数が使えますよ - きしだのHatena
  • Seasar2を新規案件に採用するのはそろそろやめたほうがいい - きしだのHatena

    Seasar2の機能追加停止が宣言されてから、すでに6年弱たっています。 Seasar2.4に対する追加要望があれば、もちろん検討します。ただし、大きな変更や追加はもうないでしょう。 Seasar2の今後のロードマップ 2008-01-29 - ひがやすを blog 後継になる予定だったSeasar3も開発が中止されて3年たちました。 Seasar3開発中止 2010-08-06 - ひがやすを blog ここでSeasar2.5を出す方向で動くということでしたが、実現しませんでした。 あのころSeasar2に関わっていた人も、ScalaがメインになったりNode.jsをさわったり、不意ながらPHPをさわったり、さわってみるとPHPもそれほど悪くなかったり、やっぱりPHP気にわなかったりと、いろいろな道を進んでいます。 DIコンテナ自体の機能も時代遅れ感がでてきており、関連プロダクトも

    Seasar2を新規案件に採用するのはそろそろやめたほうがいい - きしだのHatena
  • TDDで「テストばかり書いて間に合うのか?」と質問されたときの正解 - きしだのHatena

    TDDにおいて、顧客などから「テストばかり書いていて間に合うのか?」などと質問されることがあると思います。 そんなときには、後ろからそっと抱きしめて 「そんな質問させてごめんな」 が正解です。 https://twitter.com/kis/statuses/350279800600018944 テスト駆動開発の効果はどのくらいある? − Publickey テスト駆動開発 作者:Kent Beckオーム社Amazon

    TDDで「テストばかり書いて間に合うのか?」と質問されたときの正解 - きしだのHatena
  • ソフトウェア工学は失敗している - きしだのHatena

    特に学術的にソフトウェア工学に触れたことはないのですが、むしろそうではなく現場にいる身としては、ソフトウェア工学は失敗しているように見えます。 「成功していない」ように見えるのではなく「失敗している」ように見えるのです。 もちろん、いまソフトウェア開発で使う技法やツールなど、ソフトウェア工学の産物はたくさんあり、現在のソフトウェア開発がソフトウェア工学から生まれたもので支えられていることには間違いありません。 でも、そうやって築き上げてきたものが、1999年以降ガラガラと崩れて、そしてうまく再構築できていないように見えます。 1999年、なにがあったかというと、XPエクストリーム・プログラミング入門というが発行されたのです。リンク先は2版ですが、日語版でも初版は2000年12月になっています。 ここからソフトウェア工学がガラガラ崩れた気がしています。 では、ここまでソフトウェア工学がど

    ソフトウェア工学は失敗している - きしだのHatena
  • FPGAとArduinoとRasberryPIの違いと、FPGAを勉強する理由 - きしだのHatena

    はたから見てると、FPGAとArduinoとRasberry PIって、なんか小さくてデバイス挿して使ってて似たもののように見えるかもしれません。 そんな中、どこが違うの?って思ってる人もいるかと思ったので、それぞれの違いと、そしてそこから得られる技術者としての知識をまとめてみます。 まあ、得られる知識として「それぞれのデバイスの使い方と周辺環境」ってのはありますが、それは当然として。「それぞれのデバイスの使い方と周辺環境」を得るメリットがわかる比較としてまとめたいと思います。 根底は「なんで最近FPGAをやってるか」っていうことの説明なので、そういうバイアスがあると思ってください。 FPGAというのはチップの種類なので、実際にはDE0などのFPGA評価ボードとの比較ですが。中でもDE0-nanoは大きさや価格を考えると、豪華なArduinoくらいの位置づけとして出してきたようにも見えます

    FPGAとArduinoとRasberryPIの違いと、FPGAを勉強する理由 - きしだのHatena
  • 自動車レースにおけるライン取りが本質的でないことをプログラムで説明するテスト - きしだのHatena

    月刊マガジンを読んでたら、「Capeta」が次回で最終回だと書いてありました。 「Capeta」は、フォーミュラカーレースでF1を目指すマンガで、これ実際にレース走らないとわからないよなーという細かい表現がたくさんあってすごい。(と思わせる描写になっている) おそらく、もう、こういうレースマンガはもう出てこないんじゃないかと思わせられます。それが終わってしまうので、結構さびしい。 レースマンガというのは、スポーツマンガの中でも主人公ブーストが効きにくいカテゴリで、いくら主人公が叫ぼうがわめこうが、車は速くなりません。 そうすると、安易にやろうとすると「頼む、タイヤよもってくれー」みたいに、タイヤがすべらないことをお願いしてみたらタイヤががんばって勝てちゃったみたいな話になります。ただ、レース全体でタイヤを100%使い切るドライバーが速いわけで、レース途中でそうやって無理をしたのであればその

    自動車レースにおけるライン取りが本質的でないことをプログラムで説明するテスト - きしだのHatena
  • SIerは日本にしかいないのか - きしだのHatena

    ちょっと気になったので。 まず、SIerってのは、システム受託開発専門のソフトウェア会社や部門ということでいいんですよね? で、アメリカにはそういったSIerはいないのか、と。 ちょっと古いのだけど、手元に「ソフトウェア開発の定量化手法 第2版」という1998年刊行のがあるので、調べてみました。 187ページに「分野ごとのソフトウェア要員の概数(1995年)」という表があって、ここに「アウトソーシング」という項目には175,950人という数字があります。全体が2,432,168人なので、割合としては少ないですが、それなりに多い人数です。 この「アウトソーシング」は、「受託開発/アウトソーシング」として説明されていて、日でいう受託開発のことを指すと思います。 ところで、このサイトの「図表2」を見ると、日の情報サービス産業の従業員数は、1995年には40万人程度だったことがわかります。

    SIerは日本にしかいないのか - きしだのHatena
  • Javaでのパターンマッチを考える - きしだのHatena

    このエントリはJava Advent Calendar 2012の20日目のエントリです。 昨日は@akirakoyasuさんのアノテーションのインスタンスを取得するでした。 明日は@Fantom_JACさんです。 パターンマッチとは 多くの関数型言語には、パターンマッチという仕組みが用意されています。 パターンマッチは、データ構造を型や値のパターンで分解する仕組みです。 例えばScalaで val v = List(1, "hoge", 3) val List(n:Int, s:String, a) = v などとすると、リストが分解されてそれぞれの値がn、s、aという変数に入ります。 このとき、次のように2番目の値がDoubleにマッチさせようとすると、Stringにはマッチしないので例外が発生します。 val List(n:Int, s:Double, a) = v 次のようにして値

    Javaでのパターンマッチを考える - きしだのHatena
  • 社会人が勉強するときに知っておくべき3つのこと - きしだのHatena

    某社の社員の人が始めたというAdvent Calendarが、13日になっても13日分の担当が決まってないという状態だったので、空気よまずに書いてみました。 「新人/若手向け、これだけは知っとけTips25 Advent Calendar 2012」 http://www.adventar.org/calendars/37 これだけは知っとけTipsということですけど、これTipsじゃないなーと思いながら、でもまあ知っておいたほうがいいよなということを書いてみます。 13日担当分ですが、もう一件Advent Calendarがあるので、このエントリの日付は12日にしています。 は読み進むと必ず読み終わる まず、勉強するときに知っておいてほしい一番大事なことは、「は読み進むと必ず読み終わる」ということです。 どんなに厚いでも、難しいでも、という体裁になっている以上は有限のページ数し

    社会人が勉強するときに知っておくべき3つのこと - きしだのHatena
  • 日本未来の党のアンケートでの攻防戦観戦に出遅れた - きしだのHatena

    なんだか、日未来の党が戦場を用意していました。 日未来の党がネット民に壮絶に馬鹿にされる: やまもといちろうBLOG(ブログ) これは面白いと思って、とりあえずデータを取り出して、夜の間に素敵な攻防が繰り広げられるだろうと思ってたら、結局21時くらいにアンケートがおわって、23時にはデータも取れなくなってました。 完全に出遅れた。 まあ、とりあえず18時から21時までのデータを取ったので、観戦記録を書いておきます。 全体としてはこんなグラフ。 左が原発推進の設問で、右が消費税増税の設問。それぞれ左側が賛成、右側が反対です。 途中乱れてるのは、20時6分くらいにデータがリセットされてたから。このとき、かなり不安定な値になってたんで、人為的にリセットしたんじゃなくて、単にデータぶっこわれたんじゃないかなーと思ったり。 で、これが前半。18時14分から20時6分まで。 データを取るちょっと前

    日本未来の党のアンケートでの攻防戦観戦に出遅れた - きしだのHatena
  • 文章に向いてない構造をいかに文章に向いた構造に直列化するかが大事 - きしだのHatena

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

    文章に向いてない構造をいかに文章に向いた構造に直列化するかが大事 - きしだのHatena
  • Sencha Touchの本を書きました - きしだのHatena

    JavaScriptリッチクライアントフレームワークのSencha Touch解説を書きました。 Sencha Touchではじめるモバイルアプリ開発―無料で使える「HTML5」&「JavaScript」開発フレームワーク (I・O BOOKS) 作者: きしだなおき出版社/メーカー: 工学社発売日: 2012/11メディア: 単行購入: 1人 クリック: 24回この商品を含むブログ (7件) を見る 表紙になぜかコーヒーカップとJavaって書いてあるのは、ぼくの管轄外です・・・。あと、キャプチャ画面、もすこしいい感じのを使ってもらうことはできなかったのか・・・。ただ、実物の色合いはもうすこし落ち着いています。 Amazonでは15日発売だけど、公式サイトによると19日発売、らしいです。どっちが正しいかは、まだ聞いてません・・・ ともあれ、目次はこちらから。 ���Ҿ�����Senc

    Sencha Touchの本を書きました - きしだのHatena
  • 誰かが亡くなった - きしだのHatena

    朝。 訃報を聞いたという人がいた。 それが確かかどうかもわからない。 だれかもぼくにはわからない。 ただ、訃報があったと知った。 気になった。 昼。 数日前に会った友達が亡くなった、と嘆いてる人がいた。 その人は知り合いも多いだろうし、ぼくと興味の範囲も違っているので、あまり面識がない人なのだろうと思った。 少し年下の人が、年も近いのにと嘆いていた。やはり、あまり知らない人かなと思った。 それでも、気になった。 夕方。 福岡の人が、また来ると言ってたのに、と嘆いてた。 お会いしたかったと言っている人もいた。 案外、知っている人なのかもしれないと思った。 夜。 亡くなった人の名前を聞いた。 知ってる人だった。@akhkさん。 Twitterでは、初期から知っていた。やりとりしたこともある。 実際に会って話したこともあった。ただ、会話がはずんだわけでもなく、単に社交辞令的な挨拶だった。 構築し

    誰かが亡くなった - きしだのHatena
  • UbuntuでNetBeans7.3+PHPの環境設定メモ - きしだのHatena

    メモ。 Ubuntu12.04LTS Ubuntu12.04LTS 32bitのisoをダウンロード http://www.ubuntu.com/download/desktop Ubuntu12.10は、VirtualBox4.1.22のGuest Additionsが対応してなくて、画面のリサイズができなかった。*1 「デスクトップ」とかのカタカナフォルダを「Desktop」にする。 $ LANG=C xdg-user-dirs-gtk-update 「もうたずねない」のチェックを入れつつ間違って「Old Filename」のほうを押すと死ぬ・・・(2013/1/5) VirtualBoxの共有フォルダ用 $ sudo usermod -a -G vboxsf kishida -a忘れると死ぬ。 (追記 2013/1/4) Javaまわり JDK7u8をとってきて解凍 NetBeans

    UbuntuでNetBeans7.3+PHPの環境設定メモ - きしだのHatena
  • 読みやすいコードのための暗黙の了解がつまってる「リーダブルコード」 - きしだのHatena

    そういえばidがkdmsnrの児玉サヌールという人から「を訳したよ!」と献いただいたのだけど、届いたを見てみると訳者は角 征典という人だったのでとまどっていたところ。 出版したときにいただいてたので、もう半年近くになるけど、時間がかかったのは、ちまちまと一日1ページとか2ページとか読んでたから。普通に読めば、たぶん土日で読めます。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者:Dustin Boswell,Trevor FoucherオライリージャパンAmazon 関係ないけど、一時期、角さん、角田さん、角谷さん、という一文字ずつ成長する東のほうの人と一気に知り合いになって「かっくん」と言われてるのがどの人かわからないことがあった。懐かしい話。 それはそれとして、ぼくは「きれいなコードをかきましょう」系の話

    読みやすいコードのための暗黙の了解がつまってる「リーダブルコード」 - きしだのHatena
  • おねえさんを組み合わせ爆発から救う:完結編おねえさんは星になった - きしだのHatena

    おねえさんを組み合わせ爆発から救うために、経路をZDDとして表したら、すっきりと経路情報が扱えました。 http://d.hatena.ne.jp/nowokay/20121018#1350528607 あとは、このZDDを効率よく構築できれば、おねえさんを救えそうです。このZDDの構築には、クヌース先生の開発したSimpathアルゴリズムを使うと非常に効率よく構築できます。 前回生成したZDDを見ると、同じノードにまとまっているものがいくつかあることがわかります。特に後半になるとどんどん同じパターンになるものがまとめられていきます。 つまり、この経路問題のZDDを構築するときには、いかに同じパターンになるものをまとめるかが鍵になるということです。 Simpathでは、辺の端だけに注目して、同じパターンになっていればそれ以降のノードを使いまわすという考え方で、ノードをまとめていきます。 つ

    おねえさんを組み合わせ爆発から救う:完結編おねえさんは星になった - きしだのHatena
  • おねえさんを組み合わせ爆発から救う:ZDDがおねえさんを救う - きしだのHatena

    おねえさんを組み合わせ爆発から救うために、経路をBDDとして表しました。 http://d.hatena.ne.jp/nowokay/20121017#1350435805 ところで、「F」に至る経路で、ある辺を通るとした場合に即「F」となっているものが半分あります。 その節点を使うとしたときに、結果が偽になるのであれば、それは節点ごと不要だと言えます。そこで、そのような節点は省略してしまいます。 このような図を、ゼロ抑制BDD(Zero suppressed BDD)、略してZDDと呼びます。 「F」をすべて省略することもできます。ただし、BDDとは違って、どちらでも同じ結果になる場合も、それぞれの接続を表示する必要があります。 そうすると、2x2マスの経路でも、次のように表すことができます。かなり節点の数が減っていることがわかります。 「T」に至るパスの数が、経路の数です。 さまざまな

    おねえさんを組み合わせ爆発から救う:ZDDがおねえさんを救う - きしだのHatena
  • おねえさんを組み合わせ爆発から救う:2分決定木を作る - きしだのHatena

    おねえさんを組み合わせ爆発から救うために、まず格子グラフを作成しました。 http://d.hatena.ne.jp/nowokay/20121015#1350267331 こんどは、そのグラフの辺について、それぞれ通るか通らないかの組み合わせによって、始点から終点までの単純な経路になってるかどうか判定して、それをツリーとして表してみます。 右の実線に行く場合はその辺を通る、左の点線にいく場合はその辺は通らない、ということをあらわします。そして、最終的に始点から終点までの単純な経路になっている場合を「T」なっていない場合を「F」とします。 ここでは、1x1マスのグラフをあらわしているので、「1:3」と「3:4」を通る場合、つまり右に分岐する場合と、「1:2」と「2:4」を通る場合、右に分岐する場合だけが「T」となっています。 判定方法は、ツリーの途中では、始点と終点に入る辺が2以上になる

    おねえさんを組み合わせ爆発から救う:2分決定木を作る - きしだのHatena
  • 勉強することで何がいいのか実力者がいないことでデメリットはあるか - きしだのHatena

    「この辺を勉強してどういう良いことがあったか教えて欲しい。」というコメントがついてた。 良いこととして、一番は、まあ勉強するのが楽しくなった、ということなのだけど、それは循環してるので置いておいて。 実務的に一番いいのは、プログラムを組むのが楽になったということ。 とくに、質的な間違いが少なくなっていくので、後戻りが減るというのが楽。組んでみたけど動かない、途中でそれ以上組めなくなる、というのが少ない。まあ、ミスはあるので、そこの修正はするけど。 あと、できないことができないとわかりやすい。そのデータの持ち方でそのデータ数でその処理ではその精度の要求は満たせない、ということが原理的に判断しやすくなる。なので、むだな努力をしない。そして、どの条件を緩和すれば要求が満たせるかにも気づきやすい。 初見のライブラリや言語、ツールの理解が早くなる、とかも。 もちろん、前のエントリにも書いたように「

    勉強することで何がいいのか実力者がいないことでデメリットはあるか - きしだのHatena