まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:developer

IBM Bluemix からも提供されている NoSQL 型データベースの DBaaS "Cloudant" の開発者向けエディションが Docker イメージでの無料提供が開始されました:
https://hub.docker.com/r/ibmcom/cloudant-developer/

2016091004


1インスタンスでスケーリングなし&サポートもなし、という条件は付きますが、IBM Bluemix などのアプリケーション開発者がローカル環境だけでシングルテナントの Cloudant の環境を使うことができるようになります。以下、その手順を紹介します。

まず利用にあたり、docker 1.9 以上が必要です。RHEL/CentOS の 6.x の場合は docker 1.7 までしかサポートされていないため、バージョン7以上を用意する必要があります。

docker 環境が用意できたら、以下のコマンドで開発者向け Cloudant のイメージを pull します:
# docker pull ibmcom/cloudant-developer

そして以下のコマンドでローカル環境上にコンテナを作り、起動します:
# docker run --privileged --detach --volume cloudant:/srv --name cloudant-developer --publish 8080:80 --hostname cloudant.dev ibmcom/cloudant-developer

初回起動時のみ、ライセンス規約に同意する必要があります。以下のコマンドを実行してライセンス画面を表示します:
# docker exec -ti cloudant-developer cast license --console

すると以下の様なライセンス内容がコンソールに表示されます。同意する場合は "1" を入力してください:

2016091001


また、これも最初の1回だけ利用前にデータベースを初期化する必要があります。初期化は以下のコマンドを実行します:
# docker exec cloudant-developer cast database init -v -y -p pass

これで準備は完了です、簡単ですね。実際にローカル環境の Cloudant を利用するにはウェブブラウザで以下のアドレスにアクセスします:
http://(docker が動いているマシンのIPアドレス):8080/dashboard.html

すると以下の様なログインが画面が現れます。デフォルトでは
 Username = admin
 Password = pass
という ID & パスワードがセットされているので、この値を入力してログインしてください:

2016091002


ログインが成功すると、見慣れた Cloudant のダッシュボード画面が表示されます。後はいつもと一緒です。これでいつでもローカルで手軽に使える Cloudant 環境が用意できました:

2016091003

日本時間の 2016 年 4 月 1 日に、レッドハット社から驚きの発表がありました:
No-Cost RHEL Developer Subscription now available

2016040101



開発(者)向け、という条件は付きますが、RHEL(RedHat Enterprise Linux) を含む Devloper Suite が無料でダウンロード可能になった、というものです。マジか!?これはタチの悪いエイプリルフールだろ?と思ったのですが、このニュースは米国時間の 3 月 31 日にリリースされており、エイプリルフールではなさそうです。。

自分はこれまで RHEL のコミュニティ版ともいえる CentOS ばかり使っていましたが、ついにこの領域にレッドハット社が脚を踏み入れることになるとは。。 色々な事情や背景も考えられますが、なにはともあれ使えるものなら使ってみたいわけです(笑)。試してみました。


まずは RHEL のダウンロードサイトへ行ってみると、既にこの発表を反映した内容になっています:
http://developers.redhat.com/products/rhel/download/

2016040102


このサイトから RHEL 7 がダウンロードできるようになっている模様です。リンクをクリックすると、アカウントログインが求められます。RedHat Developer アカウントを持っている場合は入力、持っていない場合は新規に作成してログインします。各種SNSの情報に紐付けたサインインもできるようです:
2016040103


そしてアカウントプロファイル作成後にログインすると、その場から RHEL サーバーの ISO イメージのダウンロードが開始されました(バージョン 7.2 の 64bit 版でした。そういや 7.x って 32bit 版ないんだっけ)。インストールなど、ダウンロード後の作業手順についてもここから参照できるようです:
2016040104


といっても特別な手順が必要なわけではなく、普通に ISO(DVD) からブートできます:
2016040105


インストーラーも普通でした。最初に日本語選んでおけばインストール作業から日本語GUIで行えます:
2016040106


インストールが完了してリブートした直後の画面がこちらです。"LICENSE INFORMATION" に警告マークがついているので、ここをクリックします:
2016040107


ライセンス条項を読み、確認して、同意にチェックを入れ、左上の「完了」ボタンで戻ります:
2016040108


画面が戻ると先程の警告マークが消えているはずです。右下のボタンで設定を完了します:
2016040109


「ようこそ」画面が出るので更に進めていきます。すると・・・:
2016040110


じゃーん!
2016040101


個人的には見る機会の少ない RedHat Enterprise Linux のデスクトップ画面が表示されました。7.x になってからは本当に初めてかもしれない。。 ともあれ、無料のアカウント登録だけで本当に使えてしまいました。

動いてしまえば、後は慣れた CentOS の感覚(?)で使えるようになります:
2014040101






個人では、ヤフーデベロッパー API を活用しています。個人での話です、あくまで(苦笑):

http://developer.yahoo.co.jp/


