自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2010年5月26日水曜日

Asp.Netファイルダウンロード

Asp.Netのファイルダウンロード処理のサンプルソースをメモします。

VB.Net

2010年5月24日月曜日

ブラウザー閉じるボタンを押したら、スクリプトを実行させる方法

システム開発にはよく問われる問題ですので、他のサイトから見かけた解決方法を纏めたいと思います。

方法①
function window.onunload()
{
  if(self.closed || (event.clientX<=-9000 && event.clientY<=-9000))
  {
  // セッション解放処理
  }
}

2010年5月18日火曜日

GWTでファイルをダウンロードする

GWTでファイルをダウンロードするサンプルをメモします。

画面に何かのボタンのイベントに呼び出して、ファイルをダウンロードする。

2010年5月13日木曜日

上海万博の日本館も贋物か?

上海万博の日本館と同じような建物を発見しました、皆さんこの写真を見て判断してください。

上海万博の日本館:


もう一つの日本館?

2010年5月12日水曜日

JDO-トランザクション使用例

明示的なトランザクションを使用していない場合、どちらのエンティティも個別のアトミックなアクションを使用して作成されます。その場合、 Employee エンティティの作成が成功し、ContactInfo エンティティの作成が失敗することも考えられます。どちらのエンティティも正常に作成されたか、どちらのエンティティも作成されていないことを保証するには、トランザクションを使用する必要があります。

JDO-関係-1 対多の所有関係

あるクラスの 1 つのオブジェクトから別のクラスの複数のオブジェクトへの 1 対多の関係を作成するには、関係クラスのコレクションを使用します。

JDO-関係-1 対 1 の所有関係

2 つの永続オブジェクト間に一方向の 1 対 1 の所有関係を設定するには、関連付けられるクラスのクラスをタイプとして持つフィールドを使用します。

次に、ContactInfo データ クラスと Employee データ クラスで、Employee から ContactInfo への 1 対 1 の関係を定義する方法を示します。

2010年5月11日火曜日

Google App Engine トランザクション処理

「トランザクション」とは、完全に成功または失敗した一連のデータストア操作のことです。トランザクションが成功すると、意図した効果がすべてデー タストアに適用されます。トランザクションが失敗すると、意図した効果は適用されません。
データストアの書き込み操作はすべてアトミックです。エンティティの作成、更新、削除は「実行される」か「実行されない」かのどちらかです。操作が 失敗する原因として、同時にエンティティを変更しようとするユーザーが多すぎて競合頻度が高くなっていることが考えられます。また、アプリケーションが割 り当て制限に達したために操作が失敗する場合もあります。そのほか、データストアの内部エラーが原因の場合もあります。いずれの場合にも、操作の効果は適 用されず、Datastore API は例外を発行します。

2010年Q1の米国スマートフォン市場、Android端末がiPhoneを抜いて2位に

 米NPD Groupが米国時間2010年5月10日にまとめた同年第1四半期(Q1)の米国スマートフォン市場調査によると、米Googleが開発を進める 「Android OS」を搭載した端末の販売シェアが28%となり、米Appleの「iPhone」を抜いて2位となった。首位はカナダResearch in Motion(RIM)の「BlackBerry OS」搭載端末でそのシェアは36%。iPhoneは21%で3位に後退した。
同社によると、スマートフォンの販売台数シェアは、通信事業者の商品供給体制やプロモーション活動に大きく左右される。第1四半期は、米Verizon WirelessがiPhoneを意識し、「buy-one-get-one(1台購入するともう1台がもらえる)」というプロモーションをスマートフォ ンの全機種で展開した。これによりVerizonは、「Droid」「Droid Eris」「Blackberry Curve」といった端末の販売を伸ばした。その結果、スマートフォン市場におけるVerizonの販売台数シェアは30%となり、iPhoneを販売す る米AT&Tの32%に迫った。

JDO Extent

JDO Extent は、データストア内にある特定のクラスのすべてのオブジェクトを表します。

PersistenceManager の getExtent() メソッドから Extent を開始し、データ クラスへと渡します。Extent クラスは、結果へのアクセスに Iterable インターフェースを実装しています。結果アクセスの完了後は、closeAll() メソッドをコールします。

次に、データストア内のすべての Employee オブジェクトを繰り返し処理する例を示します。
import java.util.Iterator;
import javax.jdo.Extent;
// ...
    Extent extent = pm.getExtent(Employee.class, false);
    for (Employee e : extent) {
        // ...
    }
    extent.closeAll();
