タグ

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

  • 改行コードの扱いを検討 - torutkのブログ

    分散バージョン管理ツールでGitを使いたくなるのは、ファイル名の文字コードが違うOS間で日語のファイルを共有するようなリポジトリを扱うときです。Windows OSとLinux OSと同じGitリポジトリを使用するとき、Gitであればファイル名に日語を使っても問題ありませんが、Mercurialでは片方のOSで作成した日語ファイル名をもう片方のOSで読むことができません(文字化け)。Bazaarが衰退してなければ・・・ Windowsだけでリポジトリを使う、あるいはLinuxだけでリポジトリを使うなら、Mercurialという選択肢があり、複雑怪奇なGitを使わなくても・・・と思いますが、現実はそう限定できないことが多いのです。 また、「ファイル名に日語使うのがよくない」という意見もありますが、コンピューター側の制約に人間が不便な思いをして合わせるのは末転倒と思うのでファイル名か

    改行コードの扱いを検討 - torutkのブログ
  • Javaコーディング規約追補 - torutkのブログ

    最近GoogleJavaコーディング規約を公開したとニュースで知り、目を通してみたメモを書きます。 また、以前Javaのコーディング規約について調べたメモを次のURLに書きましたが、それ以降に公開されたJavaコーディング規約を探してみました。 http://www.alles.or.jp/~torutk/oojava/codingStandard/ Googleが策定・公開したJavaコーディング規約 先月、InfoQの日語訳の記事で、Googleが最近Javaコーディング規約を公開したことを知りました。 InfoQの記事(日語訳)GoogleJavaコーディング規約 (Google)http://google-styleguide.googlecode.com/svn/trunk/javaguide.html さらっと目を通してみたメモを箇条書きで列挙します。 ファイルのエンコ

    Javaコーディング規約追補 - torutkのブログ
  • JavaFX 2.0最初の一歩 - torutkのブログ

    最近ちょっと話題になっているJavaFX とは 非Web系Javaプログラマ(あるいはJava SEプログラマ)から見たJavaFX 2.0とは新たなGUIライブラリです。Java標準のAWTおよびSwing、Eclipseが使用しているSWTなどと並ぶもので、得意分野はアニメーション、サウンド、動画、HTMLレンダリング機能といったところでしょうか。 このJavaFX、次のバージョンのJava SE 8に標準搭載される予定とのことです。AWT/Swingとは別にまったく新たに作られたライブラリなので、Java SE 8プログラミングにおいてはどっちのGUIを使うか?という選択が発生することになりそうです。 JavaFXの情報源 JavaFXホームページ http://javafx.com OracleJavaFXに関するポータルページです。Oracleが強くJavaFXを押しているので

    JavaFX 2.0最初の一歩 - torutkのブログ
  • 依存するJARがあるJavaFXアプリケーションの実行可能JAR作成 - torutkのブログ

    JavaFX Advent Calendar 12月3日担当です。 11/30開催の「第8回JavaFX勉強会」(日JavaFXユーザーグループ主催)で、「ダブルクリックで起動する JavaFX アプリケーション JAR の仕組み 」を発表をしてきました。 この発表では、作成するプログラムがJava SE/JavaFX以外の他のJARに依存しない単純な形式を対象にしていました。 発表の質疑応答にて、依存するJARがあり複数のJARで構成されるアプリケーションの場合について質問を受けました。事前に調査はできておらず、宿題ということで日「(補遺)依存するJARがあるJavaFXアプリケーションの実行可能JAR作成」を紹介します。 注記)記事でのコマンド実行例、ディレクトリパス記述表記は、Windows OS(Windows 7)環境での操作・記述を前提としています。Linux、Solar

    依存するJARがあるJavaFXアプリケーションの実行可能JAR作成 - torutkのブログ
  • Java Day Tokyo 2013に参加して - torutkのブログ

    今日は、日オラクル主催のJava Day Tokyo 2013が秋葉原で開催されました。会場は秋葉原駅そばの秋葉原UDXです。Java関係の大きなイベントは秋葉原では初とのことです。 https://oj-events.jp/public/application/add/64 基調講演 Java SE 2011年にリリースされたJava SE 7では、サポートプラットフォームをMac OS X、Linux/ARMに拡大しました。Java SE 8は来年第1四半期にリリース予定です。Java SE 8には新しい機能がいろいろ入りますが、目玉はラムダ式で、言語仕様、ライブラリ、そしてJVMに手が入ります。JVMへは、デフォルトメソッドとInvokeDynamic。デフォルトメソッドはラムダ式の導入で既存インタフェースを変更する必要が生じますが、後方互換性を維持するためにインタフェースに定義す

    Java Day Tokyo 2013に参加して - torutkのブログ
  • Redmine 2.3.0でのプラグイン動作メモ - torutkのブログ

    先週Redmine 2.3.0がリリースされました。昨年はRedmineのバージョンアップ時にプラグイン動作に影響を与える大きな変更がありました。 1.3 -> 1.4 ruby 1.9対応、大きな機能追加 1.4 -> 2.0 Ruby on Rails 3.x対応 2.0 -> 2.1 Viewで使うJavaScriptの基礎ライブラリをPrototypeからJQueryに変更 その後の2.2, 2.3はバグ修正/機能追加が主でアーキテクチャには大きな変更がないので、そろそろ安定してきたと思われます。 Redmine 2.3.0での動作プラグイン Redmineに入れいているプラグインの2.3.0動作状況を確認してみました。 Absolute datesプラグイン 動作状況はOKと思われます。 チケットなどの更新日時がデフォルトでは「9日前」や「9ヶ月前」と表現されます。これを年月日で

    Redmine 2.3.0でのプラグイン動作メモ - torutkのブログ
  • 2007-05-13

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

    2007-05-13
  • マルチスレッド下におけるログ出力性能測定 - torutkのブログ

    一つのJavaプログラムについて、処理をマルチスレッドで並行性を持つように記述し、複数CPU(マルチコア)上でそのプログラムを実行することにより並列処理を実現しようとした際、ログ出力が実行性能にどれだけ影響を及ぼすのかを把握したい、と考えています。 プログラムの開発(特にデバッグ)においては、ログが使えないと苦労します。ただし、ログを埋め込むと、性能に影響を及ぼします。また、ログレベルを抑制し、実際にはログ出力がなかったとしても、ログレベルの判定処理が動くことで、多少の影響はあります。 最近のログ出力ライブラリはスレッドセーフに作られていますが、それは内部で排他区間を持つことになるので、並列処理においては排他による性能への影響は無視できません。 そこで、同一プロセス内でマルチスレッドにより並行実行するプログラムを作成・実行し、複数スレッドからログを出力すると、実行性能にどれだけ影響を及ぼす

    マルチスレッド下におけるログ出力性能測定 - torutkのブログ
  • Javaでの時間(絶対時刻、相対時刻=時間)をどう表現するかを考える - torutkのブログ

    一見たいした課題と思っていなかった時間の表現ですが、深入りしてはまってしまいました。Javaでストップウォッチ機能を持つ時計プログラムを作ってみようとしたところ、2つの時刻の差(時間)の表現で深みにはまってしまったのです。 時計に必要な機能 まず、時計の基機能として絶対時刻(協定世界時:UTC)に極力近い時刻を取得・表示します。 取得:まあ、コンピュータのシステムクロックを取ればよいでしょう。コンピュータがNTPでUTCに近い時刻サーバ(インターネット上のNTPサーバやGPS時計など)と同期していれば実用上まず問題はないでしょう。 表示:UTC時刻に対して、その地域に合わせてオフセットした標準時を表示します。JavaならTimeZoneを扱うことができるので、これは問題なく実装できます。文字列化については、java.text.DateFormatterjava.text.SimpleD

    Javaでの時間(絶対時刻、相対時刻=時間)をどう表現するかを考える - torutkのブログ
  • java.util.regexとString.substringの性能の違いはどれだけか - torutkのブログ

    正規表現(java.uitl.regexパッケージ)を使った文字列切り出しと、Stringクラスのsubstringによる文字列切り出しとで性能比較をすると、感覚的には正規表現がかなり遅いと思っていました。 この2つの実行時間を測定して比べてみました。 背景 周期的に送られてくるデータを処理するようなコードでは、一つ一つの処理は短くても、積み上がってみると処理が追いつかずパンクするということがあります。 例えば、通信レコード1件に10種類のデータ項目が含まれ、1データ項目の受信処理に100usかかるとします。ここでデータ項目とは、日時、店コード、品名コード、などです。受信処理は通信フォーマット(ある規則の文字列、バイナリ)をプログラムで扱うデータ型に変換するようなものです。 1秒間に通信レコード1000件の要求が発生すると、受信処理時間は、1000*10*100usで1秒となります。受信処

    java.util.regexとString.substringの性能の違いはどれだけか - torutkのブログ
  • 64bit版Javaの実力 - torutkのブログ

    Windows Vista 64bit版上で、JDK 1.6 x86/x64版をインストールして、64bit版の能力を探ってみました。 実験環境の構成 CPU AMD Athlon 64 x2 4200+ メモリ 2GB OS Windows Vista Ultimate 64bit JVM Sun JDK 1.6 U2(1.6.0_02) 64bit長のデータアクセス 2つのスレッドを並列実行させ(デュアルコアPC)、スレッド間で共有する64bitプリミティブ型(long)を排他制御なしに1つのスレッドがwriteしもう1つのスレッドがreadし、意図しない値(32bitで分断)が観測されるか否かを実験しました。writeスレッドは、共有変数に次の2つの値を交互に書き込み続けます。 0xAAAAAAAAAAAAAAAA 0x5555555555555555 readスレッドは、共有変数か

    64bit版Javaの実力 - torutkのブログ
  • 開発環境の構築とソフトウェアエンジニア考 - torutkのブログ

    プロジェクト案件毎に、人、ものを集めてシステム開発をする現場では、あらかじめ整った開発環境がないことがほとんどです。人を集めて、開発言語やソフトウェア構成が決まって、それから開発環境が準備されます。もっとシステマティックに作っている組織もあるとは思いますが、ここは自分の経験で語るので、割と泥臭い現場のお話となります。 いくつかのプロジェクトをくぐりぬけ経験を積むと、おおよそ次もどうなるかの予想が立ちます*1。そこで、次は苦労しないようにと早い段階において、開発したプログラムを集積するリポジトリ、開発ツールセットの選定、規約の整備、マスタービルド環境、情報共有環境、不具合管理環境などのソフトウェア開発環境一式を構築しようとします。 当は開発環境の構築には専任担当者がほしいところですが、現場とは視点が乖離してしまっているプロジェクト管理者には必要性がなかなか理解されず、たいていは必要を感じて

    開発環境の構築とソフトウェアエンジニア考 - torutkのブログ
  • 開発環境の構築とソフトウェアエンジニア考(続) - torutkのブログ

    開発環境の構築とソフトウェアエンジニア考 - torutkの日記の続編です。 前回書いたことと内容は重なりますが、まずソフトウェア開発環境に予算を付ける(投資をする)組織、予算を付けない組織の違いを考察してみます。そして、予算を付けない組織において、現実的に対処する方法としてのオープンソースツールを組み合わせたソフトウェア開発環境の構築を具体化します。 ソフトウェア開発チームの運用 組織的なソフトウェア開発をするのであれば、プロジェクト毎に集散離合するチームではなく、いったん形成されたチームを継続して使用することが品質/生産性/組織能力の維持向上に望ましいです。 しかし、数値化しにくいこれらの要素に対し、数値化しやすい人件費でしか評価できない組織は、仕事がないときは人件費ゼロ、仕事があるとその量に応じた人件費という集散離合するチームでの開発しか選択しないのでしょう、きっと・・・。 組織論の

    開発環境の構築とソフトウェアエンジニア考(続) - torutkのブログ
  • JavaFX 2関係資料 - torutkのブログ

    JavaFX 2に関して、今年に入ってJavaOne Tokyoや勉強会などがあり、日語での情報が充実してきています。それらの情報へのリンク一覧があると便利だなと思い、集めてみました。 個人ブログページも多く書かれているようです。参考になったページを今後随時追記していく予定です。 ITPro連載「JavaFX 2で始めるGUI開発」 櫻庭祐一さんの連載記事です。 JavaFX 2で始めるGUI開発 第1回 JavaFX 2とは | 日経 xTECH(クロステック) JavaFX 2で始めるGUI開発 第2回 シーングラフとFXML | 日経 xTECH(クロステック) JavaFX 2で始めるGUI開発 第3回 コントロール その1 | 日経 xTECH(クロステック) JavaFX 2で始めるGUI開発 第4回 コントロール その2 | 日経 xTECH(クロステック) JavaFX

    JavaFX 2関係資料 - torutkのブログ
  • JMockitを使ってみる - torutkのブログ

    ユニットテスト対象のクラスが、別なクラスのstaticメソッドを呼んでインスタンスを取得し、そのインスタンスのメソッドを呼び出し、その戻り値によってロジックが左右されるという場合のテストを想定します。 テスト対象クラス // 気象センサーから取得した気温が30度を超過していたら、 // 異常を報告する気象監視クラス。 package monitor; import sensor.WeatherSensor; import sensor.SensorFactory; public class ThresholdMonitor { private WeatherSensor sensor; public ThresholdMonitor() { sensor = SensorFactory.getWeatherSensor(); } // 気温を監視し30度を超過していたら異常を報告する。 p

    JMockitを使ってみる - torutkのブログ
  • 2010-10-03

    Java開発環境(ユニットテスト編) - torutkのブログ で、Java開発環境(ユニットテスト編)として、ユニットテストで必須なモック作成のツールを紹介しました。このときは、staticメソッドを提供するクラスやfinalなクラスのモックが作成できないので、ツールを使ってモック作成を楽にするには、多少コーディング規約を緩めるしかないかと思っていました。上の日記では、JDaveというfinalを解除するツールを使ってfinalなクラスのモックを作るところまで記載していましたが、staticメソッドについては未解決のままでした。 その後、いくつかstaticメソッドを提供するクラスのモックを作るツールがあることを知ったので補足します。 PowerMock 前回紹介したEasyMockあるいはMockitoに、PowerMockを組み合わせると、finalなクラスのモック生成、static

    2010-10-03
  • torutkのブログ

    新しい「基礎からのServlet/JSP第5版」 今月のJava読書会BOF主催のJava読書会は、「基礎からのサーブレット/JSP 第5版」を読む会(第1回)を開催しました。 最新のServlet 6.0/JSP 3.1に対応し、Tomcat 10.1とOpenJDK 21で動かしながら学んでいく内容です。 概要 前回は洋書でしたが、今月からは和書です。が、参加人数が3名と少ない状況でした。(3連休の合間だったせいもあるか、宣伝不足か、読書会による勉強はニーズが少なくなっているのか、など憶測色々ありました) この書籍では、メインはWindows上でOpenJDK 21とTomcat 10.1、H2 Database 2.1を使ってServletとJSPのプログラミングを学んでいこうという内容です。 Tomcatは、最後に触ったのが20年前か或いはもっと前か、懐かしいというかほとんど覚え

    torutkのブログ
  • 1