Con etiquetas:
java
X

TODAS LAS ENTRADAS
- Ordenar por:
- Fecha ▼
- Título
- Número de "me gusta"
- Comentarios
- Vistas
Java(と Bouncy Castle)で iOS6 の Passbook を作る
iOS6 の新機能の1つで、時間や位置情報とも連動したOS統合パスケースである「Passbook」。ある意味ではネットクーポンの規格を統一する候補の1つと考えることができる点でも非常に便利で、また Objective-C を知らなくても iOS6 (の Passbook の中)で使えるアプリケーション開発ができるという意味でも興味深い機能といえます。 今回はあくまで Java のプログラミングとして動的に Passbook を作り出すことを紹介したいので、Passbook の用語や一般的な開発者向け情報としては Apple Developer Program に入ることでダウンロードできる「Passbook プログラミングガイド」を参照していただきたく思います。ただその内容をかいつまんで簡単に言うと、 特定のルールにしたがっていくつかのファイル(画像ファイルや JSON ファイル)を用意し、これまた特定のルールで生成した signature ファイルと一緒に zip して(拡張子を .pkpass にして)まとめる、というアルゴリズムで Pass ファイルを作ることができる 、ということです。したがって理論的には signature ファイルさえ作る目処がたてば、Java... [More]
Etiquetas:  java jar passbook signature ios6 bouncy castle |
RestFBとJavaでfacebookアプリケーションを作る
遅ればせながら、最近 facebook のアプリケーションにも手を出すようになりました。 ここでの「facebook のアプリケーション」というのは、SDK を使って facebook の Graph API にアクセスして facebook 内の情報を読み書きする外部アプリケーションのことです。公式にも facebook Developers サイトが用意されていて、ここから最新の情報を取得することができます。 ただ、これまで手を出さなかった大きな理由の1つが「用意されている SDK の言語」でした。実は公式にはウェブアプリケーション用には JavaScript と PHP 用(と iOS と Android)の SDK しか提供されていません。自分が作ってみようと思ったアプリケーションはファイルシステムへのアクセスも必要だったので JavaScript だけで作れるものではありませんでした。かといって PHP ・・・うーん・・・ という感じで躊躇していました。 ただ探してみるものです。やはり他の言語からも使えるようにするための需要はあるらしく、公式ではありませんが、オープンソースのフレームワークとしていくつか提供されていました。その中の1つが本日紹介する RestFB... [More]
Etiquetas:  facebook sdk java api restfb |
WebSphere Application Server のセキュリティパッチ情報
IBM WAS(WebSphere Application Server) に対する、セキュリティパッチ情報が出ていたので、ここで紹介させていただきます: "Potential security vulnerability when using Web based applications on IBM WebSphere Application Server due to Java HashTable implementation vulnerability (PM53930)" 原因は Java の実装にあります(Sun/Oracle Java と IBM Java の両方)。なので、厳密にはアプリケーションサーバーの問題ではありません。ただ今回のセキュリティパッチではアプリケーションサーバー側の修正でリクエストを制御するようにしています。昨年末に Apache Tomcat などでも話題になっていたのと同じものだと思いますが、IBM Java でも発生する問題であり、その修正方針が決まって発表されたようです。 リンク先を読むと「Java のハッシュテーブル実装の脆弱性」 で「DoS(Denial of... [More]
Etiquetas:  application was hashtable security websphere java dos server |
64bit OS環境下で 32bit ノーツのJavaライブラリを使う
今日は自分がハマって最近抜けだした問題から学んだ、ちょっとした Tips の紹介です。
Lotus Notes/Domino には Java ライブラリ(Notes.jar)が用意されているので、これを使って Lotus Notes/Domino のデータベースを読み書きするようなプログラムを Java で記述することができます。この Notes.jar 自体がノーツのネイティブライブラリを内部的に使うので、単にこのファイル1つをコピーすれば使える、というわけにはいかないのですが、まあ Lotus Notes/Domino が導入された環境下においては API である程度の読み書き処理ができる、と理解ください。 例えばこんな Java スタンドアロンプログラムを書いて実行してみます。ごくシンプルな内容で、過去に Lotus Notes/Domino の LotusScript や Java のプログラミングをした事のある人であれば説明不要のレベルだと思いますが、指定したデータベースを開いて、そのデータベースのタイトルを出力する、という内容です( ダウンロード ): //. nsftitle.java import lotus.domino.*;
class... [More]
Etiquetas:  jvm java notes notes.jar |
Google Storage API を Java(Google App Engine) から使う
11月の Google App Engine の値上げ を前に、自分が個人で開発・運用している有料アプリの方針/対策を考えました。
自分のアプリの場合、話は単純で AppEngine を有料にしている原因は「とにかくストレージ」です。要するに大量の Blob データが App Engine の DataStore 内にあって、ここが無料枠の上限である 1GB を超えているために有料アプリの道を選択したのでした(11月以降はストレージデータの読み書きに対する課金も予定されています)。そして何よりも個人運営アプリとして痛いのは「1有料アプリあたり月額9ドルのミニマムチャージ」です。これを個人で運用している遊びアプリのために払い続けるのはちと厳しい・・・ ただ逆に ストレージの巨大さをどうにかできれば有料アプリである必要はない わけなので、これらの Blob データを DataStore 以外の場所に移動できさえすれば、理論上は(少なくとも AppEngine 部分については)無料枠に戻ることもできる、ということになります。 どこかに API からアクセスできるいいストレージサービスないかなあ・・・ と探すまでもなく、 Google Storage (for... [More]
Etiquetas:  gae google app storage java api engine |
Java SE 7 リリース!
このエントリーを記述しているのは7月27日(水)ですが、明日 7月28日(木)は Java SE 7 がリリースされる予定 です。Java SE 6 のリリースは2006年9月、それから5年近く、久しぶりのメジャーバージョンアップになります。 Java SE 7 のリリースには、知る人ぞ知る紆余曲折がありました。もともと Java SE 6 と Java SE 7 は同時に仕様決めが行われた経緯があり、その中で比較的容易に実装できる機能が Java SE 6 として2006年に「先行」リリースされました。そして「比較的時間をかけて開発する必要がある」と判断された機能が Java SE 7 に搭載される・・・予定だったのですが、その目玉だったクロージャやフレンドはそれぞれ Project Lambda / Project Jigsaw として、現在では Java SE 8 での提供を目指して開発が進められています。結果的に Java SE 7 は当初の予定よりもかなりスリムになってリリースされることになった 、と言えると思います(事実、言語仕様はほとんど変わっていません)。なお Java SE 7 の仕様は JSR 336 として、 Open JDK 主導で策定/実装... [More]
Etiquetas:  coin jdk 7 project java |
Lotus Domino に DIIOP 経由でアクセスする
久しぶりに Lotus Domino の DIIOP アクセスを利用する機会があったので、備忘録も兼ねてメモを残しておきます。 まずは背景の復習から、わかる人は読み飛ばしてください。 Lotus Notes/Domino はサーバー(Domino)とクライアント(Notes)の関係で、この間は専用のプロトコルを用いた通信を行います。 このため、例えばサーバー上のデータを Lotus Notes 以外の環境から(一般的な API などで)利用するのが難しくなっています。 通常の RDB であれば SQL などを使って外部から情報を読み書きできるわけですが、そういう手段が(少なくとも標準機能としては)提供されていません。 ソフトウェア開発者の視点からは、自分のアプリケーションを Lotus Notes/Domino と何らかの形で連携させたいと思うことがあります。 で、Lotus Notes/Domino が導入されているシステムから行うのであれば、それらのコンポーネントやネイティブライブラリを外部から呼び出す形 (つまり COM などを使って) API を利用することもできるので自由度が広がります。この場合の例は 以前にも紹介 したことがあります。 では Lotus... [More]
Etiquetas:  java api diiop domino lotus |
Lotus Notes/Domino のエージェント内で外部の JAR を利用する
Lotus Notes/Domino から Jarkarta Commons などの汎用ライブラリが使えると便利だよな~・・・ということで、GW はこれの調査に費やしました。 なお以下の例では Domino Desginer 8.5.2 を使っています。 まず最初に、Lotus Notes/Domino にはエージェントという設計要素があり、Java や LotusScript といったプログラミング言語を使った一連のロジックをデータベース内のマクロとして記述・保持することができます。これらの言語からは Lotus Notes/Domino のセッションやクラスライブラリを利用することもできます。ノーツに関係する一通りの処理をエージェントとして記述しておくと、ユーザーがメニューから実行したり、あらかじめ決められた時間に実行することができるようになります。またウェブから Lotus Domino を利用している場合は URL を指定することでサーブレットのように直接エージェントを実行することもできます。 このエージェント機能は、Lotus Notes/Domino... [More]
Etiquetas:  notes lotus domino jar java agent |
WebSphere Application Server V8 発表
業界標準の J2EE サーバーであり、IBM の各種 SOA 関連製品の基盤にもなっている WAS(WebSphere Application Server) の最新バージョン V8 が発表されました: 製品・サービス発表レター Java EE 6 をはじめ、EJB 3.1、JPA 2.0、Servlet 3.0、そして OSCi といった各種プログラミングモデルをサポートしたアプリケーション実行環境が、高いパフォーマンスと信頼性を誇る IBM JDK 6.0 を同梱して提供されます。 サポートプラットフォームは各種 Windows サーバー、Red Hat Enterprise Linux 5.0/6.0, SUSE Linux Enterprise Server 10.0/11.0, Solaris 10, AIX 6.1/7.1, HP-UX 11i v2/3, IBM i 6.1/7.1 とスケーラビリティに応じて選択できます。 特にアプリケーション開発者の立場として、 WebSphere Application Server for Developer V8.0... [More]
Etiquetas:  j2ee was release java press |
JRE/JDK の浮動少数問題
Java にセキュリティ脆弱性が報告されています: (Oracle) Oracle Security Alert for CVE-2010-4476 (IBM) 【重要情報】 JRE/JDKが2.2250738585072012e-308の数値変換でハングすることによるサービス不能の脆弱性 JRE(Java Runtime Environment)そのものの障害なので、Java を使っているアプリケーションサーバー全てに影響があります。Oracle(Sun)/IBM に双方に関係があります。 内容を簡単に紹介すると、 "2.2250738585072012e-308" という文字列を double 型の数値に変換 すると Java VM がハングする、というものです。 つまり具体的にはこういうこと: double d = Double.parseDouble( " 2.2250738585072012e-308 " ); System.out.println( "d = " + d ); この簡単な2行のJavaコードを実行すると、1行目が実行された段階でハングしてしまい、2行目の結果は表示されません。"... [More]
Etiquetas:  ibm java sun oracle fix jre jdk |
Amazon Web Services の無料ティアを使う(2)
このエントリ の続きです。 前回は AWS 上に無料のサーバーインスタンスを起動し、SSH で root アクセスできるところまで確認しました。今回はこのサーバーにJava実行環境である JRE(Java Runtime Environment) と、Javaアプリケーションサーバーミドルウェアである Apache Tomcat を導入する、という手順を紹介します。といっても、ここまでできてしまえば普通の Linux とそんなに変わりません。敢えていえば、しばらくの間はこの SSH からのコマンドライン実行環境だけがサーバーとのインターフェースになるので、この環境に慣れていない場合は少し不便に感じるかもしれませんが、そのお手伝いになれば幸いです。 まずは JRE を入手しましょう。PC のウェブブラウザから http://java.sun.com/ にアクセスして(Oracle のページにフォワードされて・・(--;)Java SE のダウンロードページへ行きます。今回は JDK(Java Development Kit) は使わず JRE だけを導入します。 プラットフォームとして "Linux"(サーバーを 64-bit にしている場合は... [More]
Etiquetas:  aws amazon java apache tomcat jre |
JPEG画像からGPS情報を取り出す
ちょっとした機会があり、JPEGの画像ファイルからGPS情報を抜き出すロジックを実装してみました。 JPEG(Joint Photographic Experts Group)画像は、デジカメに多く使われる画像フォーマットです。この中には画像データだけでなく、EXIF(EXchagable Image File)と呼ばれる付加情報を含めることができます。EXIF 情報の例としては撮影した日時やデジカメのメーカー、機種、絞りやシャッター速度といった撮影時の設定情報などです。 特に最近はスマートフォンを含むケータイにもデジカメ機能が普通に付属しており、高機能ケータイに付属するGPSの位置情報も EXIF の一部として画像の中に格納することができるようになりました(実際にできるかどうか、そのための設定方法等はデジカメやケータイの機種に依存します)。この位置情報を JPEG ファイルから取り出そう、という試みです。 細かい内容は JAVA のサンプルファイルを参照していただきたいのですが、大まかに JPEG ファイル内にどうやって EXIF 情報が格納されているか、を図示すると以下のようになります: (1) JPEG ファイルの最初の3~4バイト目に、EXIF... [More]
Etiquetas:  jpeg exif java |
My recommendations of IBM developerWorks last week: "OpenID for Java Web applications"
As last week's recommend article in IBM developerWorks, I would like to introduce "OpenID for Java Web Applications" series: http://www.ibm.com/developerworks/java/library/j-openid/index.html http://www.ibm.com/developerworks/java/library/j-openid2/index.html OpenID is one of the method which enables single-sign-on capability among web applications securely. Series Part 1 had been published in January, and introduces overview of OpenID authentication, such as how to work and identifiers, using MyOpenID(http://www.myopenid.com/) with... [More]
Etiquetas:  developerworks openid java authentication recommend sso |