いろんな人のinstagramの投稿を1つのtwitterに投稿する


こういうことがやりたいです。

1. instagramの投稿情報を外部に出す

instagramのデータを外部利用したいです。が、twitterなどと違ってデータを外部から取り出しづらい設計になっています。自分でがんばりゃプログラム作れそうですが、無駄な労力はかけたくないのでサービスの利用を検討します。

IFTTT、zapierなどの対応状況

サービス同士の連携をするならIFTTT!ということでレシピを探したのですが、自分のinstagram投稿をtwitterなどに投稿するものはあったものの、他人の投稿を読み取る機能はありませんでした。

その他のサービス

RSSフィードに出せれば料理できるやろ、と思って”instagram rss”で検索したところ、以下の2つが見つかりました。

FetchRSSはまさにinstagramのアカウントを指定すると、その人の情報をrssフィードにコンバートしてくれるサービス。facebookなどにも対応しているそうです。有料ですが、こういったスクレイピングぽいもので無料のものは勝手にサービス終了する可能性があるため、有料だとむしろ安心。プロプランでも月額1000円ちょいです。
Account – FetchRSS
一方WEBSTAってのはinstagramの分析サービスの様子。で、
https://websta.me/rss/n/[USERNAME]
って名前でUSERNAMEの投稿のRSSフィードを吐いているみたい。多分、twilogみたいにデータを自社で貯めこんで、ついでにRSSも吐いているのかな?利用は無料ぽいので、ひとまずこっちを利用する事にします。

2. RSSフィードをtwitterに投稿する

ここまで来れば後は簡単。RSSをtwitterに投稿するサービスはたくさんあります。
RSSをTwitterに自動投稿できるサービスまとめ | kazsoga blog

これは料金勝負でええやろ、と確認するとdlvr.itだけがStandard Planの1000円/月かかりそうだったので、ひとまずIFTTTで実装しました。ただ、以下のように気になる記事があるので今後注意していきたいです。
RSSフィードをTwitterへ投稿するまでの試行錯誤

3. 将来構想

この仕組み、スノーボードライダーのinstagram投稿をtwitterに流したいねって所から始まりました。スノーボードライダーって今のメインはinstagramでの情報発信だからinstagramをフォローするしかないんだけど、そうすると自分の友達のフィードに紛れて分かりづらい。んじゃそれを別出ししてtwitterでチェックしたい、って事です。
ただ、スノーボードライダーにもいろいろあって、日本勢・海外勢・ゲレンデ滑る人・BCの人…などあるので、これらを1まとめのtwitterアカウントにしてしまっていいのかどうか。なので、将来的にはいろいろチャネルを分けて好きなアカウントをフォローできるようにしたいです。

このためには、instagramから吐かれたRSSをさらに別の仕組みでマージしてtwitterアカウントに投稿すればよいと思っています。
で、googleで”merge multiple rss feeds”で調べたところ、海外のサービスが複数見つかったので、これも試そうと思ってます。

googleスプレッドシートやJSONなどからデータを読み取りWebで表示可能なグラフにしてくれるサービス(そしてデータは自動更新)

メモです。
まさに表題の要件でいろいろ探した結果を共有します。

やりたいこと

オンライン上でデータを定期的に投げ込み、それに準じてグラフを動的に変化させたい。グラフ作成ライブラリなどを使う発想もあったが、その勉強をする工数が必要なのと、今のご時世、それくらいサービスであるんじゃね?という期待を込めて探しました。

結果

番号 サイト URL 要件の可否
1 Eegraph – 美しいグラフが簡単に作成できる!グラフ作成サービス https://eegraph.com/ ×
2 Statpedia: Create a Graph https://statpedia.com/ ×
3 Piktochart https://piktochart.com/ なんか違う
4 JavaScript Charts & Maps – amCharts https://www.amcharts.com/ ×っぽい
5 Online Chart Builder – ChartBlocks https://www.chartblocks.com/en/ おしい。
6 Online Charts Builder http://charts.hohli.com/ ×
7 Automated Visual Reporting and Analytics for NetSuite https://icharts.net/ 商用の匂い
8 Infoactive https://infoactive.co/ なんか違う
9 Google スプレッドシート https://www.google.com/intl/ja_jp/sheets/about/
10 Create infographics & online charts – Infogram https://infogram.com/app/#/library

結論から言うとほとんどのサイトがだめでした。
当然、どのサイトもcsvやExcelなどいろんな形式に対応しているのですが、例えばGoogleドライブ内のスプレッドシートと接続して、定期的にポーリングする…というのはどのサービスもほぼ対応しておらず。
対応していたのは10版のinfographicsってサイト。ここは要件○で満たせており、機能OKデザインOK。ただし、データの自動アップデートがあるプランは25ドル/月と安くはない出費です…。
で、実はgoogleスプレッドシート自体がWeb公開機能あるやん、って調べたところ、確かにグラフは公開できたがデザインが微妙で機能的にも扱いづらいので△としました。
5番のChartBlocksってのは”今後DBやWebソースからの読み込みに対応するよ!”って言ってくれてるので、ここが一番期待できるか。
そのほかは箸にも棒にもかからず。といっても要件次第では使えるものもあって、例えば3番のサイトはデザインだけはめっちゃよい、とかです。
終わり。

