技術ブログ - 毎日が成長!

2012年2月 のアーカイブ

『Cloud Days Tokyo 2012』へのご来場ありがとうございました

2012年2月29日 by kawamura

こんにちは、CSチームのかわむらです。

2日間にわたって開催された『Cloud Days Tokyo 2012』ですが、先ほど無事終了いたしました。

早朝からの降雪で交通機関の乱れが続く中、多少の不安と共にむかえた2日目。東京国際フォーラムは昨日を上回る人出で、外の冷え込みとは対照的な熱い一日でした。

初日の様子は下記の記事をご参照ください。

Cloud Days Tokyo 2012 展示会1日目をレポート!

本日も弊社代表大石 (@ooishi)がAWSブースでプレゼンをさせていただきました。

AWSブースではこのように出展各社が15分ずつプレゼンを行うのですが、個人的に株式会社ノーチラス・テクノロジー様の「Asakusa Framework on AWS」のプレゼンが、並列処理を行うHadoopとAWSの特徴であるElasticな(伸縮自在の)運用を合わせた時の圧倒的なパフォーマンスを解説していて感動しました。

ビッグデータをHadoopで処理する!などと言われると気軽には手を出せない気分になりますが、AWSのサービスの1つ「Elastic MapReduce」を使うことで驚くほど手軽に並列処理をはじめることができます。

さてさて。AWSブースではこうした素晴らしいプレゼンが続いたのですが、ご来場いただいたみなさまのおかげにより、それらの中から弊社のプレゼンが本日のトップを頂戴しました!

そのご褒美として最終枠17:45からのボーナストラックをいただくことができ、最後まで盛況のうちに終えることができました。ありがとうございました。

今後、開催されるAWSの各種イベントでもCloudworksをどうぞよろしくお願いいたします。

 

Google Apps ScriptからWordPressのAPIにアクセス

2012年2月29日 by kawamura
こんにちは、CSチームのかわむらです。
サーバーワークスエンジニアブログにある「はてなブックマーク」「Twitter」「いいね!」ボタンのカウントをGoogle Apps Scriptを使って集計してみました。
Google Apps Scriptについては下記の記事が参考になると思います。
Google Spreadsheetsの上で動くので、データの取得さえできてしまえばグラフにするのは簡単です。
Google Apps Scriptはサーバーサイドで実行されるJavaScriptなのだから、ブログ記事からHTMLを取得してスクレイピングするくらい簡単だろうと思っていたのですが、予想以上に大変で挫折しかけました。
そこでWordPressのAPIを使い簡単になんとか実装できました。一度スプレッドシートに取り込んでしまえば、データの利用の幅は広がるので他でも活用できそうです。
ウェブサービスへのアクセス
ウェブサービスへのアクセスにはUrlFetchAppクラスを使います。HTTPResponseの例にある通り、ほんの2行でヘッダーを取得して表示することができます。
var response = UrlFetchApp.fetch("http://www.google.com/");
Browser.msgBox(response.getHeaders().toSource());
簡単ですね。
XML-RPCを使うための準備
WordPress APIへはXML-RPCを使ってアクセスします。今回はJavaScriptのXML-RPCクライアントのライブラリ”Mimic”をGoogle Apps Scriptで使えるように修正した”XML-RPC client on Google Apps Script”を使わせていただきました。
  1. ブログのURL、ユーザ名、パスワードを用意します。
  2. Google Spreadsheetのスクリプトエディタを開いてダウンロードしたMimic-for-Google-Apps-Scriptをペーストします。
BlogIDを取得する
動作確認も含めて、まずはブログIDを取得してみます。
  1. スクリプトエディタにonOpenとgetBlogidをペーストし保存します。
  2. onOpenの”ブログのURL”, “ブログのID”, “ブログのパスワード”を設定して、[サンプル]メニューからgetBlogidを実行するとブログIDが表示されます。
  3. このブログIDをonOpenのG.wordpress.blogidに設定します。これは後ほど記事リストの取得で使用します。
onOpen
var G = new Object();

