Home > 仕事
仕事 Archive
OpenSocial周りのWebの盛り上がりについて。
正直、参加者の大半が課題作れなかったのは意外だった。…と他人事のように書いて俺も出来なかったわけだがw、おそらく主催者のwillnetさんはこれくらい簡単にできると思ってたんじゃないかな?
と書いたわけだけど、これはマジで意外だった。
実は俺が思ってるより課題(こちらを参照)が難しかったのかもしれないけど、やる事と言えば
- Todoリストの完了ボタンにユニークなid属性を付与する
- 完了ボタンを押すと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に食いついてない気がする。これも勝手に考えると、
- 技術的には面白くない
- ソーシャルってのが気に喰わない
- 検証環境を作るのが面倒。
のかなぁと。OpenSocialといってもmixiの情報使えるだけで後はJavaScriptで書くだけ。普段からJS使ってる人はあまり目新しいと思わないのかも。もう一つが、mixiアプリ作ってもmixiの中でしか使えないこと。俺はこのエントリで書いたとおり友達が使ってくれるだけでもいいじゃんと思うんだけど、Webアプリを作ってURL一発でリーチしてる人なら、mixiだけのためにアプリ作るなんてアホらしいのかもしれない。会員制サイト否定派も多いしねー。
最後はおまけだけど、いちいちファイルアップしてmixiアプリにアクセスするのが面倒という説。普段使ってる環境使えないとストレス溜まります。OpenSocial Development Environmentは使えるけど、eclipseインストールするのめんどいという人もいる。
以上3つの理由で食いつきが悪いのかな、と思います。
そう考えると、mixiアプリの作成者属性ってiPhoneアプリ作成者と被るところはあるのかも。面白半分、利益半分。普通のWebアプリに比べて法人割合が高い。
ただ言えることは、現時点でmixiアプリを自在に作れる人は少数だということ。勉強会に来るメンバーがこのくらいの習熟度ということは、今のうちにノウハウ積み上げれば正式版スタートしてから手をつける人に差をつけることができるかも…!
とはいえ
前途多難だなー。プラットフォームが不安定で検証もままならねーし、JavaScriptっていっても昔流行ったステータスバーの表示をちょろっと変えるレベルじゃないからね。実際、この本を120ページくらいまで読んだけど、mixiアプリのコード例で使われてる書式なんて全然出てきませんからね>< Web2.0時代のJavaScriptにはまだ遠いわー。
Web拍手/はてブ/Tweetボタン
下のボタンを押すと拍手を送ることができます。同時にメッセージも送れます。はてブはこちら。
Tweet
- Comments: 2
- Trackbacks: 0
OpenSocial Host勉強会に行ってきたよーvv
26日(金)は第1回「OpenSocial Host勉強会」でした。
JavaScript初心者の俺ですが、OpenSocialに興味があったので参加してみました。…どのくらい初心者かというと勉強会に参加決めてから初めてJSの参考書を買ったくらいです。まぁ締切効果を利用してJS勉強できたので良かったっちゃあ良かった(ぉ
※参考:OpenSocialというかmixiアプリは実は簡単に作れそうな話。
ちなみにOpenSocialというのは今ベータテスト期間中のmixiアプリで採用されている技術で、これを学べば自分でmixiアプリを作って友達に使ってもらったり、PV増やして収益上げたりできるかもしれない。まだ知名度は低いけど、将来的にiモードみたいに一般的なものになる…かも?といった段階です。
OpenSocial Hostとは?
今回はOpenSocial Host(以下OSH)の勉強会でした。OSHは株式会社ハートレイルズさんが提供しているOpenSocailのアプリ開発を支援するサービス。
OpenSocialを作るためにはプログラムファイルを置くサーバが必要。けどレンタルサーバは有料だったりするのでOSHがファイル置き場を無料で提供します、というのがまず1点(※)。とはいえ、普通のエンジニアはサーバの1つや2つ持ってるのでこれだけではメリットにならない。ポイントは外部サーバのDBに簡単に書き込みできるAPIを提供している事だと思う。
※ 無料プランで1アプリにつき100ファイル、1ファイル10MB、合計500MBまで。
OpenSocialアプリと外部サーバの関係
仮にOpenSocialアプリ(mixiアプリ)で外部サーバにデータを保存しない場合でも、「永続化データ」という手法を使ってOpenSocial側(mixiのサーバ)にデータを保存することができます。ただこれが
- データ保存個数が限られる。gooホームの場合、1アプリに付き10個までしか保存できない。
- 同じアプリを入れてる人同士だと、お互いのデータが丸見え。
- 永続化データはユーザー毎に独立した領域に保存される。
とめちゃくちゃキツい制約あり。
例えば閲覧者の住んでいる場所を取得して明日の天気を返すだけのアプリならいいけど、日記アプリを作ろうとすると、
- 11個以上日記が書けない。
- 秘密の日記が書けない
- コメントの実装が大変でシステムリソースを食う。
となる。3については「永続化データはユーザー毎に独立した領域に保存される」制約が作用していて、例えばAさんの日記にBさんがコメントをつけたとしても、そのコメントはAさんのデータ領域に保存されない。つまりAさんの日記にコメントがついているかどうか調べるために、Aさんのマイミク(で日記アプリ使ってる人)を全員調べないといけない。日記一覧を表示してコメント数を表示するだけでも、大変なりソースを消費してしまうわけで。
んじゃ外部サーバにデータ保存するしかないよね、って話になるけど、OpenSocailアプリからのデータを受信するプログラムを別途書いたりしないといけないのでJS以外の知識も必要になる。
そこでOpenSocial Host
OSHならJavaScript API(※)でOSHのサーバにデータを書き込めてしまう。しかもデータに細かい権限設定ができるので秘密の日記なども作成可能。加えてアクセス解析機能も充実していて、例えばユーザーID単位でPV/UU集計できるので「あいつにアプリ紹介してやったのに全然見てねーわ」とかも分かっちゃう><
※ API使用回数:5,000,000回/月まで無料
OSHを使ったデモとして円グラフ日記を見せてもらいました。簡単そうに見えますが、最新の円グラフは永続化データで保存してHOMEビューに表示、円グラフについたコメントはOSHに保存という作りで開発には1週間かかったみたい。ただデータ保存部分をOSHで代用しなければもっと長くかかったんじゃないかな?と思います。
あと(なんでもそうですが)1個作れば使いまわして類似アプリを作れるので苦労するのは最初だけ!早いとこ自分の”フォーム”を確立しないとなーと思いました。
OpenSocial Hostで何か作ってみよう!
残り時間でOSHを使ったmixiアプリを作ってみよう!ということで、参加者みんなでOSHに登録した後、id:willnetさんの用意した雛形を使ってmixiアプリ登録→ちょこっと改造という流れ。
…だが「ボタンを押したらTodoリストを消す」という最初の課題もできない。いーよいーよ、どうせJS始めたててでDOMとかも分かってねーし(その割には各Todoにidを付与するとこまではできた)とふて腐れてたんだが、1時間経って課題を作れた参加者は2名だけでしたとさ。うーん。ここらへんは次のエントリあたりで補足予定→補足した。
OpenSocial Host 今後の予定
- mixiモバイル対応:7月末~8月頭目標。PCもモバイルも”なるべく”同じソースを使えるように検討中。
- データベース/ログのインポート/エクスポート機能
- JavaScriptAPIの拡充 ** 複数コンテナ(mixi⇔goo⇔orkut)/アプリケーション間の連携支援API ** 写真や動画などのマルチメディアファイルの投稿/取得API
- アプリの雛形となるソースの提供
感想いろいろ
まずはOSHの感想から。
正直外部サーバにデータ保存するところまでmixiアプリ作れてなかったのでOSHに興味なかったけど、永続化データの制約知った+登録簡単ですぐに使い始められるOSHはなかなかいいなぁと思いました。
あとは雛形のソースコードを充実させてほしいかな。。。例えば、普通の人がmixiアプリ作って外部サーバにデータ保存しようとした場合、まずmixi Developer Center見たり、実際にソース公開してる人探したりすると思います。
参考:mixiアプリからの署名付きリクエストの受け側を作る – プログラマー、再起動中
んで、そのやり方で作れちゃうとOSHイラネってなってしまうので、OSHを使ったmixiアプリのソースを解説付きで公開してくれるとありがたいです。まぁ僕が参考にしたいだけなんですけどね!
その他。
- アクセス解析はいいなぁと思いました。自分で実装するの面倒だしこれに慣れるとOSHから離れられないとかありそう。有料プランなら時間も取れるとか機能強化もできるし。
- GoogleAppEngineでmixiアプリできるよーvvという記事がいくつか上がってるので、圧倒的なブランド力に押されてtwitterに対するもごもご/wassr的な位置づけにならないか心配です。
OpenSocial周りのWebの盛り上がりについて。
これは次のエントリで。
初めての勉強会感想
オフ会の延長線って感じかな。違うのは、仲良くするのが目的じゃなく勉強/情報交換がメインなこと。例えば
- 出欠確認なし
- 参加者同士の自己紹介はなし
- 名札なし
- 名刺交換なし
って感じ。昨日だけでは判断できないけど、技術で会話するエンジニアにとってはオフ会よりやりやすい…かもしれません。けど正直1人参加は勇気がいるね。オフ会と違って普段からネットで仲良くしてる人って訳じゃないし、行ったら行ったで内輪気味な会かもしれない(昨日は違ったけど)。例えば参加者のブログ読んどいて「あの記事面白かったですね!」からきっかけ作ればいいけど、なかなかタイミングがないし(そもそもお互いの名前知らない)。
やっぱり懇親会なのかな?技術レベルが違いすぎる+Web系の人ばっかりっぽかった(私服多かった)ので参加しなかったけど、そういう所で仲良くなれれば次へのきっかけになるかもしれない…と帰ってから思った。例えばmixiアプリ作ってる人とブログやtwitterで交流する→勉強会で初顔合わせなら盛り上がったかもしれないなー。
課題出来なかった事も含めてやや不完全燃焼でしたが、mixiアプリと合わせてOSHの情報も追っかけていきたいと思います。
Web拍手/はてブ/Tweetボタン
下のボタンを押すと拍手を送ることができます。同時にメッセージも送れます。はてブはこちら。
Tweet
- Comments: 0
- Trackbacks: 2
早起きの意外な効用
骨折から復帰して以降、早起きして早く会社に来るようにしています。
元々早起きを始めた理由が
- どうせ入院中は消灯早いんだから、この機会に早起き体質にしようと思った。
- 骨折して迷惑かけたから、1つくらいパワーアップして職場復帰したかった。
- 成長ホルモンは午後10時~午前2時に分泌されるので、早寝早起きすると骨折が早く治ると思った。
と、環境依存と贖罪と治療のためだったのですが、職場復帰して早起きの意外なメリットを感じています。
1.お客さんに挨拶しやすい
契約の関係でお客さんの方が早く出社して仕事を始めているので、僕らが出社するときになんとなーく挨拶し辛い雰囲気でした。しかし、こちらが早く出社するとお客さんもまだ一息ついてる状態なので挨拶しやすい。というか、逆に挨拶しないと不自然。
2.寝坊・二度寝しても大丈夫
起きなきゃいけない時間の2時間前くらいに起きているので、2時間寝坊しても大丈夫。起きて体調悪けりゃ二度寝します。こりゃ楽ちん。
3.出発する時の気の持ちようが違う。
これは意外な効果なのですが…。
今まではギリギリ間に合う時間に家を出ていて、出社時間の誤差は5分くらい。ほぼ決まった時間に家を出てました。今は朝早く起きて、用事を片付けつつキリが良い所で出社してます。だから毎日の出社時間はまちまちで誤差30分くらい。時間だから行かなきゃ(やらされてる感じ)とそろそろ行くか(自分の意志で)の違い。出発する時の気の持ちようが違う。抽象的だけど、朝から気持ちがいいです。
そんな感じで、復帰2週間目もまだ早起き維持できてます。まぁ夜更かしは楽しいけどね。朝6時に起きてスパスパ仕事するのも楽しいよ。
Web拍手/はてブ/Tweetボタン
下のボタンを押すと拍手を送ることができます。同時にメッセージも送れます。はてブはこちら。
Tweet
- Comments: 0
- Trackbacks: 0
RMagick 2.9.0 for Windows インストール時の注意点。
■結論
RMagick 2.9.0(に同梱されているImageMagick)を使用するには、Visual C++ 2008のランタイムが必要である。
ということで、rubyで画像ファイルを生成できるRMagickというのがあるらしいので使ってみた。
■インストール
- RubyForge: RMagick: Project InfoからRmagickをダウンロード
- バイナリのImageMagickをインストール。ImageMagick-6.4.8-6-Q8-windows-dll.exeみたいなやつ。
- ダウンロードしたディレクトリに移動して、「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 を入れてみようと思います。
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の雨」というデータが取得できるわけだ。
取りあえず今日はインストールだけで疲れたのでここまで。
Web拍手/はてブ/Tweetボタン
下のボタンを押すと拍手を送ることができます。同時にメッセージも送れます。はてブはこちら。
Tweet
- Comments: 0
- Trackbacks: 0
Ubuntu8.10をデュアルディスプレイにしようとして苦労する(未解決)
Ubuntuにも大分慣れて来たのでデュアルディスプレイに挑戦してみました。
WindowsではM2A-VM HDMIのオンボードVGAとUSB-RGBを使ってデュアルディスプレイを構築してたけど、UbuntuでUSG-RGBは使えなさそうなので新しくグラフィックボードを購入しました(WindowsとUbuntuはデュアルブート)。選んだのはRH3450-LE256H/HS。ローエンドだけどゲームとか興味ないので出力すればそれでよし。
■ここからありのままに起こったことだけを書くと…
1.まずはWindowsで認識させる。
RH3450-LE256H/HSを挿してWindowsを起動したところオンボードVGA側からの出力がされずハードウェアとしても認識されない。ここでBIOSを調べたところPCIExpressが優先させる設定となっていた。今までになにも挿さってなかったPCIExpressスロットにRH3450-LE256H/HSを挿したことで、オンボードVGAデバイスが無視されるようになったと推測。オンボードVGAを優先させるよう変更したところ、VGAデバイス、PCIExpressの両方から出力され、2つのVGAデバイスが認識されるようになった。成功。
2.Ubuntuで認識させる。
これで起動したところ、Xが起動せずCUIモードのログイン画面が出力された。startxと入力しても"デバイスが見つからない"と表示される。ここで、元のBIOS設定(PCIExpressを優先)に戻して起動したところ、PCIExpressから出力され、オンボードVGAからは出力されなかった。
- RH3450-LE256H/HSを挿す前はオンボードVGAから出力されていた
- RH3450-LE256H/HSを挿した後はRH3450-LE256H/HSから出力された
以上より、ハードウェア側に問題はないと判断し、Ubuntuの設定を見ていく事にした。
■Xorg.confを設定
Xが起動しない、ということはXorg.confの設定に問題があると踏み調査。といっても知識がなくxorg.confをデフォルトに戻したりするだけで全然解決しない。こうなったら!で別パーティションにもう一つUbuntu8.10をインストールしてそこから設定ファイルを取り出す事にした。オンボードVGAが優先されるBIOSでOSインストールを行えば、その状態にあった設定ファイルが生成されるはず。
ちなみに以下はUbuntuでデュアルディスプレイに成功しているリンク集。
- Ubuntu Weekly Recipe:第48回 デュアルディスプレイを使う|gihyo.jp … 技術評論社
- デュアルディスプレイ設定 – ひげぽん OSとか作っちゃうかMona-
- ubuntu 8.04 でATIのドライバを使ってデュアルディスプレイ環境を作る!→うまく行ってない – Mattari Memo
- おれ最前線ねっと – デュアルディスプレイ設定 – xorg.conf
■Ubuntu8.10インストール
パーティションを切ってUbuntu8.10インストール→起動したところ、オンボードVGAが優先されるBIOSでXが正常起動しました。ほーら!思った通りじゃん!早速xorg.confを確認したところ…ん?さっきの設定と同じだぞ…。
ここで、制限付きグラフィックドライバ(※1)を導入するか問うアラートが上がったので見てみると…お!2つのVGAデバイスが認識されてる!(※2)ここでドライバをインストールして再起動するとデュアルディスプレイになるかな!?⇒残念ながらXが起動しなくなりました。
その後、BIOSをPCIExpress優先にするとXが起動するあたり最初にインストールしていたUbuntuと全く同じ症状。制限付きドライバを使わないよう設定を戻しても症状は治りません。今は3つ目のUbuntuをインストールして、次に行う検証を考えてます。
※1 UbuntuではデフォルトでOS提供のドライバを使うが、NVIDIAやATIが提供する非オープンソース(=制限付き)のドライバを使うことも出来る。後者の方が性能は上だが、オープンソース信奉者の中には嫌がる人もいる。
※2 これは制限付きドライバのインストール選択画面でドライバの選択肢が2つ上がったため、2つのVGAデバイスに別々のドライバを適用する=2つのVGAデバイスが認識できているものと思った。しかし、3つ目のUbuntuではこの画面で1つしかドライバが表示されず、詳細は不明。
■まとめ
・BIOSでPCIExpress優先にした場合
| _ | オンボードVGA | RH3450-LE256H/HS |
|---|---|---|
| WindowsXP | × | ○ |
| Ubuntu(制限付きドライバ導入前) | × | ○ |
| Ubuntu(制限付きドライバ導入後) | × | ○ |
これはハードウェアレベルでオンボードVGAが無視されている。OSの設定で解消するのは難しい。
・BIOSでオンボードVGA優先にした場合
| _ | オンボードVGA | RH3450-LE256H/HS |
|---|---|---|
| WindowsXP | ○ | ○ |
| Ubuntu(制限付きドライバ導入前) | ○ | × |
| Ubuntu(制限付きドライバ導入後) | △(X起動せず) | × |
制限付きグラフィックドライバを一度導入しただけで、Xが起動しなくなる。
- 制限付きグラフィックドライバ導入前、OS側で2つのVGAデバイスが存在することは認識している…と思う。
- 制限付きドライバを導入すると、なんらかの動作(競合とか?)が働いてXが起動しなくなる。ログには"デバイスが見つからない"と表示されるが詳しいことは追えてない。
- 「制限付きドライバを使用しない」に設定してもXが起動しないのは、一度制限付きドライバをダウンロード→保存してしまっているためX起動時にチェックを行いエラーとなっている?
- あるいは設定ミスで、まだ制限付きドライバが使われているのかも?
以上の事が推測される。次に行う検証項目は以下の通り。
1.ドライバ導入前OS・後OSの差分を取得するためのfind,diff書式
現在、制限付きドライバ導入前のUbuntuと導入後のUbuntuが存在するので、それらの差異を確認する。そのためにfindで全ファイルを出力しdiffで差異を出力したい。
2.ドライバ保存場所特定
Ubuntuが一般的にダウンロードしたドライバをどこに保存するのか調べる。そのファイルを消せば「制限付きドライバ導入後」⇒「制限付きドライバ導入前」の状態に戻せるかもしれない。今後の検証を考えると"何かあったときに戻せる"というのは重要である。
3.制限付きドライバ導入前状態で、xorg.confをデュアルディスプレイ稼動するよう書き換えてみる。
制限付きドライバ導入前の状態ではオンボードVGAが表示できる。ということは、xorg.confの設定次第でデュアルディスプレイ設定が可能!?aticonfigというコマンドでATIチップに合ったxorg.confを生成してくれるみたいなので試してみる。ATIのドライバ導入してないと無理かなぁ…。
4.KDE試してみる
GNOMEでテストしてるけどKDEはどうなんだろう?
5.RH3450-LE256H/HSを抜いてオンボードVGA優先BIOSで起動してみる
Xが起動しないのがBIOS設定のせいではない事を確認。
6.grub.confの設定方法
今回の問題とは別件だが、たくさんUbuntuをインストールしたらGRUBの画面に選択肢が増えてしまったので削除したい。あと、最後にインストールしたUbuntuを消去したときGRUBがどうなるのか動きを確認しないと。
とにかく、ちょっとトライ&エラーで足元がおぼつかないので腰すえてログ見ようかな、と思います。
Web拍手/はてブ/Tweetボタン
下のボタンを押すと拍手を送ることができます。同時にメッセージも送れます。はてブはこちら。
Tweet
- Comments: 2
- Trackbacks: 0
ホーム > 仕事