[メモ]MS社のEMS講習まとめ

講習を受けてきたので纏めます。なお以下の内容は講習時点のもので、1年後にはきっと変わってます(ボタンの位置とか名称とか)

最初の注意事項

  • IEでAzure走査して調子悪ったらchormeで操作
  • IEならInPrivateモード、Chormeならシークレットモードを利用。
    • 変なcookie残らなくてよいらしい
  • 設定にタイムラグはあるので、焦らない
    • 明示的にエラーが出てなければ操作は正しい
  • Azure仮想マシンはケチらずA3以上で
    • 3台を10時間稼働させても320円

基本準備

Azureアカウントの作成

https://manage.windowsazure.com/からサインアップ。

ストレージアカウントの作成、ディスクイメージのコピー

  1. ストレージを選択し、「新規」を選択。ストレージアカウントを作成する。
  2. ストレージアカウントのアクセスキー(文字列)をコピー。
  3. 講習用のpowershellスクリプトを使用して講習用イメージを自分のストレージアカウントにコピー。

初めて実行しました。こうすると自分が作ったイメージをAzureを通して他人のストレージアカウントにコピーできるんですね。リージョンが同じじゃないと動かない?リージョン跨ぎは試してませんが、コピーを行うなら同じリージョンの方がいいでしょう。

コピーしたディスクイメージを元に、仮想マシン作成

前述の手順でVHDファイルがAzure上に配置してある状態なので、これを利用して仮想マシンを作ります。

  1. 仮想マシンを選択し、「作成」を選択。
  2. 「VHDからイメージを作成する」でVHDのURLを指定

VHDイメージがsysprep済みなら「仮想マシンでSysperpを実行しました」を選択。こうしないと再度Sysprepが走り、いろいろな設定が消えてしまう。

AzureADについて

AzureADとはADをAzure上に持てます。それだけではなく、Azure限定の機能もいろいろ使える。まずはAzureADを使えるように。

1.新規AzureADの構築

ActiveDirectory → アプリケーション サービス → Active Directorより名前を設定してAzureADを立てる。ドメイン名はxxxx(選択した名前).onmicrosoft.comとなる。

2.ユーザーを作成

1.で作成したAzureADのテナントに移動し、画面下にある「ユーザー」をクリック。名前は適当に入力してロールを「グローバル管理者」とする。

3.ログイン

https:portal.office.com/にアクセス。上記アカウント「user@xxxx.onmicrosoft.com」と上記で発行された仮パスワードでログイン。ログイン後、パスワードの変更を求められるので、変更して終了。

EMSを使ってみる

今回の講習のテーマ。

EMS評価版を使用する

  1. AzureポータルのActiveDirectoryを開く
  2. 上部の「ライセンス」よりENTERPRISE MOBILITY SUITEを今すぐ試す、を選択。

簡単。この後Enterprise Mobility Suiteよりユーザーに対して「割り当て」を実行することで該当のユーザーがEMSを利用できるようになります。

  • 試用版状態では100ユーザーに限られます。
  • 試用版の期限は30日です。
  • AzureADのテナントを作成毎に、EMSの試用が可能です(検証目的であればほぼ無限に作成可能)

EMS評価版を有効にすることで、自動的にAzureAD Premium状態となる。
余談:AzureADの種類

  • AzureAD:Office365を契約すると無料でついてくるやつ。
  • AzureAD Basic:有料。グループベースのアクセス制御やユーザーによるパスワードリセット。SLAなど。
  • AzureAD Premium:有料:Basicに加えて不正アクセスレポート、多要素認証などなど。

EMSを使用せずともAzureAD Premiumを使うことは可能だが、EMSを使うにはAzureAD Premiumが必須、と。

Azure Rights Management

  1. AzureADのトップページより「Right Management」をクリック。
  2. テナントを選択しアクティブ化。

これでOK。あとはRMSを有効化したユーザーでRMSが使用できます。
で、このRMSというやつ。ファイルを暗号化するソリューションなのですが、僕のイメージではいまいち使いづらい印象。暗号化するのは簡単なんだけど、ADで連携している組織=身内の中でしか閲覧ができない→身内同士でファイルを暗号化することなんかなくね?というやつ。
しかしAzure RMSでは新たに社外ユーザーに対してもRMS制御ができるRMS for Individualsという機能が追加されたのだ!仕組みとしてはインターネットからアクセス可能なAzure上のRMS認証基盤に社外ユーザーのメアドを登録する。受け取ったユーザーは自分のメアドでインターネット上のRMS認証基盤に認証に行く。
そういえば先日のIgnite 2015で「Azure RMS Document Tracking」って機能が追加された様子。これは各RMSファイルが地球上のどの場所で認証、認証NGされたかを追跡できるシステム。RMSファイルが不正利用されてそうダナーと思ったらファイルに対する権限を取り消せばその瞬間からそのファイルは閲覧できなくなる。
ってことでここら辺のエコシステムが整ってくれば、ワンチャンRMSがデファクトスタンダードになる…のか。知らんけど。

