タグ

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

  • 会社員になってJJUG CCCのスポンサーセッションで発表してきた - きしだのHatena

    2月1日からLINE Fukuoka株式会社というところで会社員をやっております。 ということで、JJUG CCC 2015 Springのスポンサーをやらせてもらって、スポンサーセッションで登壇してきました。 だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。 from なおき きしだ ※4/15 15:41追記 P37の「近所の定屋」は今週値上げして490円になりました 内容としては、Javaエンジニア養成読の記事をベースに、Java歴史について、技術トレンドや経済的な情勢、そしてハードウェアの事情から捉えてみて、いろいろな流れのなかで影響を受けてきたことを示しつつ、コミュニティがどう変遷してきたか、個人的にこの先をどう考えて動いてたかってのを、ふんわりと説明したかった感じです。 ということで、タイトルにある「誰も教えてくれないJavaの世界」というのは、そう

    会社員になってJJUG CCCのスポンサーセッションで発表してきた - きしだのHatena
  • Java8のStreamを使いこなす - きしだのHatena

    さて、Java8で関数型っぽいことをやって遊んでみたわけですが、実際はそんな書き方しませんよね。 Java8で実際に使うのは、Streamです。 ということで、Streamの使い方をひととおり見てみます。 ※5/17 仕様変更があったので、修正しました 基 まずは、Iterableインタフェースに用意されたforEachメソッドを見てみましょう。 List<String> names = Arrays.asList("hoge hoge", "foo bar", "naoki", "kishida"); names.forEach(s -> System.out.println(s)); これで次のように表示されます。 hoge hoge foo bar naoki kishida いままでの拡張forだと次のように書いてました List<String> names = Arrays.a

    Java8のStreamを使いこなす - きしだのHatena
  • NetBeans7.2とPHP5.4の組み合わせが素晴らしい件 - きしだのHatena

    PHPは開発が簡単とか言われますが、実際になにかWebアプリケーションを動かそうとすると、ApacheにPHPモジュールを設定してドキュメントルートを設定するなど、準備に手間がかかりました。 特に、絶対パスが使われているサイトを2つ同時に開発するという場合には、サーバーを別に用意したりポートを変えたホストを用意したりする必要がありました。 PHP5.4からは組込Webサーバーが用意されたので、ApacheなどWebサーバーを別にたてて設定する必要なくPHPのWebアプリケーションを試すことができます。 7月くらいにリリースされる予定のNetBeans7.2ではPHP5.4に対応してtraitなどの新しい文法の補完にも対応するようですが、一番ステキ機能は、PHP5.4組込サーバーへの対応だと思います。 ということで、NetBeans7.2betaとPHP5.4組込サーバーを使ってPHPをNe

    NetBeans7.2とPHP5.4の組み合わせが素晴らしい件 - きしだのHatena
    gakkiy
    gakkiy 2012/05/31
    すばらしい
  • ソフトウェアを勉強しはじめてこの3年でやったこと - きしだのHatena

    2009年:ベルギービールうまい 2010年:ドイツビールうまい 2011年:日の地ビールもうまい と思ったら、ビール画像判定プログラムとか作ってたのは2008年か。 ビール画像判定プログラムできたよ!

    ソフトウェアを勉強しはじめてこの3年でやったこと - きしだのHatena
    gakkiy
    gakkiy 2012/05/23
    今後の動向に期待です。
  • どのプログラム言語を選ぶべきか・・・ - きしだのHatena

    PHP-erはダメな言語でいかにまともなものを作るかっていうマイナスからのスタートだし、 JavaScript-erは何もないところで何か動いて楽しいっていう0からのスタートだし、 Ruby-erはRuby好きって言ってるだけだし、 Java-erはJavaの仕様にしか興味がないし。 Scala-erは生ぬるいこと言うと狩られるし、 Smalltalk-erは過去の栄光語ってるだけだし、 COBOL-erは苦労話しか出ないし、 FORTRAN-erはプログラムに興味ないし、 Perl-erは同窓会みたいだし、 Python-erは仲間探すの大変だし、 Erlang-erはどこにもいないし、 C-erは目先の仕事にしか興味ないし、 C++-erはC++の復興にしか興味ないし、 C#-erはWindowsにひきこもるし、 ActionScript-erはAdobe税はらうのに大変そうだし、 O

    どのプログラム言語を選ぶべきか・・・ - きしだのHatena
  • Servlet3.0でcometチャットを作ってみる - きしだのはてな

    Cometとは? ブラウザベースのチャットをつくろうとする場合、以前は定期的にクライアントからリクエストを送信して更新を確認するという手法がとられました。そうすると、平均して更新間隔の1/2の遅延が発生し、更新がないときの問い合わせが無駄になるなど、ユーザーにもサーバーにもうれしい手法ではありませんでした。 そこで使われるようになったのがCometです。 Cometは、HTTPでクライアントからの接続への返答を保留して、サーバーからデータを送信する必要がでたときに返答を返すことで、サーバーからのリアルタイムデータ送信を行う手法の総称です。 Servlet3.0でのComet対応 Cometでは、クライアントからの接続を保持しつづけるので、これまでのServletの仕組みをつかって実現しようとすると、各接続にスレッドを割り当てることになり、スレッド数が多くなりすぎるため、多くのユーザーには対

    Servlet3.0でcometチャットを作ってみる - きしだのはてな
  • Java 7の並列ライブラリをためしてみる - 2011-02-20 - きしだのはてな

    と言っても1メソッド呼び出してるだけですけど。 ソースは最後においていますが、整数のリストの合計を取得してます。 次のようなCallableインタフェースを実装したクラスを用意して SummaryTask implements Callable<Integer> そのクラスのリストを用意して List<SummaryTask> summaryTasks = new ArrayList<>(); 一気に実行開始 List<Future<Integer>> results = new ForkJoinPool().invokeAll(summaryTasks); 最後に結果を集計という感じです。 for(Future<Integer> future : results){ result += future.get(); } 実行結果としては、ぼくのマシンはデュアルコアなので、だいたい2倍の速度

    Java 7の並列ライブラリをためしてみる - 2011-02-20 - きしだのはてな
  • JDK6のHttpServerで簡単なWebサーバーを作る - きしだのHatena

    日付があしただけど気にするな。 (今は11/23) JDK6にHTTPサーバークラスが用意されてるということで、これを使って静的ファイル専用の簡単なWebサーバー作ってみました。 package webserver; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWrit

    JDK6のHttpServerで簡単なWebサーバーを作る - きしだのHatena
  • どうでもいいことをあたかもなんかすごいことのように語るメソッド - きしだのHatena

    どうでもいいことを、あたかもなんかすごいことのように語る方法を考えてみる。 まず、書きたい「どうでもいいこと」を決めよう。 とりあえずここでは、「明星のインスタント焼きそば作るときにかやくを入れ忘れたのだけど、それってフタの説明が悪いんじゃない?」ということを書くとしよう。ここで、読んでる人に「ようわからんけどなんかすごい」と思わせるために話の主題をずらすのが大切だ。今回は、結論を「UFOのターボ湯切りいいよね」ということにしよう。 文はこのようになる。 先日明星のインスタント焼きそばをべた。 ふたの説明を見ながら手順どおりに作ったのだけど、べる段になって、かやくはあらかじめ入れておかないといけないことに気づいた。これはふたの説明が悪いのではないか。ふたの説明はインスタント焼きそばの味を最終的に決めるものであるから、わかりやすく書くべきである。 UFOのようにかやくをあらかじめめんの

    どうでもいいことをあたかもなんかすごいことのように語るメソッド - きしだのHatena
  • Seasarの問題点など 2009-01-29 - きしだのはてな

    なんとなく思ってたSeasarの問題点をまとめてみる。 Seasarというのは、JavaのDIコンテナ+その周辺ライブラリを含めたSeasar2のことと、それらの周辺プロジェクトをとりまとめるSeasarファウンデーションのこと。どの問題がどっちの問題なのかもよくわからないので、ばくぜんとまとめた。 The Seasar Project Seasarファウンデーション はたから見てという視点なのだけど、実はSeasarの開発者ミーティング(という名の飲み会)にはなるべく出席してたり、内情は知ってる。けれども、Seasar2は一回も使ったことがない。チュートリアルを一度動かしたことがあるかどうか、くらい。 なので、状況は知ってるけどプロダクトは知らないという感じ。 で、昨日Seasar開発者ミーティングの後の飲み会でいろいろ言ってたら、こんなところでグダグダ言わずにブログに書けとパパにゆわれ

    Seasarの問題点など 2009-01-29 - きしだのはてな
  • 2008-11-19 - きしだのはてな: マルチスレッド対応カウンタ

    Javaの++演算子はアトミックじゃない。つまり、++nは、n = n + 1と分解されたとき、nを読み込んだ後、1足した値をnに書き込む前に他のスレッドがnを変更していたら、すでに他のスレッドで行っていた変更が無効になる。 で、これはvolatileをつけてもだめ。 つまり、このプログラムの実行結果が20000にならない。 public class NonAtomicIncrement { static int count; public static void main(String[] args) throws InterruptedException{ Thread t = new Thread(){ @Override public void run(){ for(int i = 0; i < 10000; ++i){ ++count; } } }; t.start(); for

    2008-11-19 - きしだのはてな: マルチスレッド対応カウンタ
    gakkiy
    gakkiy 2008/11/24
    AtomicInteger
  • ということで、バイトコードコンパイラを作ってみる。 - きしだのHatena

    おとといと昨日のプログラムを組み合わせて、数式をバイトコードにコンパイルして実行させてみました。 import java.io.*; import java.text.ParseException; import java.util.Stack; public class Compiler { public static void main(String[] a) throws Exception{ System.out.printf("%d : %d%n", eval("4-3"), 4-3); System.out.printf("%d : %d%n", eval("4--3"), 4- -3); System.out.printf("%d : %d%n", eval("((-12 + 3) * 2)"), ((-12 + 3) * 2)); System.out.printf("%d

    ということで、バイトコードコンパイラを作ってみる。 - きしだのHatena
    gakkiy
    gakkiy 2008/06/10
  • 2008-01-28 - きしだのはてな - 創るJavaの読み方 - 中級編

    とりあえずやさしいJavaとか読んで勉強して適当にプログラム組んだりしてる人向け データベースとかWebは除く。 1.インストール まあ、インストールは必要ですね 3.NetBeansの使い方 NetBeansの使い方に慣れてください 4.Javaの基 4-3.クラスとオブジェクト サンプルで使うクラスなんかを説明してるので読んでおくほうがいいです。 5.制御構造と配列 5-1.条件分岐 「switch文による分岐」のサンプルをあとで使います 5-2.配列 「多次元配列」のサンプルをあとで使います 5-3.メソッドの話 「メソッドの戻り値」のサンプルをあとで使います 5-5.デバッガ 使い方の確認がてら、やっておいてください。 6.クラスとインタフェース 6-4.インタフェース サンプルのまとめがあるので、そこから 匿名クラスの書き方は確認しておいたほうがいいかも。 6-5.クラスの補足

    2008-01-28 - きしだのはてな - 創るJavaの読み方 - 中級編
  • 2008-01-27 - きしだのはてな - 創るJavaの読み方-入門編

    とりあえずはプログラム自体がはじめての人がWebアプリやるときの読み飛ばし方 1週間(5日間)Java講座とかは、こんな感じでやるといいと思います。 1.インストール 環境は必要ですね。 2.Javaとは 読むのがめんどかったら飛ばしてください 3.NetBeansの使い方 まあ、とりあえず 4.Javaの基ですから 5.制御構造と配列 5-1.条件分岐 「switch文による分岐」は確認程度でいいかと 5-2.繰り返し やる 5-3.配列 多次元配列はなんなら飛ばしていい 5-4.メソッドの話 やる 5-5.例外 やる 5-6.デバッガ デバッガの使い方ではなく、プログラムの処理の流れの確認なので、必ずやる 6.クラスとインタフェース 6-1.クラスの基 やる 6-2.クラスの継承 やる 6-3.修飾子 やる 6-4.インタフェース やる。 6-5.クラスの補足 飛ばす 6-6

    2008-01-27 - きしだのはてな - 創るJavaの読み方-入門編
  • 落書きくん - きしだのHatena

    アップするアップするといいつつ、アップしてなかった落書きくん最新版。 タスクバーが下にないとおそらくうまく動かないガンコもの。 適当なフォルダに解凍してscrdraw.jarをダブルクリックなどして起動してください。要Java6 http://www.fk.urban.ne.jp/home/kishida/soft/scrdraw.zip

    落書きくん - きしだのHatena
    gakkiy
    gakkiy 2007/12/25
    きしださんからのくりすますぷれぜんと
  • オートボクシング・アンボクシングの注意 - きしだのはてな

    Java2 SE 5.0から、基型とラップクラスの相互変換を自動的にやってくれるようになりました。 つまり Integer a = 5; System.out.println(a * 10); などとすると Integer a = Integer.valueOf(5); System.out.println(a.intValue() * 10); のように変換してくれます。 そうすると、通常ラップクラスを使う場面は、ジェネリクスでの型指定とObjectへのキャストだけになります。 ところで Integer a = 5; Integer b = 5; System.out.println(a == b); はどうなるかというと、これはtrueになります。 ところが Integer a = 130; Integer b = 130; System.out.println(a == b); の

    オートボクシング・アンボクシングの注意 - きしだのはてな
    gakkiy
    gakkiy 2007/10/29
    最初の論理演算はBEAのVMではfalseになったけど、Integerのsrcもバイトコードをjadにかけた結果も内容が同じだった。
  • こんなスーツ組が求められています - きしだのHatena

    女子メガネスーツ

    こんなスーツ組が求められています - きしだのHatena
  • がんばってます - きしだのHatena

    602 名前:デフォルトの名無しさん [↓] :2007/09/14(金) 03:40:31 改訂版まだぁ?(・∀・)チンチン もうちょっとデス

    がんばってます - きしだのHatena
    gakkiy
    gakkiy 2007/09/14
    もうちょっとで出るらしい。>創るjava
  • 「車輪の再発明をするな」の流行は孔明の罠 - きしだのHatena

    なんかの実装がオープンソースで公開されているときに、同じ機能の実装を行うのは「車輪の再発明」で無駄な行為だといわれた時期がありました。 でも、それは「再発明」ではなく「再実装」であって、とても大切な行為です。 車輪にしたって、ブリヂストンも横浜ゴムもタイヤの開発をいまもって続けてるわけです。タイヤだけでなく、ホイールからベアリングからドライブシャフトから、「車輪」の部品については、いまだにいろいろな会社が切磋琢磨して再実装を続けているのです。 世の中に出ているライブラリを自分で実装してみるとわかることは、自分の実装を持っているという強さです。 たとえ世の中のライブラリに機能的に性能的に負けていたとしても、自分の実装というのは自分のニーズに合わせるという点でとてもいい。特に、処理の途中の値を使えるというのがいいのです。ライブラリでは、入力したら出力が返ってくるまで中身が見れないですからね。

    「車輪の再発明をするな」の流行は孔明の罠 - きしだのHatena
  • 一般向け→ - きしだのHatena

    押してください

    一般向け→ - きしだのHatena