タグ

ブックマーク / torutk.hatenablog.jp (13)

  • java.util.ListIteratorのnextとpreviousの振る舞いメモ - torutkのブログ

    JavaFXでページめくりをするUIを作るにあたって、その処理の中で、ページ名を格納したListからlistIteratorを取得し、ページめくり操作のUIとして用意した[前へ]、[次へ]ボタンを押すと、listIteratorのprevious、nextで次のページ名を取得する実装をしてみました。 すると、[次へ]でいくつかめくった後に[前へ]を押すと、1回目はページが前に戻らず2回目にページが前に戻るという現象が生じました。 ここで、既にListIteratorの振る舞いを分かっている人は、「あっ、やっちまったね」とすぐに分かるのかと思います。 さっそく、挙動を確かめるべく、JDK 9のREPL環境であるjshellで振る舞いを確かめてみます。 C:\Users\torutk>jshell | JShellへようこそ -- バージョン9-ea | 概要については、次を入力してください:

    java.util.ListIteratorのnextとpreviousの振る舞いメモ - torutkのブログ
  • 「Deep Learning Javaプログラミング」のパーセプトロンのサンプルプログラムにGUIを付けてみた #javareading - torutkのブログ

    12月からJava読書会BOF*1で読み始めた「Deep Learning Javaプログラミング」で、2.5.1節のパーセプトロン(単層ニューラルネットワーク)のサンプルコードをJavaFXGUIを追加して作成してみました。 Deep Learning Javaプログラミング 深層学習の理論と実装 (impress top gear) 書籍のサンプルコードは出版社(インプレス)の書籍ページからダウンロードできます。 http://book.impress.co.jp/books/1115101146 ただ、コンソールで実行するサンプルとなっていたので、データの分布が分かるようJavaFXGUIを付けてみました。 実行した画面は次になります。 プログラミングメモ 散布図(ScatterChart) 2次元のデータ分布なので、JavaFXの散布図(ScatterChart)を使いました

    「Deep Learning Javaプログラミング」のパーセプトロンのサンプルプログラムにGUIを付けてみた #javareading - torutkのブログ
  • Javaでテキストをしゃべらせる - torutkのブログ

    はじめに システムがカットオーバーされると、それまで運用してきた旧システムは撤去することとなります(基幹系では新システムがトラブルになった場合の備えとして残しておくことがあるかもしれません)。情報システム関連の仕事には、この旧システムの撤去もあります。サーバーを収容するラックは耐震上がっちり設置されているので、これを取り外して普通の床面に戻すのは工事が必要で、取り外したものを運び出すには運送が必要です。このような作業はITエンジニアでは行えないので、それぞれ施工会社や輸送会社などにお願いすることとなります。そのためには見積もり、手配、現地の下調べなどのお仕事があります。 先々月に異動になった部署では、カットオーバーする新システムのインフラストラクチャーの見積もり、手配、据え付けなどを行うのですが、それに伴う旧システムの撤去も扱っていたのです。 というところで、ここしばらくこの見積もりのため

    Javaでテキストをしゃべらせる - torutkのブログ
  • 動的共有ライブラリのバージョン管理 - torutkのブログ

    d:id:torutk:20081103でBoostライブラリのSONAMEについて調べていました。今回は、自分で作成するプログラムにおいて、動的共有ライブラリファイルのSONAMEの仕組みを使ってバージョン管理をする方法を模索しました。 やりたいこと C++のプログラムを動的共有ライブラリで作成・提供する際、ライブラリのバージョンアップにおいて、ソース互換性、バイナリ互換性の有無をバージョン番号で区別したい。 また、バイナリ互換性を失うバージョンアップの際は、誤って新しいバージョンのライブラリと古いライブラリ利用コードとを実行時にリンクできないようにしたい。 バージョン番号の付け方 バージョンアップには以下の種類があります。 ソース互換性も失う大きなバージョンアップ ソース互換性はあるがバイナリ互換性を失うバージョンアップ ソース互換性もバイナリ互換性もあるバージョンアップ Linux

    動的共有ライブラリのバージョン管理 - torutkのブログ
  • distccによる分散コンパイルでビルド時間を短縮 - torutkのブログ

    背景 C++は、コード規模の増分に対して指数的にコンパイル・リンク時間が増大します。 以前、C++Javaのビルド時間比較で調査したデータid:torutk:20071104と、id:torutk:20071107から、C++のコード規模によるビルド時間の違いをまとめ直したのが以下の表です。 対象プログラム名 総行数 命令行数 ファイル数 ビルド時間 ACE 5.6.1 307,819 79,930 1,248 00:10:40 ACE+TAO 5.6.1 1,066,708 247,391 2,592 2:35:30 コード規模が3倍でビルド時間は15倍となっています。 ビルド時間を短縮するアプローチ ビルド時間を早めるための工夫がいくつか存在しています。 キャッシュ等前回実行した結果を活用して処理時間を短くする コンパイル済みのオブジェクトはソースが変更されていなければ再コンパイルし

    distccによる分散コンパイルでビルド時間を短縮 - torutkのブログ
  • 8/22(土)は「Javaパフォーマンス」を読む会(第3回)です。#javareading - torutkのブログ

    Java読書会BOF主催の「Javaパフォーマンス」を読む会(第3回)は、今週末の8/22(土)に開催されます。開催案内・申込はJava読書会BOFサイト(次のURL)をご参照ください。 http://www.javareading.com/bof/ 今回は、ガベージコレクタ祭りです。Javaのガベージコレクタの基からチューニングまでを学ぶよい機会になるかと思います。 次の節が今回の読書範囲予定です。 p.125 5.1.3.2節 ガベージコレクションのアルゴリズムとスループットの測定から読みます。 5.2 ガベージコレクタの基的なチューニング 5.3 ガベージコレクション関連のツール 6章 ガベージコレクションのアルゴリズムに入って 6.1 スループット型ガベージコレクタを理解する 6.2 CMSガベージコレクタを理解する 6.3 G1ガベージコレクタを理解する 6.4 高度なチュー

    8/22(土)は「Javaパフォーマンス」を読む会(第3回)です。#javareading - torutkのブログ
  • JJUGナイトセミナー JVM特集に参加して #JJUG - torutkのブログ

    日は、日Javaユーザーグループ(JJUG)主催のナイトセミナー「JVM特集」に参加してきました。 今晩のセッションは次の2つでした。 JNR: ネイティブコードをコールするのに、まだJNI使っているの?(by 櫻庭さん) HotSpot のロック: A Peek Under the Hood(by バックさん) 今回のナイトセミナーは、募集開始から1日足らずで定員を超過し、定員より多いキャンセル待ち人数となるものでした。このテーマでなぜ?という声もありましたが、会場で「JNI使ったことある人」に多数手が上がるなど、実はニーズが大きい分野だったのかもしれません。 JNR: ネイティブコードをコールするのに、まだJNI使っているの? セッション資料: http://www.slideshare.net/skrb/jnr-java-native-runtime 日で唯一のJava Cha

    JJUGナイトセミナー JVM特集に参加して #JJUG - torutkのブログ
  • イベントバスとリアクティブプログラミングの違いについて - torutkのブログ

    GUIを持つアプリケーションの設計では、ソフトウェアアーキテクチャパターン*1としてMVCパターンを使用し、MVCパターンを実現する上で、Modelの変更をViewやControllerへ通知する仕組みにデザインパターン*2としてObserverパターンを使用するのが古典的定番です。 ところが、Observerパターンを使ったModelには、Observableのリストを管理し、状態変更の際にリストに登録されるObserbable全てに通知する仕組みを実装する必要があり、結構な作業となります*3。 このModelからの通知をObserverパターンで実現する代わりに、イベントバスを使って実現すると、Modelの実装を簡潔にすることができます。Java SEではあまり事例を見かけませんが、Androidでは割とメジャーに使われているようです。 先日、Androidでイベントバスのライブラリを

    イベントバスとリアクティブプログラミングの違いについて - torutkのブログ
  • 複数JDKバージョンのインストール(Windows OS編) - torutkのブログ

    Javaでプログラミングをしていると、複数のJDKバージョンを扱うことが必要になることがあります。そこで、アップデートの度に古いバージョンをアンインストールせずに新しいバージョンを入れていくとこんな感じになります。 インストール先のディレクトリは次のようになります。 C:\Program Files\Java>dir jdk* 2013/05/25 22:32 <DIR> jdk1.6.0_45 2015/04/15 23:28 <DIR> jdk1.7.0_65 2014/10/15 23:30 <DIR> jdk1.7.0_72 2015/01/25 12:02 <DIR> jdk1.7.0_76 2015/04/21 08:31 <DIR> jdk1.7.0_80 2014/07/28 23:04 <DIR> jdk1.8.0_11 2015/01/25 13:47 <DIR> jd

    複数JDKバージョンのインストール(Windows OS編) - torutkのブログ
  • forEach書いたら負け、for文禁止 - torutkのブログ

    日は日Javaユーザーグループ(JJUG)主催のクロスコミュニティカンファレンス2014春に参加してきました。今日の日記は、参加内容のまとめではなく、参加して得たことやそれをきっかけに考えたことなどをだらだらと書き連ねます。 Java SE 8では、forEach書いたら負け、for文禁止 日記のタイトルは、午前のセッション「K-1 詳説 Java SE 8 – CCC Edition」で出た話題です。手続き的なロジックを書いて、ネストが深く制御構造が複雑になってしまう人向けにはJava SE 8で導入されたラムダ式とStream APIを使って、内部イテレータと関数型プログラミングのエッセンスを取り入れた書き方をするといいよ、という話から出た言葉です。 実は昨日開催したJava読書会(「Java 8 Lambdas」を読む会)でも、「for文は禁止だ!」という話題が出てました。for

    forEach書いたら負け、for文禁止 - torutkのブログ
  • JAXBでJavaクラスからXML schema生成 - torutkのブログ

    Java SE 標準APIのJAXBを使うと、Javaのインスタンスの内容をXML形式で出力したり、逆にXMLファイルからJavaのインスタンスを生成することができます。 JAXBは最初、XML Schema定義からJavaクラスを生成し、そのクラスを利用して実行時にJavaインスタンスとXML文書のマッピングをする機能が提供されました。その後のバージョンで、Javaクラス定義*1からJavaインスタンスとXML文書のマッピングをする機能が提供されました。そのためもあってか、解説記事は大半がXML Schema定義からJavaクラスを生成するものとなっています。 今回、Javaクラス定義からXML文書とマッピングするために必要な流れを、一歩一歩試しながら理解したいと思います。 なお、Javaクラス定義からXML文書とマッピングさせる場合、XML Schemaを生成する必要はありませんが、生

    JAXBでJavaクラスからXML schema生成 - torutkのブログ
  • ソースコード管理ツールをSubversionからGitへ変更して感じたこと - torutkのブログ

    少人数チームでのソフトウェア開発でソースコードを管理するリポジトリにGitを適用して1,2ヶ月ほど経過しました。Gitを開発に使用するのは今回が始めてで、みなSubversionを使っていたメンバーです。 開発環境 OS Linux、たまにWindows 開発言語 Java プログラミングツール NetBeans 7.4 Gitクライアント NetBeans標準搭載のGit機能、たまにコマンドライン、WindowsではたまにTortoiseGit Gitサーバー apacheでgit-http-backend、Redmineと認証統合 現在の使用状況 Gitの共有リポジトリを、開発サーバー上にapache(HTTP)でホストしています。 共有リポジトリはmasterブランチで、各メンバーはローカルにcloneしたあとローカルのmasterで変更作業を実施し、適宜共有リポジトリのmast

    ソースコード管理ツールをSubversionからGitへ変更して感じたこと - torutkのブログ
  • Thread.sleepのチェック例外InterruptedExceptionの扱い - torutkのブログ

    Java読書会の前回の課題図書「Java並列処理プログラミング」において、ブロッキング・メソッド(Threadクラスのsleepも含む)を呼び出すときに要求されるチェック例外InterruptedExceptionの取り扱いについて述べられていた。 同書籍の著者によるIBM developerWorksの記事Javaの理論と実践: 割り込み例外の処理の方が少し詳しく書かれている。 対処方法 簡単に箇条書きにまとめると、 メソッドのthrows節にInterruptedExceptionを記述し上位へ伝播させる 1.が難しいとき(例:Runnableを実装したクラスのrunメソッドの中)、InterrptedExceptionをキャッチしてインタラプテッド・ステータスを復元する Threadを継承しているrunメソッドの中などスレッドの最上位をコントロールしている場合で、Interrupte

    Thread.sleepのチェック例外InterruptedExceptionの扱い - torutkのブログ
  • 1