自分が個人運用しているサービスの中では、例えば「ねっぴ」では Yahoo! ショッピングの商品情報(価格など)を取得するためにショッピング Web API を使わせていただいています:
http://developer.yahoo.co.jp/webapi/shopping/

また「ツイートマッパー」では、隠しページではありますが、マップの API として Google MAP ではなく、YOLP(Yahoo! Open Local Platform) を使ったバージョンがあったりします。こちらは気象情報 API で天気図レイヤを重ね、天気図と一緒にツイートマッパーを表示することもできます。ゲリラ豪雨の情報が天気図でもツイートでもわかる、といった感じで使えます:
http://tweetsmapper.juge.me/yolp_index.jsp

2015081801


・・と、個人デベロッパーとしては実は色々な所でヤフーデベロッパーから提供されている API を使っているのですが、最近になって、「テキスト解析」という気になる API を見つけました:
http://developer.yahoo.co.jp/webapi/jlp/

日本語の「係り受け解析」「ルビ(よみがな)振り」なども面白そうですが、特に気になったのは「日本語形態素解析」 API です:
http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html


この API はインプットデータとして
 「ここのラーメンは絶品で美味しい」
のような日本語テキストを与えて実行すると、その実行結果アウトプットに、以下の様な単語単位に区切ったデータを返してくれる、というものです(実際には表ではなく XML 形式で返されます):
単語読み品詞
ここここ名詞
副詞
ラーメンらーめん名詞
副詞
絶品ぜっぴん名詞
副詞
美味しいおいしい形容詞

形態素解析 API の具体的な使い方はこんな感じです。まずヤフーデベロッパー API を使う上で必要になる「アプリケーションID」を登録します(実際にはこの手順でアプリケーションIDとアプリケーションシークレットを取得しますが、日本語形態素解析APIでは後者は使わないようです)。詳しくはこちら:
http://www.yahoo-help.jp/app/answers/detail/p/537/a_id/43397

アプリケーション ID が取得できたら、その文字列を使って以下の様なクエリーを発行します:
http://jlp.yahooapis.jp/MAService/V1/parse?appid=(アプリケーションID)&sentence=(解析したい文章をUTF-8エンコードしたもの)

ウェブブラウザで実行すると日本語のエンコードは自動で行ってくれるのでそのまま指定できます。例えばウェブブラウザのアドレス欄に以下の文字列を指定して実行してみます:
http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html?appid=(アプリケーションID)&sentence=ここのラーメンは絶品で美味しい

実行結果はこのような感じになるはずです。与えた「ここのラーメンは絶品で美味しい」というテキストを形態素解析した結果が XML フォーマットで取得できています:
2015081901


この XML を詳しくみるとこんな内容になっています。なんとなく上記の表に対応した結果になっていることがわかります:

<ResultSet xsi:schemaLocation="urn:yahoo:jp:jlp http://jlp.yahooapis.jp/MAService/V1/parseResponse.xsd">
 <ma_result>
  <total_count>7</total_count>
  <filtered_count>7</filtered_count>
  <word_list>
   <word>
    <surface>ここ</surface>
    <reading>ここ</reading>
    <pos>名詞</pos>
   </word>
   <word>
    <surface>の</surface>
    <reading>の</reading>
    <pos>助詞</pos>
   </word>
   <word>
    <surface>ラーメン</surface>
    <reading>らーめん</reading>
    <pos>名詞</pos>
   </word>
   <word>
      :
   </word>
  </word_list>
 </ma_result>
</ResultSet>


この API に、例えばこちらで提供されているような「単語感情極性対応表」のデータを合わせて使うことを考えてみます:
http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html 

つまり単語ごとに「ポジティブ度合い」や「ネガティブ度合い」がデータとして与えられることになります。上記の形態素解析でテキストを単語ごとに分解して、分解した単語ごとにポジティブ/ネガティブ度合いを調べて加算すれば、テキスト全体のポジティブ/ネガティブ度合いが計算できるのではないか? という仮説を思いつきました。つまりこんな感じ:
単語読み品詞ポジ/ネガ
ここここ名詞-0.629
副詞 
ラーメンらーめん名詞 
副詞 
絶品ぜっぴん名詞+0.980
副詞 
美味しいおいしい形容詞+0.991
合計+1.342

これで、元の文章「ここのラーメンは絶品で美味しい」という文章は、単語のポジ/ネガのプラスマイナスの結果が +1.342 なので、文章全体としてもポジティブになるのではないか? という仮説です(まあ、現実はこんなに単純ではないとわかった上での仮説ですが・・・)


とまあ、こんなサービスの基本となる形態素分析が無料の API で提供されているわけです。これは便利!使わにゃ損だ!!

実際にこのサービスを作ったら、公開するつもりです。


 

先日の IBM XCITE イベントの中で、IBM BlueMix のアプリケーション開発コンテストの開催が発表されています:
IBM BlueMix Challenge
2014052501