G.wordpress = {
  url: "ブログのURL",
  blogid: "",
  username: "ブログのID",
  password: "ブログのパスワード",
  recentposts: 10
};

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var menu = [{name: "blogid", functionName: "getBlogid"},
              {name: "entlylist", functionName: "getEntrylist"}]

  ss.addMenu('[サンプル]', menu);
}
getBlogid
function getBlogid() {
  var request = new XmlRpcRequest(G.wordpress.url + 'xmlrpc.php', 'blogger.getUsersBlogs');
    request.addParam('');
    request.addParam(G.wordpress.username);
    request.addParam(G.wordpress.password);

  var r = request.send().parseXML();

  var blogid = 'BlogID: ' + r[0]['blogid'];
  Browser.msgBox(blogid);
}
記事のリストとURLを取得する
  1. スクリプトエディタにgetEntrylistをペーストし保存します。
  2. [サンプル]メニューからgetEntrylistを実行します。初めて実行する時は認証ダイアログが開くので実行を許可します。
getEntrylist
function getEntrylist() {
  var posts = new Array();

  // 記事のリストを取得します
  var request = new XmlRpcRequest(G.wordpress.url + 'xmlrpc.php', 'metaWeblog.getRecentPosts');
    request.addParam(G.wordpress.blogid);
    request.addParam(G.wordpress.username);
    request.addParam(G.wordpress.password);
    request.addParam(G.wordpress.recentposts);

  var entlylist = request.send().parseXML();

  // postidを指定して記事ごとのURLを取得します
  for (var n in entlylist) {
    var request = new XmlRpcRequest(G.wordpress.url + 'xmlrpc.php', 'metaWeblog.getPost');
      request.addParam(entlylist[n].postid);
      request.addParam(G.wordpress.username);
      request.addParam(G.wordpress.password);

    var r = request.send().parseXML();

    // 配列に格納します
    if (r.post_status == 'publish') {
      posts.push([entlylist[n].postid, entlylist[n].title, r.permaLink]);
    }
  }

  // スプレッドシートに書き出します
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange(2, 1, posts.length, 3);
  range.setValues(posts);
}
こんな感じで記事リストを取得することができました。
取得したブログ記事リスト
次回はGoogle Apps Scriptでblogger APIにアクセスする手順を書きたいと思います。
 

Cloud Days Tokyo 2012 展示会1日目をレポート!

2012年2月28日 by fukui

こんにちは。CSチームの福井です。

サーバーワークスは、今日(2/28)・明日(2/29)の2日間『Colud Days Tokyo 2012』に出展しています。 その名の通り、クラウド関連の製品・サービスが一堂に集結する展示会です。

初日の様子を少しレポートしたいと思います。

開催初日にもかかわらず、ご覧のとおりの盛況ぶり。 クラウドに対する関心の高さがうかがえます。

今回のサーバーワークスブースはこのような感じになっています。

ブース内に飾られたパネルでは、cloudworksのゆるキャラ「高木さん」を用いたわかりやすい図で機能を説明しています。『クラウドっていろいろサービスがあってわかりにくい・・・』というお客様にも理解していただけるよう、工夫しています。 また、ブース内ではcloudworksのデモも行っていますので、実際に管理画面の操作を体験することもできますよ!

さてさて、今回も弊社代表大石 (@ooishi)がAWSブース内でプレゼンを行います。 「上司を説得してAWS利用をOKさせる3つのポイント」というお題で、今日は13:30から行われました。

データを預けることを銀行に例えたわかりやすい内容&大石の熱いプレゼンに、来場された方はくぎ付け。 プレゼンが始まってからもどんどん人が集まる嬉しい状況となりました。

聞き逃した方もご安心を。明日もAWSブース内にて、今日と同じ内容のプレゼンを行います。時間は16:00〜16:15です。 『使ってみたいけれど、クラウドのセキュリティが不安で上司から使用許可がおりない!!』というジレンマを抱えている方、ぜひプレゼンを聞いていただき、説得する材料にしてください。

もちろん、プレゼンの内容以外でも、気になるところはサーバーワークスブースの説明員にお尋ねください。丁寧に分かりやすく対応いたします。

みなさまのご来場、お待ちしております。

 

PAGE TOP