多要素認証

RMS/EMSとは全然関係ない話。AzureAD Premiumが有効になったので、Office 365に対して多要素認証をかけることができます。
1.Azure ADのトップページより「多要素認証プロバイダー」を選択。
2. 新しいMulti-Factor Authenticationプロバイダーの作成を選択
3. 多要素認証プロバイダーの名前を指定。使用モデルは「有効化されたユーザーごと」を選択
後は下部の「管理」から構成の管理が行えます。多要素認証のON/OFFはユーザー毎に管理。

  1. Azure ADでテナントを選択、[ユーザー]タブをクリックし、画面下から「多要素認証の管理」をクリック。
  2. 有効化したいユーザーを選択し「有効にする」をクリック。

これでログイン時に電話番号認証も必要になる。構成を変更することで、再認証が必要な機関などをコントロール可能。

Intune

MS版のMDM。ぶっちゃけ機能は他のMDMに劣ってますが、Azure ADと上手い事連携させればメリットはある?
http://account.manage.microsoft.com にテナントのアカウント(user@xxxx.onmicrosoft.com)でログインし、Intune評価版が有効になっていることを確認。EMS試用版を有効にした時に、Intuneも有効になっているはず。
使い方は割愛しますが、デバイスに対してアプリをプッシュインストール、リモートワイプなど、MDMっぽい機能は一通り使えます。繰り返しますが、30日間の試用期間で、テナントに紐づけられるので、何回でも構築・テストが可能。
にしてもこのIntuneっぽくないURLなんとかならんの…。

アクセスパネルとSaaSアプリ連携

EMSとは関係ない話。AzureADではサードパーティー製のアプリにワンクリックでログインできる機能があります。具体的には

  1. 各ユーザー毎にWebブラウザ上で開けるランチャーみたいな画面が用意され
  2. そこにサードパーティーのアプリ(Gmailやfacebookなど)へのリンクを追加
  3. 初回ログイン時にID/PasswordをAzureADに保存すれば、次回以降はクリックだけでアプリにアクセス可能

となる。連携アプリはGoogleApps/Facebookからdropbox/Githubなど2500なので有名どころはまず対応しているかと。企業などで既にDropboxの企業向けプランとか使っていると非常に有効ですね。

その他

演習ではオンプレADとAzureADのID連携(Not FIM)も実施しました。これも

  • ネットワークサービス – 仮想ネットワーク – カスタム作成より、仮想ネットワークを作成
  • 管理ポータル – クラウドサービスより負荷分散のための仮想名を作成
  • カスタムのデータディスクを追加

と新しい事を習えて楽しかったです。EMSと関係ないので手順は割愛。

まとめ

自分用に講習の内容を纏めましたが、足りない手順はたくさんあります。が、手順はすぐ変更されるしこれだけ書いときゃコンセプトは思い出せるから、調べながらなんとかなると思います。
プロダクトとしてはまだ発展途上だけど未来は明るいので、有効な導入事例が発表され始めてくると広まるのかなと思います。

TOEICスコアを3ヶ月位で565→715にUPさせた方法

6月のTOEIC → 11月のTOEICテストの点数比較↓

  • リスニング:305→400 (95点UP)
  • リーディング:260→315 (55点UP)
  • 合計:565 → 715 (160点UP)

でした。勉強期間は…多分2.5ヶ月くらい?6月のTOEIC受け終わってやる気出ず、埼玉クエストっていうスノーボードのオフトレ施設のパスが9月上旬で切れて、そこから真面目にがんばった気がする。

方法

Duo3.0

勉強の8.5割がこれ。購入したのは4月ながら1周やって放置。11月にテスト受け直すにあたって8月くらいからやり直し。つっても難しい単語が多いので

  1. 3セクションづつ進める
  2. 最後まで行ったら、最後から5セクション単位で進める
  3. これで最初まで終わったら、また最初から7セクション単位で…

で2往復くらいしました。1セクションを”終わり”とする基準は「1セクション完璧に覚えた→よし!次の日になっても忘れてない」。それでも3日後くらいには忘れてたりするのが普通だけど気にしない。

これを繰り返した結果、10月下旬くらいで226単語くらい”単語単体で見るとぱっと意味が出ない”単語として残ったのでこれを力づくで覚えるため、flashcard形式の単語帳を作成↓

myDuo3.0 flashcards | Quizlet

ただ、単語だけ見て覚えるのは難しく効率が悪かったので、その単語が含まれるDuo3.0の文章だけを抜き出したflashcard形式を作成↓

Duo3.0_weekness flashcards | Quizlet

Duoを1往復したくらいから、電車の中でDuo3.0のCDの通し聞きを始める。実はこれ、勉強し始めにもやってたんだけど、分からない単語が多すぎて意味が無いと判断、普通にDuoの単語を覚えることに専念してました。1往復した状態だと理解できる英文も多く、面白くなってきた。最終的には1.25倍速で普通に理解できるまでになりました。