エクステントは結果をバッチで取得するため、クエリ結果に適用される 1,000 行という制限を超えて結果を取得できます。

JDOクエリ(JDOQL)

JDO には一連の条件を満たすオブジェクトを取得するためのクエリ言語が含まれます。JDOQL と呼ばれるこの言語は、JDO データ クラスとフィールドを直接参照することができます。また、クエリ パラメータと結果の種類のチェック機能も備えています。JDOQL は SQL に似ていますが、App Engine データストアのようなオブジェクト指向のデータベースには SQL よりも適しています(App Engine データストアは、JDO インターフェースでの SQL クエリはサポートしていません)。

クエリ API は複数のコール スタイルをサポートしています。JDOQL 文字列の構文を使用すれば、文字列の中に完全なクエリを記述することができます。また、クエリ オブジェクトのメソッドをコールし、クエリの一部またはすべてを指定できます。

メソッド スタイルのコールを使用したクエリの簡単な例を紹介します。この例では、フィルタで使用される値に対してパラメータの置き換えを行い、フィルタを 1 つ、並び替え順序を 1 つ指定します。クエリ オブジェクトの execute() メソッドは、クエリにおいて代用される値と共に宣言順にコールされます。

JDO-detachable

クラスを「デタッチ可能」と宣言すると、PersistenceManager を閉じてからオブジェクトを修正できます。そのためには、次のように @PersistenceCapable アノテーションに detachable 属性を追加できます:

import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Employee {
    // ...
}

JDO-コレクションプロパティ

1 つのデータストア プロパティに、複数の値を保持することもできます。JDO では、これをコレクション型の単一フィールド(主な値型またはシリアライズ可能なクラスのコレクション)で表します。以下のコレクション型がサポートされます:
    * java.util.ArrayList<...>
    * java.util.HashSet<...>
    * java.util.LinkedHashSet<...>
    * java.util.LinkedList<...>
    * java.util.List<...>
    * java.util.Set<...>
    * java.util.SortedSet<...>
    * java.util.Stack<...>
    * java.util.TreeSet<...>
    * java.util.Vector<...>

JDO-シリアライズ可能なオブジェクト(Serializable)

フィールド値には、シリアライズ可能なクラスのインスタンスを格納できます。その場合は、インスタンスをシリアライズした値を Blob 型の単一プロパティ値として格納します。JDO で値をシリアライズするには、そのフィールドで @Persistent(serialized=true) を使用します。Blob 値はインデックス化されないため、クエリ フィルタや並び替え順序に使用することはできません。

ここでは、ファイルを表す単純なシリアライズ可能なクラスの例を示します。コンテンツ、ファイル名、および MIMI タイプが含まれています。これは JDO データ クラスではないため、永続性アノテーションは付加されていません。

JDO-埋め込みクラス

埋め込みクラスを使用すると、新しいデータストア エンティティを作成したり関係を形成したりしなくても、クラスを使ってフィールド値をモデル化できます。オブジェクト値のフィールドは、保持されているオブジェクトのデータストア エンティティに直接格納されます。

すべての @PersistenceCapable データ クラスは、他のデータ クラスへの埋め込みオブジェクトとして使用できます。クラスの @Persistent フィールドはオブジェクトに埋め込まれます。埋め込み対象のクラスに @EmbeddedOnly アノテーションを付加すると、埋め込みクラスとしてのみ使用できるようになります。埋め込みクラスが独立したエンティティとして格納されることはないため、主キー フィールドは必要ありません。

次に埋め込みクラスの例を示します。この例では、埋め込みクラスを、それを使用するクラスの内部クラスにしています。この方法はクラスを埋め込み可能にする上で便利ですが、必須というわけではありません。

2010年5月10日月曜日

html改行処理

スタイルシートの「white-space」プロパティはタグ内のスペースがどのように扱うかを指定する属性です。

normal
 デフォールト値。スペースはブラウザーに無視される
pre
 <pre>タグのように扱う
nowrap
 <br>タグで改行する
pre-wrap
 スペースを保留し、改行も正常に扱う
pre-line
 スペースを合併し、改行に正常に扱う
inherit
 親タグの設定に従う

2010年5月7日金曜日

未来の計画

従来のWindowsアプリケーションの開発をやめて、今まで自分の把握しているWeb知識を利用して、新しいウェブサービスを開発することにしました。

アプリ形態:ウェブサービス
開発予定:3ヶ月~6ヶ月
採用技術:Java

ホームページ