このブログでも何度か触れてきましたが、IBM BlueMix は、いわば「IBM 版 CloudFoundry」です。IBM の提供するクラウド上に CloudFoundry 環境が構築されており、現在は無料ベータ版という扱いで誰でも利用することができるようになっています。素の CloudFoundry と異なるのは IBM ソフトウェア製品も利用可能なサービスとして統合されているので、BlueMix 上で Java アプリケーションサーバーや DB2 を始めとするデータベースサーバーなども利用できるようになっている点です。BlueMix 上で稼働する IBM 製品については原則的に IBM からの製品サポートが提供され、それ以外のものについても一部はサードパーティからの製品サポートが提供される、という形態になっています。

この BlueMix 環境上でアプリケーションを開発/構築するというコンテストです。なお、コードそのものの良し悪しだけで判断されるわけではなく、用意されたサービスをどのように組み合わせて、どのようなイノベーションを実現するか、という総合的な判断に基づくコンテストのようです。

気になる商品は Mac Book Pro やルンバといった、デベロッパー(やその家族)が喜びそうなものが用意されています。実際にはこれらの中でも上位機種が準備されているとの噂も・・・


参加する場合、6月30日までにそのための登録申請を行う必要があります。アプリケーションそのものは申請の段階で開発されている必要はなく、アプリケーションの提出期限は8月12日となっているようです。


注目の PaaS 環境である Cloud Foundry のアプリケーションを開発するいい勉強の機会にもなるし、あわよくば Mac Book Pro も手に入れるチャンスです。普通にアプリを開発できれば BlueMix(Cloud Foundry)対応はさほどハードルが高いとは思わないので、多くの開発者にチャンスがあると思います。


「興味はあるけど、まだあまりよく BluxMix(Cloud Foundry) 分からないんだよなあ・・・」という方は、拙作ですが、以下の僕のブログエントリがお役に立てれば幸いです:

- BlueMix を使う
- BlueMix のダッシュボードとデータベースサービスを使う
- BlueMix 上で PHP アプリを動かす
- BlueMix を使ってみて
- BlueMix で Twilio を使う
- BlueMix 向けに(Java)アプリを開発するといいことはあるか?
- BlueMix 向け Twilio アプリのサンプル
- BlueMix 開発コンテストが開催されるらしい
- BlueMix のデータストア比較
- BlueMix の cf コマンド
- BlueMix 上の DB2 をハック
- MySQL が 3306 番以外のポートで動いている時の WordPress 設定
- モバイル向けdeveloperWorks ページを作ってみた





 

「iPhone でゲームボーイアドバンスのゲームがプレイできる」というフレコミの GBA4iOS というアプリのバージョン 2.0 がリリースされた、というニュースがありました。

いわゆる「エミュレータ」というやつで、ここでその是非についてコメントするつもりはありません。脱獄した iPhone 向けには以前から提供されていたもので、その意味では特別目新しいニュースでもありません。

が、今回ちょっと気になったのは、「脱獄不要である」という点です。脱獄不要ということは、そのアプリは App Store からダウンロードするということ? アップルがそんなアプリの審査通すの? と。

といった好奇心から、自分でもこのアプリをインストールしてみました。結論としては確かに iPhone にネイティブアプリとしてインストールできているようです。
2014022102


でも導入時に App Store は経由してません
。当たり前だよな、Apple がこんなの許可するわけがない。また(この機種に限ってはw)脱獄もしてません。 アプリ開発者が App Store を経由せずにテストアプリを導入する方法はあるんですが、その場合は電話番号とか iPhone の UDID とかを入力する面倒な手間があります。今回はそういうのも聞かれてないので、ちと違う気がする。 一体どういうこと?? どこからどんな仕組みでこのアプリはインストールされたんだ??


で、他の作業で VPN の設定とかをしていてふと気付いたのが、設定 - 一般 - プロファイル の中に「プロビジョニングプロファイル」として GBA4iOS という、そのまんまの名前のプロファイルが追加されていました。これは??
2014022101


・・・プロビジョニングプロファイルか、ああ、なるほど。分かった気がする。おそらく、以前にちょっと話題になった「iOS デベロッパーエンタープライズプログラムに抜け穴があった」という件に関係してるんだろう。

要は、自社とか特定の企業向けにアプリケーションを提供したい、という企業に対して、Apple はその企業専用のミニ App Store もどきを用意できるようにして、そこから特定ユーザーだけにアプリケーションをインストールさせる、というのが iOS デベロッパーエンタープライズプログラムです(詳しくはこちら)。そこにセキュリティホールというか抜け道があった、というものでした。それを応用(?)して制約なしに誰もがそのミニ App Store もどきを使えるようにしたんだろうな。 
念のため補足すると、このデベロッパーエンタープライズプログラムは契約時に利用条項に同意する必要があり、その中で不特定多数に向けてアプリを提供することは禁止されているので、Apple にすれば「契約違反」ということになるんでしょう。ただその抜け道の存在は想定外だったのだろうな、と。

その後もイタチごっこのような状況が続いていますが、今回の GBA4iOS 2.0 がリリースされた所をみると完全に防ぐのが難しい、ということなのかもしれません。



 

このページのトップヘ