タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとJavaとtechnologyに関するtsupoのブックマーク (6)

  • 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 - きしだのはてな: マルチスレッド対応カウンタ
    tsupo
    tsupo 2008/11/19
    「Java2SE 5.0からはAtomicIntegerなるものが用意されているので、これを使うと便利」
  • Undo,Redoの実装って何十回もやってる気がする - あしあと日記

    undo,redoの実装って何十回もやってる気がする。毎回同じパターンだ。undo,redoが登場するような編集ソフトは大体同じパターンに落とせる。フレームワークも作った。ブログにそういう内容を書きたいが面倒くさい。需要があれば面倒でも書くんだけどなあ http://twitter.com/youpychan/status/994486992 という発言をしたら何人か反応を頂いたので書いてみることにする。 需要があるなら書こう。undo,redoだけじゃなくてグラフィカルな編集ソフト全般の話をいつかまとめたいと思っていたので、ちょいとシリーズで書いてみようかとおもう http://twitter.com/youpychan/status/994636764 書こうと思う。 まずUndo,Redoについて。 Unod,Redoってみなさんどういう風に実装しているでしょうか? 私はコマンドパタ

    Undo,Redoの実装って何十回もやってる気がする - あしあと日記
    tsupo
    tsupo 2008/11/10
    C#(というかクロージャ)を使うとさらに簡単になります / を使用してCommandクラスを定義します / クロージャの仕組みの便利さに改めて感心した一例でした
  • Strutsの諸問題を解決するWebフレームワークとは?

    Strutsの諸問題を解決するWebフレームワークとは?:オープンソースTERASOLUNAで作るWebアプリ(1)(1/3 ページ) 連載では、4回にわたってWebフレームワークの1つとしてオープンソース化された「TERASOLUNA Server Framework for Java」(以下、TERASOLUNAフレームワーク)を紹介します。 TERASOLUNAフレームワークが、いかにしてWebアプリケーションに特有のセッション管理や認証処理、トランザクション管理などの煩雑な処理を簡素化し、業務開発者が業務処理の実装に集中できる仕組みを提供しているかについて説明します。 しかしStrutsは、Webブラウザを介したアプリケーション開発に必要な基的な機能を備えているものの、「モジュールの独立性」「プログラムの可読性」「テスト容易性」といったところになると、各プロジェクトの業務開発者

    Strutsの諸問題を解決するWebフレームワークとは?
    tsupo
    tsupo 2008/10/07
    先日の .NET Framework 対応版の TERASOLUNA Server Framework に続き、今度は Java 対応版の宣伝
  • C++で演算子オーバーロードしたときの演算子決定基準について調べた - 矢野勉のはてな日記

    C++すみませんしょぼい話です。『ジョエル・オン・ソフトウェア』の下記記事で 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project C言語では i = j * 5 は j を5倍する以外の意味はないけども、C++の場合は、i = j * 5 が何を意味するかは i と j の型を調べ、型の定義を見て、型にサブクラスがないかどうかをチェックし、もしあったら、実際には i あるいは j がそのサブクラスの方だったりしないかどうかチェックして初めて、 i = j * 5 の意味がわかる、という話があります。この話をtwitterにぽろぽろ書いているうちに、自分がC++の演算子オーバーロードについて無知であることが分かったので実験コードを書いてました。 その実験コード書きながらもtwitterにぽろぽろ書いてたんですが、何度

    tsupo
    tsupo 2008/09/24
    明示的にコンストラクタを呼び出したい場合は CBase *base = new CBase(); と書けばいいし / virtual は油断すると、いろいろな罠にはまるので注意(メモリリークの原因になったり、予想外のメソッドが動いたり)
  • *「ふっかつのじゅもんがちがいます。」 Javaにvariant型を実装した

    最近Hadoopを使うために5~6年ぶりにJavaをいじっています。 そんで、ちょっとばかり耐えがたいわけです。 例えばありがちな例題を挙げると、 ["google", "検索エンジン","開発"]のようなタグ(文字列)のリスト(でも配列でもなんでもいい)を受け取って [ {tag=>"google", enc=>"google"}, {tag=>"検索エンジン", enc=>"%E6%A4%9C%E7%B4%A2%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3"}, {tag=>"開発", enc=>"%E9%96%8B%E7%99%BA"} ] のようなハッシュテーブルのリストに変換しなさい。 ただしパーセントエンコーディングを行う関数(でもメソッドでもなんでもいい) uri_encodingは与えられているものとする。 こんなこと、Web

    tsupo
    tsupo 2008/03/17
    5〜6年ぶりにJavaをいじっています / Javaのリハビリとしてバリアント型を作ってみました / もうJavaソースには見えません / JavaでhackするというよりJavaをFxxkしてる気分になりました → 何かの伏線かな
  • jLHA

    jLHA -LHA for Java- 概要 Java で動作する LHA の互換アーカイバです。 動作環境 JRE 1.1 以降が必要です。 HotSpot performance engine もしくは JIT compiler の使用を推奨します。 ライセンス Copyright (C) 2002 Michel Ishizuka All rights reserved. 以下の条件に同意するならばソースとバイナリ形式の再配布と使用を 変更の有無にかかわらず許可する。 1.ソースコードの再配布において著作権表示と この条件のリスト および下記の声明文を保持しなくてはならない。 2.バイナリ形式の再配布において著作権表示と この条件のリスト および下記の声明文を使用説明書もしくは その他の配布物内に 含む資料に記述しなければならない。 このソフトウェアは

    tsupo
    tsupo 2007/11/27
    Java で書かれた lzh 形式のアーカイブファイルを扱うアーカイバ。圧縮・展開用のライブラリ部分だけを抽出したのが http://homepage1.nifty.com/dangan/Content/Program/Java/jLHA/LhaLibrary.html にある
  • 1