早聞きソフトはこれがおすすめ。無料。

Audipo (音楽プレーヤー 倍速再生 耳コピ リスニング – Google Play の Android アプリ

新TOEIC TEST 出る単特急 金のフレーズ

勉強の1割はこれ。AmazonのTOEIC本ランキングで上位だったので購入。いかにもTOEICで出そうな単語ばっかりで構成されている。Duoをやりこんでたので、730点クラス以下の単語は8割方分かる状態で、残り2割を覚えるためにflashcard作成↓

単語の羅列だからDuoをやらずに始めると厳しすぎると思う。DuoはTOEIC本ではないので、TOEICでは出ないような単語もある(結婚・離婚とか、信条に関するものとか)が、覚えやすさと効率では一番だと思う。

その他

  • 公式問題集:模試を1回分やって復習もせず放置。すいません。やれば効果あると思う。
  • TOEIC公式アプリ(android):あまりやっていない。役に立ちそうなのでやる。
  • Umano:話題を選べばいいと思うけど「理解したつもり」で終わりがちなので、やるなら英文印刷して徹底的に攻略するまでやらないと意味が無いと思う。
  • 速読速聴・英単語:次はこれやりたい(上記やった上で時間あれば)

ということで、効果がありそうだけどやってない教材があるので、もうちょい伸びしろはありそうです。特に文法はほぼ対策なしなので、対策しなきゃ感。

追記

ちなみに僕は(親の仕事の都合で)アメリカで生まれ、0才~1才までと、2才~5才くらいまではアメリカで過ごしました。6才で日本に帰ってきてから日本語の発音がおかしいと友達にバカにされ、そこから英語を封印。10才くらいで英語を完全に忘れ、アメリカ時代の友達から来る手紙の意味も分からない状況。中学で”This is a pen”から勉強しなおし、受験英語で苦労し、社会人10年目でTOEIC 565点でした。

何が言いたいかというと幼少からの英語教育とか言ってるけど、継続しないとすぐに忘れるぞ!ということです。

Mikanやってみたメモ

朝から進めてみて思ったこと。

unnamed

iTunes の App Store で配信中の iPhone、iPod touch、iPad 用 mikan

  • Rank1でもムズい。分からない単語の数で言うとRank5とあまり変わらかった。
  • 出てる単語がTOEIC頻出かはよく分からないけど、「Duoで見たことあるやつばっかり!」って感じではなかった。
  • 単語テストでは、回答までの時間で評価が決まるのがすごく良い
    • 2,3秒考えて思い出すのでは「使える」事にならないが、自分で単語帳やってるとここら辺が甘くなる。
    • 回答が四拓なので覚えてない単語でもなんとなくで正解できる、という指摘があるが、ちゃんと覚えている単語なら短時間で正解できる、という設計。
    • 単語テストの際に選択肢に頼らないよう、英単語を見て意味を思い浮かべてから回答するよう練習するとよいかも。
  • ただ、英単語に対して対応する日本語が一種類なので、よく知ってる単語だと回答を間違えてしまう。例えばplane→「飛行機」と思って4択の選択肢を探すも、回答にあったのは「平面」で時間切れ。
  • まぁ知らない単語だとこのアプリで学ぶ1つの意味しか覚えないからいいけど。
  • 単語の定着率。朝にやった単語(で不正解のもの)を夜やると7割8割くらいは忘れていた。
  • ただ、単語覚えるってめちゃくちゃ時間がかかるので、今日一日だけでは判断できない。
  • すきま時間は凄く有効に使える。会社からコンビニに行く途中で1セクションできるくらい。
  • 単語の質(TOEICで出るかどうか)は分からないけど、隙間時間にできる軽いアプリなので「単語はすぐに覚えられない」ということを念頭に進めるのはいいかもしれない。

そんな感じです。

まー今まで半年Duo3.0やってきて手ごたえ感じてるので、すぐに乗り換えるってのはないかも。残念な点として、出てくる単語がRank1でもムズく、折角気軽に出来るアプリなのにやる気が削がれちゃう。最初、単語が出てきて分かったか分からないかスワイプしていくんだけど、半分くらいは分からないから先に進めなくて、んで分からない単語は何回も出てくるからちょっとイライラする。あと、回答時間が決まってるから、自分のペースで進められない。次へ次へ、と回答するのが早期習得に役立つのかもしれないけど、合わない人には合わないと思います。

英語の勉強をしています。

こういうのは高得点取ってからだと自慢になっちゃうので、勉強の初期段階で書いときます。結果は夏くらいに個別に聞いてください。

動機としては

  • 今シーズン野沢の裏で滑ってる時に外人に雪かけられてとっさに言い返せなかった
  • スノーボーダー友達の友人に外国人がいてあまり会話に加われない
  • ニセコ行った時に外人と会話するため

です。こういうのは動機がしっかりしてないと絶対身につかないと思うので「英語しゃべれたらいいなぁ~」くらいの気持ちだと定着率が悪いと思うます。

ちなみにTOEIC照準で勉強していますが、TOEICはビジネス英語目的でそれなりにレベル高く、外人と話すだけならTOEICクラスの語彙力は必要無いです。つまりビジネスの場では”御社”とか”善処します”とかレベル高い語彙力が必要ですが、外人、特にスノーボーダーと会話するくらいなら中学英語で十分です。

が、「中学英語レベル」にピンポイントに絞る事自体が労力だし、そんな事を気にするよりがむしゃらに英語に触れるほうがよいと思います。あとTOEIC業界は競争が激しいだけあって、教材の質がいいと思います。

スノーボードでも「ジャンプに必要な技術だけを効率よく練習したい」って人より、とにかくフリーランでもジブでもジャンプでも貪欲にこなしてる人の方が結果的にジャンプ上手くなるのと同じです。

勉強法

とりあえずDuo3.0の本を丸暗記して、CDを100回聞きます。ゲレンデ行き帰りで5回くらい聞けるし、滑ってる時も流しとけば100回位は行けそうです。暗記だけなら50回位で出来そうだけど、英語の意味を「知っている」だけだと会話の中で「XX の意味は…○○!」とやっているだけで会話に置いてかれるので、日本語変換とか必要ないレベルで身につける事を目的とします。

スノーボードで言うと、ワンメイク台の上で十分にイメトレしてメイクできるSWB5じゃなく、スロープの流れの中で「やべ、レギュラー着地予定だったけど回りすぎてスイッチ着地だったからSWB5打って元に戻そう」レベルにします。

TOEICの点数は最終目標ではないけど、TOEIC試験に不慣れで点数落ちるのは悲しいので、TOEIC対策単語集「新TOEIC TEST 出る単特急 金のフレーズ」と、テスト慣れとして「OEICテスト新公式問題集」をやって慣らします。

あと気分転換にUmanoっていう英語ニュース配信アプリで英語ニュース聞きます。Umanoの良い所。英語ニュースって言ってもアメリカの政治経済ニュースなんてどうでもいいや、って感じだけど、Umanoは「私がappleを嫌いな10の理由」とか「あなたの人生を豊かにする10の方法」とか「一眼レフを使ったいい写真の撮り方」とか、日本のネットニュースサイトで人気(炎上)しそうなネタを英語で読んでくれるので楽しいし、タイトルから内容もなんとなく予想がつくので英語聞き取れなくてもそれなりに分かります。

終わり。

「Windowsインフラ管理者入門」読了

先輩が本を書いたので買いました。

感想

Windowsインフラ系技術について、最新のトレンドを踏まえて書かれていた技術本でした。Windowsインフラに関する所は全部網羅しているWindows専門書。逆に言うと、インフラ系でMSが他社よりシェア取れてない所、例えば仮想化ならvSphere・クラウドならAWSなど解説していないので、最新のIT技術の本ってよりは、MS社の製品についてとにかく解説した本。少しの専門用語なら解説なしで進んでいるので、全くの素人が読むのは辛いかな。MS社製品を主担当として2,3年目とか、今まで別OSメインで管理していたけど部署異動したらMS製品が多かったとか、そういう人にお勧めです。

一番大事なこと

現場での暗黙知が記載してあること。技術本やメーカーマニュアルは「◯◯という製品には××という機能があって、△△が実現できます」って書いてあるんだけど、実際にはそれを実現するのに前提条件が必要だったり、検証が大変だったり、運用コストがかかったりします。例えば「バックアップソフトはちゃんとリストアできるかどうかが選択の鍵」とか。

で、そんなのは長いこと現場やってる技術者は知ってたりするんだけど、暗黙知すぎて後輩に伝えるのを忘れる。だからこの本の使い所って、新人エンジニアにベテランエンジニアが技術教える時に読み返して「そういえばこの技術はこういう所でハマるな」ってのを思い出して、新人エンジニアに伝えるってのがアリだと思います。

逆に若い技術者がこの本を読んでももちろん役に立つんだけど、そういう暗黙知が書かれている部分を他と同じくらいの重要度で読んでしまうので、暗黙知には気づかないかも。けどまずはベースの知識がついてからってことで、成長して読み返した時に気づけばいいと思います。


正直、ひと通り読んだら後輩に譲ろうかなぁと思っていましたが、後輩に教える時に持ってると役に立つ本なので手放さずに持っておくことにします。

OpenSocial周りのWebの盛り上がりについて。

[前エントリ](http://prius.cc/d/20090627_opensocial-host.html)で
> 正直、参加者の大半が課題作れなかったのは意外だった。…と他人事のように書いて俺も出来なかったわけだがw、おそらく主催者のwillnetさんはこれくらい簡単にできると思ってたんじゃないかな?
と書いたわけだけど、これはマジで意外だった。
実は俺が思ってるより課題([こちら](http://d.hatena.ne.jp/willnet/20090626)を参照)が難しかったのかもしれないけど、やる事と言えば
1. Todoリストの完了ボタンにユニークなid属性を付与する
2. 完了ボタンを押すとid情報をJavaScript APIに渡し、Todo情報を削除するようにする
くらいだから、やはりこれくらいは簡単にできる想定だったんだろう。つまり**昨日の参加者はJavaScriptに不慣れだった**と勝手に決め付けて話を進めるが、俺は勉強会=ある程度は出来る人の集まりというイメージを持ってたし参加者もWeb系の人がほとんど(だったと思う)ので、この結果には驚いてしまったのである。という事で考察。
#### 1. 普段JavaScriptを書いてない人が興味を持ってる
まぁ俺ですが、普段Webアプリも作らないくせにmixiアプリに興味を持ってOpenSocial勉強会に参加した人。けどこれは少数派。会場に来てたと思われるWeb系の人はどうなの?となるが、Web系だからと言ってJavaScript書いてるとは限らないのである(学生時代のWeb系会社バイト経験より)。
参加者の中にドリコムの人がいて彼はバリバリmixiアプリ作ってそうだったけど、ドリコムは「なるべくJavaScriptを書かずmixiあぷりを作れるような」フレームワークを構築してるらしい。
実際俺も**「JavaScriptって書くの面倒っぽくてクライアント環境に依存する割に大したことできねーし」**と思って今まで勉強しなかったわけだし、Web系会社に勤めていても「毎日JS書いてます!」という人は少ないのかもしれない。
#### 2. 普段JavaScriptを書いている人が興味を持っていない
ポイントはこっちかな。毎日JS書いてそうなWeb上での有名人がOpenSocialに食いついてない気がする。これも勝手に考えると、
1. 技術的には面白くない
2. ソーシャルってのが気に喰わない
3. 検証環境を作るのが面倒。
のかなぁと。OpenSocialといってもmixiの情報使えるだけで後はJavaScriptで書くだけ。普段からJS使ってる人はあまり目新しいと思わないのかも。もう一つが、mixiアプリ作ってもmixiの中でしか使えないこと。俺は[このエントリ](http://prius.cc/d/20090515_mixiapp.html)で書いたとおり**友達が使ってくれるだけでもいいじゃん**と思うんだけど、Webアプリを作ってURL一発でリーチしてる人なら、mixiだけのためにアプリ作るなんてアホらしいのかもしれない。会員制サイト否定派も多いしねー。
最後はおまけだけど、いちいちファイルアップしてmixiアプリにアクセスするのが面倒という説。普段使ってる環境使えないとストレス溜まります。[OpenSocial Development Environment](http://mixiapp.rash.jp/wp/?p=15)は使えるけど、eclipseインストールするのめんどいという人もいる。
以上3つの理由で食いつきが悪いのかな、と思います。


そう考えると、mixiアプリの作成者属性ってiPhoneアプリ作成者と被るところはあるのかも。面白半分、利益半分。普通のWebアプリに比べて法人割合が高い。
ただ言えることは、現時点で**mixiアプリを自在に作れる人は少数**だということ。勉強会に来るメンバーがこのくらいの習熟度ということは、今のうちにノウハウ積み上げれば正式版スタートしてから手をつける人に差をつけることができるかも…!
### とはいえ
前途多難だなー。プラットフォームが不安定で検証もままならねーし、JavaScriptっていっても昔流行ったステータスバーの表示をちょろっと変えるレベルじゃないからね。実際、[この本](http://www.amazon.co.jp/JavaScript-%E4%B8%AD%E7%B4%9A%E8%AC%9B%E5%BA%A7-~Ajax%E3%82%92%E5%AD%A6%E3%81%B6%E5%89%8D%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/4774132349/ref=pd_sim_b_6)を120ページくらいまで読んだけど、mixiアプリのコード例で使われてる書式なんて全然出てきませんからね>< Web2.0時代のJavaScriptにはまだ遠いわー。

OpenSocial Host勉強会に行ってきたよーvv

26日(金)は第1回「[OpenSocial Host勉強会](http://atnd.org/events/819)」でした。
JavaScript初心者の俺ですが、OpenSocialに興味があったので参加してみました。…どのくらい初心者かというと**勉強会に参加決めてから初めてJSの参考書を買ったくらい**です。まぁ締切効果を利用してJS勉強できたので良かったっちゃあ良かった(ぉ
※参考:[OpenSocialというかmixiアプリは実は簡単に作れそうな話。](http://prius.cc/d/20090515_mixiapp.html “OpenSocialというかmixiアプリは実は簡単に作れそうな話。”)
ちなみにOpenSocialというのは今ベータテスト期間中の[mixiアプリ](http://developer.mixi.co.jp/appli)で採用されている技術で、これを学べば自分でmixiアプリを作って友達に使ってもらったり、PV増やして収益上げたりできるかもしれない。まだ知名度は低いけど、将来的にiモードみたいに一般的なものになる…かも?といった段階です。
### OpenSocial Hostとは?
今回はOpenSocial Host(以下OSH)の勉強会でした。OSHは[株式会社ハートレイルズ](http://www.heartrails.com/)さんが提供しているOpenSocailのアプリ開発を支援するサービス。
OpenSocialを作るためにはプログラムファイルを置くサーバが必要。けどレンタルサーバは有料だったりするので**OSHがファイル置き場を無料で提供します**、というのがまず1点(※)。とはいえ、普通のエンジニアはサーバの1つや2つ持ってるのでこれだけではメリットにならない。ポイントは外部サーバのDBに簡単に書き込みできるAPIを提供している事だと思う。
※ 無料プランで1アプリにつき100ファイル、1ファイル10MB、合計500MBまで。
### OpenSocialアプリと外部サーバの関係
仮にOpenSocialアプリ(mixiアプリ)で外部サーバにデータを保存しない場合でも、「永続化データ」という手法を使ってOpenSocial側(mixiのサーバ)にデータを保存することができます。ただこれが
1. データ保存個数が限られる。gooホームの場合、1アプリに付き10個までしか保存できない。
2. 同じアプリを入れてる人同士だと、お互いのデータが丸見え。
3. 永続化データはユーザー毎に独立した領域に保存される。
とめちゃくちゃキツい制約あり。
例えば閲覧者の住んでいる場所を取得して明日の天気を返すだけのアプリならいいけど、日記アプリを作ろうとすると、
1. 11個以上日記が書けない。
2. 秘密の日記が書けない
3. コメントの実装が大変でシステムリソースを食う。
となる。3については「永続化データはユーザー毎に独立した領域に保存される」制約が作用していて、例えばAさんの日記にBさんがコメントをつけたとしても、そのコメントはAさんのデータ領域に保存されない。つまり**Aさんの日記にコメントがついているかどうか調べるために、Aさんのマイミク(で日記アプリ使ってる人)を全員調べないといけない。**日記一覧を表示してコメント数を表示するだけでも、大変なりソースを消費してしまうわけで。
んじゃ外部サーバにデータ保存するしかないよね、って話になるけど、OpenSocailアプリからのデータを受信するプログラムを別途書いたりしないといけないのでJS以外の知識も必要になる。
### そこでOpenSocial Host
OSHならJavaScript API(※)でOSHのサーバにデータを書き込めてしまう。しかもデータに細かい権限設定ができるので秘密の日記なども作成可能。加えてアクセス解析機能も充実していて、例えばユーザーID単位でPV/UU集計できるので**「あいつにアプリ紹介してやったのに全然見てねーわ」**とかも分かっちゃう><
※ API使用回数:5,000,000回/月まで無料
OSHを使ったデモとして[円グラフ日記](http://platform001.mixi.jp/view_appli.pl?id=3045)を見せてもらいました。簡単そうに見えますが、最新の円グラフは永続化データで保存してHOMEビューに表示、円グラフについたコメントはOSHに保存という作りで開発には1週間かかったみたい。ただデータ保存部分をOSHで代用しなければもっと長くかかったんじゃないかな?と思います。
あと(なんでもそうですが)1個作れば使いまわして類似アプリを作れるので苦労するのは最初だけ!早いとこ自分の”フォーム”を確立しないとなーと思いました。
### OpenSocial Hostで何か作ってみよう!
残り時間でOSHを使ったmixiアプリを作ってみよう!ということで、参加者みんなでOSHに登録した後、[id:willnet](http://d.hatena.ne.jp/willnet/)さんの用意した[雛形](http://d.hatena.ne.jp/willnet/20090626)を使ってmixiアプリ登録→ちょこっと改造という流れ。
…だが「ボタンを押したらTodoリストを消す」という最初の課題もできない。いーよいーよ、どうせJS始めたててでDOMとかも分かってねーし(その割には各Todoにidを付与するとこまではできた)とふて腐れてたんだが、1時間経って課題を作れた参加者は2名だけでしたとさ。うーん。ここらへんは次のエントリあたりで補足予定→[補足した。](http://prius.cc/d/20090627_opensocial.html)
### OpenSocial Host 今後の予定
* mixiモバイル対応:7月末~8月頭目標。PCもモバイルも”なるべく”同じソースを使えるように検討中。
* データベース/ログのインポート/エクスポート機能
* JavaScriptAPIの拡充
** 複数コンテナ(mixi⇔goo⇔orkut)/アプリケーション間の連携支援API
** 写真や動画などのマルチメディアファイルの投稿/取得API
* アプリの雛形となるソースの提供


### 感想いろいろ
#### まずはOSHの感想から。
正直外部サーバにデータ保存するところまでmixiアプリ作れてなかったのでOSHに興味なかったけど、永続化データの制約知った+登録簡単ですぐに使い始められるOSHはなかなかいいなぁと思いました。
あとは雛形のソースコードを充実させてほしいかな。。。例えば、普通の人がmixiアプリ作って外部サーバにデータ保存しようとした場合、まず[mixi Developer Center](http://developer.mixi.co.jp/appli/pc/lets_enjoy_making_mixiapp/require_servers “mixi Developer Center (ミクシィ デベロッパーセンター) ≫ 外部サーバを呼び出してみよう”)見たり、実際にソース公開してる人探したりすると思います。
参考:[mixiアプリからの署名付きリクエストの受け側を作る – プログラマー、再起動中](http://d.hatena.ne.jp/naoto5959/20090526/1243348685)
んで、そのやり方で作れちゃうとOSHイラネってなってしまうので、OSHを使ったmixiアプリのソースを解説付きで公開してくれるとありがたいです。**まぁ僕が参考にしたいだけなんですけどね!**
その他。
* アクセス解析はいいなぁと思いました。自分で実装するの面倒だしこれに慣れるとOSHから離れられないとかありそう。有料プランなら時間も取れるとか機能強化もできるし。
* GoogleAppEngineでmixiアプリできるよーvvという記事がいくつか上がってるので、圧倒的なブランド力に押されてtwitterに対するもごもご/wassr的な位置づけにならないか心配です。
#### OpenSocial周りのWebの盛り上がりについて。
これは[次のエントリ](http://prius.cc/d/20090627_opensocial.html)で。
#### 初めての勉強会感想
オフ会の延長線って感じかな。違うのは、仲良くするのが目的じゃなく勉強/情報交換がメインなこと。例えば
* 出欠確認なし
* 参加者同士の自己紹介はなし
* 名札なし
* 名刺交換なし
って感じ。昨日だけでは判断できないけど、技術で会話するエンジニアにとってはオフ会よりやりやすい…かもしれません。けど正直1人参加は勇気がいるね。オフ会と違って普段からネットで仲良くしてる人って訳じゃないし、行ったら行ったで内輪気味な会かもしれない(昨日は違ったけど)。例えば参加者のブログ読んどいて「あの記事面白かったですね!」からきっかけ作ればいいけど、なかなかタイミングがないし(そもそもお互いの名前知らない)。
やっぱり懇親会なのかな?技術レベルが違いすぎる+Web系の人ばっかりっぽかった(私服多かった)ので参加しなかったけど、そういう所で仲良くなれれば次へのきっかけになるかもしれない…と**帰ってから思った。**例えばmixiアプリ作ってる人とブログやtwitterで交流する→勉強会で初顔合わせなら盛り上がったかもしれないなー。
課題出来なかった事も含めてやや不完全燃焼でしたが、mixiアプリと合わせてOSHの情報も追っかけていきたいと思います。

RMagick 2.9.0 for Windows インストール時の注意点。

■結論RMagick 2.9.0(に同梱されているImageMagick)を使用するには、Visual C++ 2008のランタイムが必要である。ImageMagick本家のフォーラムVisual C++ 2008のダ…

■結論

RMagick 2.9.0(に同梱されているImageMagick)を使用するには、Visual C++ 2008のランタイムが必要である。


ということで、rubyで画像ファイルを生成できるRMagickというのがあるらしいので使ってみた。

■インストール

  1. RubyForge: RMagick: Project InfoからRmagickをダウンロード
  2. バイナリのImageMagickをインストール。ImageMagick-6.4.8-6-Q8-windows-dll.exeみたいなやつ。
  3. ダウンロードしたディレクトリに移動して、「gem install rmagick-2.9.0-x86-mswin32.gem」を実行。

ERROR: Error installing rmagick-2.9.0-x86-mswin32.gem:

rmagick requires Ruby version >= 1.8.5

おっと、rubyのバージョンが古かったようだw 本家よりダウンロードしてアップデート。

■そして嵌った。

どうやらRmagickのインストールは結構難しいらしい。

RMagick のインストール – まゆの日記

インストールで失敗するという噂の RMagick を入れてみようと思います。

Windows版は比較的簡単らしいが、冒頭のようにVC++が入ってないとエラーになるとかいろいろ躓きポイントあり。

RMagickをインストールしてみる(Windows) | Katawara.*

あと一番嵌ったのが間違ったテストコードを使っていたこと。

require ‘rubygems’

require ‘RMagick’

だけではダメで、3行目に

include Magick

が必要だったんですね。どんなバージョン組み合わせてもエラーが出て半日くらい嵌ってました。

※俺のruby知識のなさが証明された。

■使ってみる

【ruby】【RMagick】WEB2.0的なロゴを作る | earth

このページのテストコードが一番分かりやすかった。元ネタはここだと思いますが。その他、rubyで画像処理をするならモテる Ruby! – Ruby会議 2007 – 川o・-・)<2nd lifeが詳しい。


なぜこういう勉強をしているかというと、僕が重宝しているWebサービスのうちの一つ、雨量・雷観測情報のデータを解析したいからである。このリンクが東京都の雨量情報なのだが残念ながら携帯に対応していない。

そこで画像データを取得して携帯で見れるくらいに変換してやる。雨が降っていると地図上に青や紫の点が表示され、その間隔は毎回同じ。つまり青や紫の点の位置を特定して位置と紐付けてやれば、「○○市で○mmの雨」というデータが取得できるわけだ。

取りあえず今日はインストールだけで疲れたのでここまで。