サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
dev.worksap.co.jp
先日のデブサミの講演にて、Azure無料チケットを頂きました。 しかも、このチケットはクレジットカードの入力もいらないので、 個人でも非常に試しやすくなっています。 これは何か作ってみようと意欲をかき立てられます。 というわけで作っているものはあったのですが、 そんな折、こんな記事が飛び込んできました。 Java 開発者の Widnows Azure エクスペリエンス改善 もともと、Azure上でもTomcatやJettyなどのJava Servletコンテナは 動くという話は聞いていました。 ただ、なんとなく非公式・非推奨という感じが否めませんでしたが、 ここにきて、前進している感があります。 上記ブログにリンクがある、 Deploying a Java application to Windows Azure with Eclipseを そのままやれば基本的にはでき
なんか嵌ったシリーズになってますが、悪意があるわけではないです。 REST API(広義のRESTで、JSON over HTTP(s)程度のもの)を使っている場合、 認証・認可の仕組みをどうするかを悩みます。 こういうときは広く使われているよい仕組みがあれば取り入れたいのですが、 現状ではAWS SDKの認証方式が使われているようです。 というわけで私が作っているものでもこの認証方式を実装しようとしました。 クライアントサイドがSilverlightでサーバーサイドをJavaで作っているので、 同じHMACSHA256を使うにしても当然記述は違います。 ある程度作ったところで動かしたのですが、 どうも同じリクエストなのに両者の値が違うのです。 前置きが長くなりましたが、ここからが今日の本題です。 まさかSilverlightとJavaで HMACSHA256の返す値が違
Windows Azure Toolkit for Windows Phone 7という 面白そうなツールが公開されました。 早速Windows 7 64bitマシンにインストールを試みたのですが、 嵌ってしまいました。 その原因を調べてみたら面白いことがわかったので書いてみます。 このツールの前提条件にVisual Studio上位版か、 Visual Studio Web Express Edition + Express for Phone 7 のインストールが必須というものがあります。 私の環境は後者なのですが、Webは日本語版、Phone 7は英語版を入れています。 (Phone 7は英語版のみの提供) 当初、インストールに失敗するのはこれのせいかと考え、 Webの英語版をインストールしたりしていたのですが、うまくいきません。 そこで、インストーラーのコマンド
久しぶりの投稿ですが、最近はロードバランサーを離れて、Eucalyptus や OpenStack を試しに構築してみてました。それぞれのコミュニティにいろいろ質問させて頂いたりもしてましたが・・(^^; 今回は、Eucalyptus を構築してみたときの手順を載せておこうと思います。ほぼ自分のメモ用に・・・。 ・Eucalyptusとは クラウドの基盤ソフトウェアの一つ。KVM や Xen などの仮想化エンジンと連携して動作します。 最近では OpenStack や CloudStack 等、いろいろなクラウド基盤ソフトウェアが台頭してきています。 Elastic Utility Computing Architecture for Linking Your Program To Userful System の略、らしいです。 (長い・・・。) ・Eucalyptus 構成コンポーネン
少し前になりますが、 Amazon S3で静的なWebサイトの運用が可能になりました。 Silverlightで作った社内システムを開発・運用しているのですが、 Silverlightというのは、静的なWebページ(HTML)の中にobjectタグがあり、 そこでSilverlighバイナリ(xap)ファイルをホストしています。 Silverlightバイナリは最初にまとめてダウンロードするため、 どうしても起動時に、最初の画面を表示するまでに時間がかかってしまいます。 (Silverlightのアプリを表示すると、 デフォルトで真ん中に進捗率が表示されたアニメーションが出てきますが、 そのアニメーションの間にダウンロードしています) 今まではAPサーバーをUSに置いていたので、 特に初回起動時に時間がかかっていました。 それを解決するために、静的コンテンツをS3に置いて
先日、IAMユーザでAWS Management Consoleを使えるようになりました。 今までは、IAMで権限設定したアカウントを使っても、 Management Consoleにはログインできなかったので、 SDKなどを使ってAPIを直に叩くか、 ElasticFoxなどのツールを使うしかありませんでした。 ただ、それだとどうしても不便なこともあり、今回の機能を待望していました。 で、遅ればせながらアカウントを作ってログインしようとしたのですが、 一筋縄ではいきませんでした。。。 というわけでそのやり方を載せておきたいと思います。 LoginProfileの作成まで ManagementConsoleにログインするユーザーとパスワードを作成するAPIは CreateLoginProfile なので、これを叩けばいいわけです。 まだ何もIAMで作っていない場合は、 C
下記の図のように、Eucalyptus を構成・セットアップしました。いろんなサイトに、設定方法が書かれているのですが、ネットワーク図つきで設定方法が書かれているサイトが少なかったので、図を付けて載せておきます。 Eucalyptus のネットワーク構成は、MANAGED / MANAGED-NOVLAN / SYSTEM / STATIC という4種類がある中で、MANAGED_NOVLANを選びました。4種類の構成のそれぞれの違いについては、下記が参考になりました。 Eucalyptus Network Config (v2.0) http://open.eucalyptus.com/wiki/EucalyptusNetworkConfiguration_v2.0 Eucalytpus ネットワーク構成(日本語情報、v1.5.2) http://eucalyptus.linux4u.
先日、Twitterでこんな発言をしました。 AWS SDK for JavaのAPI使ったら日本語メール正しく送れましたよ。 RT @j3tm0t0 Amazon SESを使って日本語メールを出してみた http://d.hatena.ne.jp/j3tm0t0/20110126/1296030520 #jawsug @tanaka_ta_wap 発言したからにはやった内容を説明せねばと思いブログを書きました。 さて、SES ではHTTPリクエストを認証させる際のSignatureの作成ルールが違うようですが、 そんなこともAWS SDK for Javaを使えば気にすることはありません。 現在最新のVer1.1.4からSESがサポートされています。 SESでは、まず開発環境でのテストという目的のsandbox環境でメールを送ります。 この場合、送信先のメールアドレスをVerif
昨日に引き続きAWS Elastic Beanstalkの調査まとめです。 これに続き、Servelt/J2EEアプリでは御法度?とされる 行為を含むいろんな処理を試してみました。 PaaSというと使えるライブラリやAPIに制約があったりするものですが、 Beanstalkがどこまでできるのか楽しみです。 ただ、短期間でいろいろやってみたため、 検証が不十分だったり、技術的な解釈に誤りがあるかもしれません。 ご指摘頂ければ幸いです。 REST APIを提供する いろいろな処理を手早く記述するためにREST API形式で書くことにしました。 JAX-RSの実装としてはJerseyを使って、Webアプリライブラリとして参照しています。 web.xml に以下の様に記述します。 <servlet> <servlet-name>RestServlet</servlet-name>
さて、2010年も残り数日。未だ年末気分になっていないのぐちです。 ですが年末のご挨拶も兼ねて軽くブログります。 先日、某ウェブデザイナーさんとの会話にて。 僕はとあるチョコレートを指して「チョコレート」と呼んだのですが、 その人は「違う。それは○○(商品名。大人の都合で名を秘す)だよ」と言うのです。 思い返すと、その人はいろんなものを具体的な商品名で呼びます。 仕事的な面では、CSSのプロパティとかブラウザごとのハックだとか、細かく記憶しているようです。 記憶力の弱い僕には到底マネができません。 デザインは細部に宿るというし、「チョコレート」とひと括りにせずにそれぞれを区別する、そんな普段からの姿勢にデザイナーのセンスのようなものがあるのではないかと思いました。 実は僕は元々プロダクトデザインの世界にいた身なので、そういったデザイナー的センスは常に持っていたいと思っています。 しかし
前々回の記事で、スティッキーセッションの話をしました。 そのときの記事は、APサーバ側で識別子を仕込むというものでした。 その識別子は、Tomcat の場合だと、jvmRoute という識別子を server.xml 上で指定していました。 今回の方法は、AP 側でその識別子を仕込まないでスティッキーセッションを実現する方法の紹介です。 具体的には、ロードバランサ(LB)上で、その識別子を Cookie に仕込みます。 調べていると、Amazon Elastic Load Balancing では、この方法が出来るので、Apache Proxy Balancer でも出来るんじゃないかなーと思って、調べていたら、やはり出来ました。 Apache Proxy Balancer 上の httpd.conf に下記のように記載します。 Header add Set-Cookie "ROUTEID
ワークス技術ブログでおなじみのmyhが外部勉強会(LT枠)で 講演します。 テーマは、 「間違った方向に Cassandra を使ってみた / イベント参加管理支援 ツール PARTAKE」 ■開催概要 タイトル 第3回クラウド勉強会「~NoSQL(KVS)大集合~」 開催日時 12/16(木)19時30分~22時30分 (19時より受付開始) 会場 ベルサール西新宿 1Fイベントホール 募集人数 350名 対象者 エンジニア、学生 (※ 人材会社の方のご参加はご遠慮下さい。) 参加費 2000円(会場+懇親会費) twitterハッシュタグ #cloudstudy twitterアカウント @cloud_study http://atnd.org/events/10152 はじめまして。Suzukiと申します。 ワークスでは広報を担当しています。 技術の知識
こんにちは。のぐちです。 前回はフリック操作を判定してみるところまでを実装しました。 では、CSSアニメーションをつけてフリックに合わせて画面を動かしてみよう、 と思ったのですが、Javascriptを見直していたらちょっと時間がなくなってしまったので、 今回はスクリプトの改良のみです。 ■ クロージャを使って書き直す ■ フリック感を高める ■ ちょっとだけアニメーションっぽく 以上の改良をしてみます。 ■ クロージャを使って書き直す まず、前回「余談」と書いてしまったクロージャですが、それを利用して書きなおします。 動作そのものは変わっていませんが、クロージャを使ってグローバル変数を使わない形にしました。 <script type="text/javascript"> $(function() { var box = $("#box")[0]; var touchHandl
reading memcached は、今回で読んでおきたい主要な部分は全部追えたので最終回です。後は必要に応じてちょこちょこと読んでいっても問題ないでしょう。 今回は核心部分であるデータの取得と挿入部分を読んでいきましょう。 まず get コマンドから読んでいくことにします。memcached.c の 2522 行目の process_get_command() 関数を見ていきます。 process_get_command 関数 この関数のプロトタイプ宣言は次のとおりです(実際のソースにはプロトタイプ宣言はありません)。 void process_get_command(conn *c, token_t *tokens, size_t ntokens, bool return_cas); c は connection, tokens は get の引数達、ntokens は引数リ
最近 twitter API を使うアプリケーションを Java でつくっています。その際に使う Twitter4J というライブラリを簡単に紹介しようかなと思います。 Twitter4J Java から twitter API を扱うライブラリに Twitter4J というライブラリがあります。Twitter4J を使うと、面倒な HTTP での twitter とのやり取りをラップしてくれます。 使い方 Twitter4J のサイトから、twitter4j-2.1.3.zip をダウンロードします。その中に twitter4j-core-2.1.3.jar というライブラリがあるので、build path にその jar を追加します。 ログインしよう 自分のアカウントを操作するために、まず Twitter4J 経由でログインをしてみましょう。ファクトリメソッドの getInstanc
今回はすこし随筆的なお話をしましょう。 最近初心者が書くようなコードを見る機会が増えてきました。「初心者が書いた」コードではありません。「初心者が書くような」コードを、何年もコードを書いている人が書いており、それを見る機会が増えているのです。 それがどのようなコードかと言うと、おおよそ次のような2つの共通点があります。 解くべき問題から想像される以上にコードが複雑なこと 共通化されるべきところが共通化されていないこと 何かをやりなさいと指示をするとき、それは人に分かる言葉で説明することが必要です。これはコンピュータにも同じでありそれはコードで表現されています。ここで注意してほしいことは、コードはコンピュータに分かる言葉でありながら人にも分かる言葉でなければならない、ということです。その意味で、コードは数学でいうところの証明に似ています。証明は数式という数学語で書かなければなりませんが、それ
Silverlight 4になってかなり便利になってきたのは以前も書いたのですが、 セキュリティ的に問題はあるけれでも、どうしてもやりたい機能として、 「ブラウザ上の操作で、ローカルファイルの実行ファイルを起動する」 があります。 例えば、FireFoxなどでは、一定の基準をクリアすれば、 プラグインから実行ファイルを起動することが可能なようです。 (AWSを使っている方なら、 ElasticfoxでPuttyやリモートデスクトップを起動できることをご存じかと思います) Silverlight 4の場合、権限昇格させたブラウザー外実行モードであれば、 COMを操作できるので、自作のCOMを使って実行ファイルを起動できます。 しかし、ブラウザー外実行はまだ新しい機能ということもあり、 サーバーと頻繁に通信することが前提の既存のSilverlightアプリを ブラウザー外実行
MapReduce で少し複雑なことをしようと思うと、MapReduce を複数回適用しなければならないことがあります。これにはいくつかの方法があります。 もし、Map+ Reduce Map* (1回以上の Map, Reduce, 0回以上の Map) という形で記述することが出来るならば、ChainMapper, ChainReducer というクラスが用意されており、これを Mapper, Reducer として利用するのが簡単です。 もし、シーケンシャルに MapReduce を適用するのであれば、Job の終了を待ってから次の Job を投入すれば済みます。 ChainMapper / ChainReducer このクラスは既存の Mapper を簡単につなげられることを目的としています。 仮に ChainMapper, ChainReducer というクラスががなかったとしま
Java で Web Application を作るときには、大体の方が Eclipse の Dynamic Web Project を使っていると思います。また、Eclipse で依存関係の解決に maven2 を使っている方も多いでしょう。しかしながら、この2つを組み合わせようとすると意外と面倒な設定が必要です。あまりウェブ上にリソースがないのでここにまとめておきたいと思います。 まず、Eclipse で Dynamic Web Project を作ります。Finish を押してしまわないように。ここで、Next を押して Java Source Directory を src/main/java にし、さらに Next を押して Content Directory を rc/main/webapp にします。ここで始めて Finish します。 作った Project で右クリックし
こんにちは。のぐちです。 先日、このブログの存在が社内に告知されました。 開始からしばらくはひっそりと生きようということで特に教えていなかったのです。 で、早速というか何というか、社内の開発者からの応援メッセージ(ツッコミ)が届きました。 そのひとつが 「何故jQueryを使ってるのに、addEventListener してるのか?」 でした。 確かにわざわざ次のように書きました。 box.addEventListener(“touchmove”, touchHandler, false); 僕も最初はjQueryを使って $(“#box”).bind(“touchstart”, touchHandler); なんて書いたのですが、タッチしても全然反応がないので、 「ああ、touch系のイベントはjQueryが対応してないんだろうな」 と思い込んでいました。 が、このツッコミを機
何かリクエストを受け付けて処理をして返すという、サーバーでよく行われる処理を考えてみましょう。一度に多数リクエストを受け付けて同時並行的に処理が行えるようにしたい場合、1つのやり方としてマルチスレッド化してあるスレッドで accept(2) しておいて、それを別のスレッド(ワーカースレッド)に振り分け、そのスレッドでは recv(2) / send(2) で通信を行うという方法があります。しかし、その場合スレッド数を超えるリクエストを同時に捌けないという欠点があります。recv はまだデータが来てないという場合には待ちが発生しますので、待っている間そのスレッドは遊んでしまって無駄になってしまいます。スレッドを CPU のコア数より多めに取っておけばそれは回避できますが、スレッド切り替えのオーバーヘッドがかかり、またスレッドを生成出来る個数の上限も合って、あまり多数のクライアントをさばくこと
こんにちは。のぐちです。 さて、ここまで続けて、需要があるのかどうかさっぱり分かりませんが、 今回はいよいよCSSアニメーションを使ってフリックを表現します。 早速ソースを並べて解説をしていきます。 まずは前回までのものからHTMLを少し変更しました。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>flick</title> <meta name="viewport" content="width=device-width, maximum-scale=0.6667" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type
つい先日、非リレーショナルデータベースとして名高い(らしい)「Apache CouchDB 1.0」がリリースされたので、手元に余っていたCentOSにインストールしてみた。 環境 CentOS 5.5 32bit CouchDB http://couchdb.apache.org/ 1.ダウンロードと展開 $ wget http://ftp.riken.jp/net/apache/couchdb/1.0.0/apache-couchdb-1.0.0.tar.gz $ tar xzvf apache-couchdb-1.0.0.tar.gz $ cd apache-couchdb-1.0.0 2.1回目のconfigure とmake $ ./configure 結果。 checking for gcc… no checking for cc… no checking for c
若干間が空いてしまいましたが、今回は番外編として bloom filter について書くことにしました。 Bloom Filter とは何か Bloom Filter は、1970 年に Burton H. Bloom により考案された、要素が集合に入っているかどうかを空間効率良く求めるデータ構造です。この構造の特徴的は、本当は集合に入っていない要素に関しても含まれていると誤って判定してしまう場合があることです (これを偽陽性という)。そのかわりに、必要なメモリ空間が非常に小さくなっています。なお、集合に張っている要素に関しては常に入っているという結果を返します。使用するメモリ領域を増やすことで、偽陽性の発生確率をコントロールすることが出来ます。 このデータ構造は、Cassandra のような分散 KVS (Key Value Store) で、ある key をデータを自分が保持するかどう
ロードバランサ(LB) を立てて、バックエンドに複数のAPサーバを立ててみたけども、LBを経由して毎回同じAP サーバへアクセスさせたい時、ありますよね。APサーバ1に、一度アクセスしていて、そのセッションが保持されている場合です。そんな時に、APサーバ2にLBからアクセスが振られてしまうと、またログイン画面が表示されてしまう、というパターンに陥ることがあります。 これをLBで、どのように調整しているかというと、APサーバ1,2ごとにそれぞれ異なる識別子を持たせます。 例えば APサーバ1 には jvm1 を、APサーバ2 には jvm2 という値を識別子を持たせます。そして、個々のユーザの Cookie 内に仕込まれる JSESSIONID の末尾にこれらの値を挿入させます。( Tomcat 等のアプリケーションサーバ側の設定で、自動的に挿入されます。) ユーザ1の JSESSIONI
とあるWebアプリをiPhone対応させようと思っています。 iPhone対応なんて、レイアウトをちょっといじる程度かと思って調べていたら、 なんとiPhone搭載のモバイルSafariはタッチ関連のイベントをJavascriptで扱えるというじゃないですか。 “iPhone Human Interface Guidelines for Web Applications” を見てみると、 ユーザーの操作として上げられている中に「Flick」があります。 ということは、フリックイベントを設定できて、ページをめくる的な操作がササッと作れるはず。 などと思って調べたところ、どうやらタッチ・ジェスチャー関連のイベントは下記の7つみたいです。 touchstart touchmove touchend touchcancel gesturestart gesturechange gesturee
最近 Apache Proxy Balancer を使っています。今更?という感じもしますが、いろいろな小技を使うと、便利に使えるロードバランサ(LB)であることが分かってきたので、愛用しています。例えば、複数台あるAPサーバの間で、アクセスを割り振るための優先度付けをしたり、一度接続すると常に同じAPサーバへ接続できたり、動的に設定を変更することで新規セッションの接続を止めて、既存のセッションのみを接続可能にできたりします。 ともあれ、まず実現したいことは、LBを経由して、複数台あるAPサーバ(Tomcat)にアクセスを割り振ること!ですね。 まずは、インストールから。 ○インストール Apache Httpd のサイトからダウンロード。 http://httpd.apache.org/download.cgi 今回はソースをダウンロードします。展開して、コンパイルします。 ./con
このページを最初にブックマークしてみませんか?
『Critical Works』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く