2010年3月10日

TextMateの設定メモ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

はじめまして、 1月から入社した市丸です。

入退社にあたり開発環境を1から作り直すこととなり、久しぶりにTextMateの設定をやり直しました。
その際、役立ったリンクとPHP開発で使う際のオススメ設定など、私的なメモかもしれませんが、ご紹介いたします。

マルチバイト対応のVer.2が出るといってはや2〜3年。このまま消えてしまうのか...
もう一度TextMateの特徴をまとめたいと思います。

TextMateの特徴(2010/03現在)

  • 日本語はUTF-8のみ
  • 半角カナが判別しにくい
  • NFS経由でプロジェクトを作ると重い。(50個ぐらいなら快適)
  • 次期バージョンアップがこない
  • $55

基本的にマルチバイト関係があやしいです。
以下にオススメの設定方法を記載します。

1. 日本語フォント入れる。

http://d.hatena.ne.jp/hetima/20061102/1162435711
配布サイト

http://t32k.com/mol/2009/08/textmate-japanese/
解説わかりやすい

2. 日本語入力のFix

http://hetima.com/textmate/index.html
配布サイト

3. 日本語入力時に誤動作するSnippetをオフに

Bundles -> BundleEditor -> ShowBundleEditorからBundleEditorを開く
textmate_snap.png

HTML -> Spesial: Return Inside Empty Open/Close Tag
Activationの右の入力ボックスを選択し×
※日本語入力の決定Enterが反応するため

4. 全角スペースの色を変える

http://blog.asial.co.jp/506
ほんとに助かりました。

5.SvnMateまたはProjectPlusを入れる

http://ciaranwal.sh/category/textmate
私はSvnMateを利用しています。

インストール方法

cp -r SVNMate.tmplugin ~/Library/Application\ Support/TextMate/PlugIns/

以上です。
Ver2待ちの皆様。なんとか凌ぎましょう。


ウノウでは特に最近、積極的にエンジニアを採用しています。
採用ページをご覧になり興味のある方、ぜひご応募ください。
Find Job!でも募集してます!

2010年3月 8日

日本と海外の携帯や携帯コンテンツ市場について色々(個人的)な感想
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

はじめまして、1月入社のBrandonと申します。
シンガポール出身で日本ではまだ一年ほどしか働いた経験がないので、
もし日本語で変なところがあったらお許しください。(ご親切にご指摘頂ければさらに幸いです)。

入社したら周りがすごい人達ばかりで、もともと自分がまだまだだなーと思っていたとこをさらにまだまだだなーと思わせる人たちばかりです。
一応エンジニアですが、エンジニア経験はないに等しいもので、このブログを読んでいる人たちに技術系の話をしたら失礼な気がします。
とは言うものの、近いうちに技術系の話はしたいと思っています。
(教えるという立場より、ご指導や意見を頂ければという立場、もしくは教え合おうという立場から)
でも今日は日本と海外の携帯市場についてのちょっとした感想というか、思いついたことの小まとめをみんさんとシェアしたいと考えております。
あくまでも個人的な感想ですので、ただ一人の人間の意見として読んで頂けたらと思います。

長年シンガポールに住んでいたので、海外携帯市場の認識はシンガポールにいる携帯ユーザーの観点的なところもあったりすると思いますが、携帯に関しては日本以外の国はほとんど似ていると思いますので、地域や国によって違いが多少あっても肝心なところに大きな違いはないかと思います。
それと、近年携帯市場の変化はiPhoneが中心になっているようなものなので(特に海外では)、iPhoneがリリースされた前とiPhoneがリリースされた後の段階に分けた形でまとめたいと思います。


iPhoneがリリースされる前

日本と海外の携帯市場は「携帯のみコンテンツ」と「定額プランの違い」のところで決定的な違いがあります。

海外では、携帯のみコンテンツ(コンテンツ)が日本より遥かに少ない。ほとんどないに等しいレベルだったでしょう。
日本と違って、海外ではパケット放題プランがあまりなかった。あるとしてもほとんどが月額のかなり高いプランになってしまいます。
一般の人達が携帯で使うのは、電話とSMS(短信)だけです。
短信はメールと違って、データで料金が計算されるのではなく、メッセージ数で料金が決まるので、データとは何の関わりもない機能です。
情報を調べる時やコンテンツを消費する時はほとんどみんながパソコンや他の媒体などを使用するシチュエーションが多いです。

日本ではほとんど逆な状況になっています。
海外の人からみたら、日本の携帯のみコンテンツは信じられないほどありすぎると感じるでしょう。
一般の人達が情報やコンテンツを消費する時は、携帯を使うシチュエーションが多いです。
逆に一般の人達の中でパソコンが使える人が少ないです。
3年前の事になりますが、私の友達に慶応大学の3年生がいて、その人がMS Wordの基本的な使い方すら完全に知らなかったです(起動の仕方やコピペのやりかたさえわからなかった)。
正直ショックでした。


iPhoneがリリースされた後:海外

ところが、iPhone(特にiPhone 3G)がリリースされてからは海外の携帯市場が急激に変化しました。
iPhoneが出る前からもスマートフォンはありましたが、
iPhoneの使い心地や使いやすさは今までのスマートフォンとレベルが違うものでした。
実際に使ってみたことある人は実感できるでしょう。
(私の場合は、Palm Treo使っていましたが、友達のWindows Mobileスマートフォンとかをいじらせて貰ったこともありまして、iPhoneとは比べ物にならないほど使い心地が悪かった)
今まで殆どはビジネスマンとかしか使わないスマートフォンでしたが、
iPhoneが出てからは一般の人達も使うようになりました。

私からみれば、携帯市場に一番インパクトを与えたのはiPhone 3Gのリリースです。
iPhone 3Gで大きく変わったところ:

スマートフォン所有コストの低下
今までのスマートフォンは、2年契約を結んだ上で機種代が(日本円で言えば)6万円〜10万円ぐらいはするものでした。ところが、iPhone 3Gが当時市場に出ているスマートフォンの半分以下の値段でした(2年契約付きで機種代が実質2~4万円)。定額データ通信料も今までのプランより安いプランが出ました。今まで非スマートフォンより遥かに高かったスマートフォンは突然同じぐらいの値段で買えるようになりました。

(ある意味)「携帯向け」ウェブコンテンツの増加
海外では携帯端末に制限された「携帯のみのサイト」があまりなくて、携帯端末がアクセスするコンテンツはPCと同様のウェブコンテンツが多いです。海外での「携帯向け」サイトのほとんどは「携帯に表示を最適しただけ」のサイトです。インターネットのサイトは普通にスマートフォンで見れて、「携帯向け」サイトも普通にスマートフォンや携帯で見れます。

iPhoneが市場に出る前に携帯でウェブコンテンツをアクセスすることがそれほどブームしていなかたのは、定額データ通信料のコストやスマートフォンの使い心地の悪さが主な原因でした。
しかしiPhoneがリリースされたことで、携帯でウェブコンテンツをアクセスする使い心地が一気によくなり、携帯からウェブコンテンツへのアクセスが爆発的に増えました。

その上に、iPhone向けに表示を最適したサイトなどが多くなり、App Storeでウェブサービスとの連携できるアプリも多くリリースされ、使い心地がさらによくなる上に、iPhoneでできること1年や2年で急激に増えました。さらに携帯(iPhone)ゲームが信じられないほどのブームを迎えて(オンラインゲームもオフラインゲームも)、携帯や携帯コンテンツの「楽しさ」が一気にあがりました。
というように、今まで「携帯コンテンツ」がほとんどなかった海外で、コンテンツの量が急激に増加しました。

グローバル発売
iPhoneはアメリカのみのリリースだったので、アメリカ国以外の国に大きな影響を与えることは難しかった。しかしそれもiPhone 3Gのグローバルリリースで事態が大きく変わりました。iPhoneが世界的に売れたことの直の影響で、世界の各地に開発者からの貢献のお陰で「携帯向け」コンテンツが急増しました。今まで人々が携帯ウェブに対する態度やスタンスが一気に変わり、日本以外の国の「携帯コンテンツ」は著しいブームを迎えることになりました。しかもそれは、規模も自由度も色々制限されている日本の「携帯のみコンテンツ」を遥かに超えた、「グローバルインターネットウェブコンテンツ」でした。


iPhoneブームへの反応として、Web OSやAndroidなど、iPhone OSを意識した「次世代」携帯OSが次々とリリースされました。それらがリリースされた時点ではもうiPhoneのリードが大きすぎた事実もあり、未だにまだiPhoneが大半のマーケットシェアを占めています。この状況の中で、一番苦戦しているのは「今までの携帯」です。例として、海外で絶大のマーケットシェアを占めていたNokiaでさえ苦戦しています。

iPhone 3GSが携帯さらに携帯市場の将来の方向性を示してくれたでしょう。操作が簡単で使い心地がよい上に処理が早い。私iPhone 3GのときからiPhoneを使用していて、3GSがリリースされる前からiPhone 3Gは遅いと感じていました。アプリを起動するやサイトを開くなど処理にかかる時間が長すぎてイライラします。パソコンが隣にあればiPhoneでウェブをしたくありません。あくまでも外にいる時にパソコンがない状況で仕方なく使うものでした。しかしiPhone 3GSでそれが変わりました。パソコンが隣にいても、ベッドで横になったままiPhoneでアクセスすればいいやって思う時もあります。しかも携帯のプロセッサに関してはまだまだ進歩し続ける領域であるので、これから携帯端末がもっと早くなると期待できます。まさに「携帯がパソコン、パソコンが携帯」という未来のビジョンがよりはっきりと目に浮かぶようになりました。


iPhoneが発売された後:日本

ところが、日本では海外に比べてiPhoneの影響が弱いです。もちろんiPhone(とくに3gsになってから)は日本でもかなりブームしています。ソフトバンクの顧客純増数を見れば誰でも分かることでしょう。しかし、日本は他の海外と違っていて、非スマートフォンの携帯端末が非常に進んでいる状態にあります。iPhoneがAndroidやWeb OSリードしているみたいに、日本では「携帯のみコンテンツ」がiPhoneがリリースされる前から遥にリードしていることが事実です。それもコンテンツだけではなく、FelicaやモバイルSuicaなど人々の日常に浸透している端末連携機能も存在しています。こういう状況の中で、iPhoneに興味のある人でも日本携帯端末で捨てがたいところはたくさんあるでしょう。特に携帯のみコンテンツは規模が半端なく巨大であり、それにはまっている人たちは携帯のみコンテンツから完全に離れることにはかなり抵抗を感じるでしょう。

こういう背景もあって、完全にiPhoneだけに切り替えるのではなく、「2台目」としてiPhoneを使う人達が多くいます。しかし、それだと月々の費用や端末代が倍になるので、誰もが選択できる選択肢ではありません。むしろこんな不利な状況の中でiPhoneがここほど売れていることはかなりの成功と言えるでしょう。

しかし、日本の携帯市場はこのままで本当にいいでしょうか?

海外では間違いなくiPhoneをはじめとしたスマートフォン革命が始まっています。非スマートフォン式携帯はどんどん淘汰されつつあり、特に先進国では今までの非スマートフォン式端末がスマートフォン式端末に越される日はもう遠くないでしょう。そして世界は国やキャリアに限られたコンテンツやサービスではなく、世界的なコンテンツやサービスに移行としています。
ところが、日本の場合、大衆が非スマートフォン式携帯から離れる傾向は海外に比べて弱いように見えます。このままだと、日本だけが取り残されるという危険があるのではないでしょうか。


日本携帯市場の鎖国

日本の携帯市場は、今にはじまったことじゃないが、一種の鎖国状態にあると言えるでしょう。他には「ガラパゴス」という言葉もよく聞きます。
海外端末はSMS、日本端末はメール、などの根本的なところで日本の携帯は海外で携帯と違っていて互換性がほとんどありません。

しかし、スマートフォン革命が起きる前は日本にいる誰もがそれを気にしたことなかったでしょう。
スマートフォン革命が起こる前の海外携帯市場は鎖国状態ではないが、コンテンツプラットフォームがなりたっていなかったです。日本携帯市場が鎖国状態にあってもそうでなくても、世界へモバイルコンテンツを発信することは難しいことでした。

しかしスマートフォン革命でその状況が変わりました。世界は世界にコンテンツを発信受信できます。もし日本が今までの携帯のみコンテンツにしがみつき過ぎてスマートフォン革命が使った新しい市場に入り遅れたら、大きなビジネスチャンスを失うことになるのではないでしょうか。

このような事態を回避するには、キャリアやメーカ側の責任が特に重大だと思います。
キャリア側:海外端末との互換性を改善する
海外スマートフォン端末は日本では携帯として非常に苦労するところがもろもろとあります。
例:Androidから携帯端末にメールを送ったらPCメールフィルターかかってる人にから迷惑メール扱いになるし、その上メール送信失敗通知さえこないからコミュニケーションが成り立たないです。
まさに鎖国とはこういうことでしょう。日本携帯機種じゃないものはシャットアウトされます。
iPhoneはi.softbank.jp独自のソフトバンク提供メールアドレスでこの問題をある程度解消しているが、i.softbank.jpを使えば結局GmailやMobileMeを持っていてもメインとして使えないことになるし、ソフトバンクから離れればメールアドレスもなくなるし、ソフトバンクはメールフォーワード設定出来ないし...などなど基本的なメールをするだけでもたくさん不便が生じます。
そういう根本的な問題が解消されない限り、海外スマートフォンが日本で普遍になる日は来ないでしょう。来るとしても余計に時間がかかってしまいます。
メーカ側:海外でも日本でも使える互換性ある端末を作り、それらを日本独有のサービスに対応できる携帯にする
モバイルSuicaやFelicaなど日本独特の携帯機能に対応出来るようなスマートフォン端末を日本のメーカが製造すれば、「海外スマートフォンだから〇〇ができない」という問題が解消されます。(さらにそれらの端末は海外でも使える仕様になっていれば、端末やサービスそのものを海外に売り出す可能性もなくはないでしょう)

残りは日本の携帯のみコンテンツの問題ですね。日本の閉鎖的な携帯のみコンテンツは海外の携帯が使える日は永遠に来ないでしょう。海外のスマートフォン革命で発信されるコンテンツだけで、日本の携帯のみコンテンツの代わりになれる豊富なコンテンツができるシチュエーションは難しいと思われます。なぜならの携帯のみコンテンツは日本に最適したローカライズコンテンツであり、海外が配信するコンテンツでそのレベルに達するのは難しいです。その上言語的な問題点も存在しており、そもそも日本語化されないコンテンツも多いでしょう。

となると、日本のコンテンツ提供者側の人達が新しい環境で今までの「携帯のみコンテンツ」に衰えないような質と量のコンテンツを創り出さなければなりません。初めのうちは完全に携帯のみコンテンツの代わりになれるまで行かなくても、せめて携帯のみコンテンツから離れる人たちの拒絶感を減らせるようなレベルに達成する必要があると思います。

日本ではまだ非スマートフォンな携帯端末が一般的で、今も非スマートフォン携帯端末コンテンツがスマートフォンコンテンツより儲かれるポテンシャルが高いかもしれないが、コンテンツ配信者も比較的に少なく、このスマートフォン革命の早い段階から参入した方がブランド力とステータスを高めるポテンシャルがあるはずです。それに、早めに始めた者が後から始める者よりいろいろなノウハウを積むことができ、その積み上げたノウハウをうまく利用することで他人より有利な位置に立つこともあるでしょう。今すぐ目の前にある利益の可能性が少し低くても、将来な利益ポテンシャルは決して少なくないと思います。


スマートフォン革命が作り出してくれた世界的なモバイル事業の波を、日本は乗りこなして世界的なリーダーの位置に昇進するのか、乗り遅れて取り残されるのでしょうか。世界携帯市場が今大きく変化していくように、日本にも大きな変化が必要とされる時期にあるでしょう。
明治維新を行う気持ちで、今の日本の携帯市場鎖国を一緒に解いてみませんか?

2010年2月28日

英語が出来るように思わせてみる
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

はじめまして、去年末に入社しましたkayです。
エンジニアとしてまだまだな私ですので、少し英語のお話でもしようと思います。

私自身、アメリカの大学に3年ほど通っており、ついこの間卒業したばかりなのですが、アメリカにいた頃はスラングだということすら知らずに使っていた英語もたくさんありました。
スラングというのはもともAfrican-Americanが使っている言葉として知られていたと思いますが、今は主に若者の言葉や外国の英語の教科書には載っていない用法のことを指しているのではないかと個人的に思っています。
そして、スラングはアメリカ人たちが楽するために使用されるものが多く、仕組みを理解することで外国人でもだいぶ楽して英語を扱える+英語が得意な人だと思わせられるようになります。
ただ、初心者がスラングばかり(特に文法的に間違っている文)を使っているとちゃんとした英語が身に付かない場合もありますので、本当はどうあるべきなのかを頭に入れておくこともとても大切です。

ということで、外国の方々と英語でコミュニケーションをする必要があった場合に少しでも自信を持って英語が扱えるように少しばかりスラングTipsでも紹介致します。

※ なお、ここで紹介のはとてもカジュアルなアメリカ英語であり、地域によっても用法が異なっていたり・私の勝手な解釈だったりするので、ご了承ください。
(私の勝手な解釈が間違っていた場合はお知らせいただければと思います。)

名詞の動詞化

  • 写真を撮る → photograph
  • eメールする → email
  • SNSで友達申請する → friend (日本でならCan I mymixi you?とか使えそうですね。)
  • (女独特の)悪口を言う → bi*th (間違って名詞としてあまり仲の良くない女のひとに使うと大変なことになる可能性がありますが・・・)

のようにスラングでなくても英語では名詞をそのまま動詞にして使用することが多々あります。
どこからどこまでがスラングでないのか微妙なところがあり、私自身もよくわかっていません。
なので、ちゃんと動詞として使っていい単語なのかを考える前にカジュアルな場面なら使ってしまいましょう。実際に辞書に存在しない用法だった場合でもスラングとして大抵の場合は許されます。
take a picture や send an e-mail という風に長ったらしく書くよりも動作の部分の動詞が何になるのかを考える必要がないのでだいぶ楽が出来るかと思います。
※ pictureを動詞で使った場合には写真を撮る意味にはなりません。こういうイレギュラーもありますが、そういう場合だけは覚えるようにしましょう。

接頭語・接尾語を使う

redo, undo (doの代わり大抵の動詞を入れて使えます。)
が一番使えると思いますが、他にも大量に存在します。
量は多いですが、本気で英語を勉強しようと思った際に覚える単語の数に比べたら可愛いものですし、これらの用法・意味を押さえておくだけでボキャブラリーが倍増しますので、一度頭に入れておくことをおすすめします。
上の名詞の動詞化とミックスしてunfriendなんて使い方も出来ます。

略語

  • OMG → oh my god!
    略さずに使う場合、godの代わりにgoshやgoodnessを使うことも多いです。ただキリスト教ではない人にとっては多少違和感のあるフレーズになってしまうかもしれません。
  • a.k.a. → also known as
  • ASAP → as soon as possible
  • BTW → by the way
  • FYI → for your information
  • LOL → laughing out loud
    笑・wの代わりになるものですが、もっと分かりやすくhahaやhehe等も使われています。
  • TIA → thanks in advance
    個人的には略して使用したりしませんが、略す前のフレーズはネット上で非常によく使うので物を尋ねるときは最後に入れましょう。
  • pls / plz → please
  • thx → thanks
  • sup → what's up?
  • u / ya → you
  • x.o.x.o. → hugs and kisses
    動作を表すもので、文章の最後で使用します。

ほんの一例ですが、良く使われているもの達です。
基本的にはネット上で見かけますが、ASAPやFYI等は口頭でも良く使用します。
4, 8, 2といった数字を同じ発音するものの代わりに使うのも有名ですよね。

ただ、みんなに通じるものではないので、意味が分かる程度に抑えてあまり自分からは使用しないようにするのもマナーかもしれません。

アポストロフィーを理解する

  • don't → do not
  • 'em → them
  • 'n' → and
  • 'bout → about
  • 'cause → because

と、アポストロフィーが挿入されているところには何かが省略されているという意味になります。
これは実際に話す際の発音に近いものになっていることが多いです。
もっとも、アポストロフィーさえ省略されることが多いのであまり参考にはならないかもしれませんが、歌詞などには大抵入っている状態で記されているので、そういう時には何かが省略されているとすぐにわかります。

そういう意味で、don'tやwhat'sなどは日本の教科書にも載っているような用法ですが、略されている=正式ではないということなので、正式な文章には絶対に使わないように心がけましょう。

アメリカ人が使う間違った(良くない)文法

  • I want it so bad. / It was real good.
    動詞や形容詞を修飾しているので、副詞のbadly / reallyが本当は正しいはずです。
  • There was many cars.
    carsなので、wereが正しいですが、名詞よりも動詞が最初に来るので複数形にするのを忘れがちなパターンです。
  • I'm sorry. I'm late.
    I'm sorry for being lateと教科書では教わりますよね。forは実際にカジュアルな場ではそんなに使いません。ついさっきの出来ごとについて謝る場合にはsorry about thatになったりします。
  • a tea
    a cup of teaが正しいです。
  • you ok? / you sleep yesterday? / she go there?
    疑問文ではbe動詞やdo系が良く省略されます。
  • I haven't a car. / I needn't a car.
    動詞のhaveと現在完了で使うhaveを混同させた結果です。
  • I never been there.
    現在完了のhaveは度々省略されます。
  • Do you got a car?
    have = have got = got (haveを省略) なので、doを使っているのに過去形の動詞が来ている変な文。

というように、ネイティブスピーカーも間違った文法で英語を使います。一部は流行っているという理由で使用されますが、大半は彼らも面倒くさいと思っていたりするものを使いやすいように変えているので、もちろん外国人である私たちにも使いやすくなっています。

外国人がよくする間違いに気をつける

  • 今から3日後 → × three days later ○ (after) three days from now
    スタート地点が過去の場合はlater、今の場合は後者になります。
  • 私も好きじゃありません → × I don't like it too. ○ I don't like it either.
    も=tooと思っている人が多いのですが、文章がネガティブの場合はeither, neitherが正しいです。
    me, too <-> me, neither(or either) / so do I <-> neither do I
  • × Yes, I don't. ○ No, I don't.
    これも上と似ていますが、疑問文に賛成していても答えはいいえにならないといけません。
    ただ、会話の際に間違えてyeahが出てしまった時には、後にyou're rightをつける(付けなくても意味的にそういう流れなら大丈夫)ことで文法的には正しくなりますので、慣れない内はこれで回避するのも手です。
  • × There were an apple and an orange. ○ There was...
    合計で2個でもbe動詞の直後の名詞が単数ならwasが正しいです。
  • × I and my friends like shopping. ○ My friends and I... / Me and my friends...
    自分が後に来る場合はI、最初に来る場合はmeになります。

これらはスラングとまったく無関係ですし、間違えても意味は通じますが、本当に間違えている人が多いので間違えずに使うことで出来る!と思わせることが出来るかもしれません。

ウノウでは特に最近、積極的にエンジニアを採用しています。
採用ページをご覧になり興味のある方、ぜひご応募ください。
Find Job!でも募集してます!

2010年2月25日

PECL::oauthでxAuth
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

yamaokaです。

TwitterのBasic認証によるユーザー認証が6月に廃止されるようですね。 認証はOAuthで行ってください、とのことなのですが OAuthの認証画面を表示するためにブラウザを起動するのがふさわしくないケースや、 そもそも貧弱なブラウザでうまく利用できないケースもあります。

そうした場合の解決方法として、xAuthという仕組みがTwitterに実装されています。 詳しくは次に紹介するweb上の記事を参照してください。

認証にはユーザーの名前とパスワードを使いますが、 それを元にaccess_tokenとaccess_token_secretを取得できるので以後の認証にはパスワードが不要になるというものです。 これならBasic認証の代わりに使うことができそうですね。 勿論、OAuthを利用できるシーンではOAuthを用いた認証が望ましいのですが、 必ずしも当てはまらないケースもあるということで。

PythonやRubyを使った実装サンプルは見つかったので、 PHPのものはないかなと探してみるとありました。 ただしベトナム語タイ語なのでPHPのコードしか読めないということと、 実装コードがPHPの関数ベースなので少し使いづらそうです。

そこで普段OAuthを利用する際に使っているPECL::oauthで実装できないか試してみました。 ちなみに通常のOAuth認証を利用する場合のサンプルはリポジトリにコミットされているので参照することができます。

<?php
$consumerKey         = 'YOUR-CONSUMER-KEY';
$consumerSecret      = 'YOUR-CONSUMER-SECRET';
$userName            = 'YOUR-USER-NAME';
$password            = 'YOUR-PASSWORD';
$xAuthAccessTokenUrl = 'https://api.twitter.com/oauth/access_token';

$response = '';
$parameters = array(
    'x_auth_mode'     => 'client_auth',
    'x_auth_username' => $userName,
    'x_auth_password' => $password,
);

try {
    $oauth = new OAuth($consumerKey, $consumerSecret,
        OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
    $oauth->fetch($xAuthAccessTokenUrl, $parameters, OAUTH_HTTP_METHOD_POST);
    $response = $oauth->getLastResponse();
} catch (OAuthException $e) {
    echo "Error\n";
    exit;
}

// oauth_token=xxx&oauth_token_secret=xxx&
// user_id=xxx&screen_name=xxx&x_auth_expires=0
parse_str($response, $accessTokenInfo);

// oauth_token, oauth_token_secret, user_id, screen_name,
// x_auth_expires
var_dump($accessTokenInfo);

$accessTokenInfoの要素として「oauth_token」と「oauth_token_secret」が入っているので、 それをDBなどに保存しておくようにすれば通常のOAuth認証を用いてツイートの投稿などを行うことができるようになります。 そのまま利用して投稿するとすると、次のような感じになります。

$oAuthStatusesUpdateUrl = 'http://twitter.com/statuses/update.xml';

$response = '';
$parameters = array(
    'status' => 'YOUR-STATUS-MESSAGE',
);

$oauthToken       = $accessTokenInfo['oauth_token'];
$oauthTokenSecret = $accessTokenInfo['oauth_token_secret'];

try {
    $oauth->setToken($oauthToken, $oauthTokenSecret);
    $oauth->fetch($oAuthStatusesUpdateUrl, $parameters, OAUTH_HTTP_METHOD_POST);
    $response = $oauth->getLastResponse();
} catch (OAuthException $e) {
    echo "Error\n";
    exit;
}

var_dump($response);

仕組みとしては非常に単純なものなので、 現在Twitterの認証にBasic認証を仕方なく使っているケースでも 比較的簡単に置換ができるのではと思います。 当然、OAuthが利用できるのであれば そちらを使うのが望ましいのは言うまでもありませんが。

ウノウでは特に最近、積極的にエンジニアを採用しています。
採用ページをご覧になり興味のある方、ぜひご応募ください。
Find Job!でも募集してます!

2010年2月22日

テスト本の読書会を行います。
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは!やまもと@テスト番長です。

ただいまテスト本の読書会を企画しています。
昨年秋に出版された「実践アジャイルテスト テスターとアジャイルチームのための実践ガイド」という本をご存知でしょうか?
アジャイルということでWEBアプリ製作の現場により近い内容のため、輪講形式で読み込んでみたいという話になりました。
時期は3月中旬ころ開催の予定です。詳細はこれから詰めますので、
ご興味のある方はお気軽に yamamoto[at]unoh.net までご連絡ください。

そういえば買ったけど積んでた!という方、その本まだ見てない!という方、この機会にいかがでしょうか?
テスト好きな方にお集まりいただけますと嬉しいです。ぜひご参加ください。

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects'Archive ソフトウェア開発の実践)
Janet Gregory Lisa Crispin
翔泳社
売り上げランキング: 110310
おすすめ度の平均: 5.0
5 アジャイル開発のテストの最高のガイドブック

2010年2月 8日

cacti の設定をコマンドラインから行う方法
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは。kyagi です。今回は cacti の設定をコマンドラインから行う方法をお知らせいたします。

cacti とはサーバの監視/グラフ化ツールです。CPU使用率やロードアベレージ、その他様々な情報をカラフルなグラフで見ることができます。

設定は主にブラウザ上から行うのですが1台のサーバの設定でもSNMPの各項目を選択したり、グラフのデータ元であるデータクエリを設定したりなかなかの作業量になります。設定内容は全て把握していても 1 台につき、マウスでクリックする回数が多いので数十台の追加となると時間もかかりますし、指もかなり疲れます(また、ヒューマンエラーも入り込む余地が生まれます)。

cacti にはこういった設定をコマンドラインから行える php スクリプトが用意されています。標準ではこれらのスクリプトは /var/lib/cacti/cli/ 配下にインストールされています。これらのスクリプトの使用方法は --help オプションをつけると表示されますが、html 版のドキュメントも用意されています。

■cacti の設定をコマンドラインから行える php スクリプト

$ rpm -ql cacti | grep cli | grep php$
/var/lib/cacti/cli/add_data_query.php
/var/lib/cacti/cli/add_device.php
/var/lib/cacti/cli/add_graph_template.php
/var/lib/cacti/cli/add_graphs.php
(...snip...)

■上記 php スクリプトのヘルプドキュメント

$ rpm -ql cacti | grep cli | grep html$
/usr/share/doc/cacti-0.8.7e/docs/html/cli_add_data_query.html
/usr/share/doc/cacti-0.8.7e/docs/html/cli_add_device.html
/usr/share/doc/cacti-0.8.7e/docs/html/cli_add_graph_template.html
/usr/share/doc/cacti-0.8.7e/docs/html/cli_add_graphs.html
(...snip...)

以下にこれらのスクリプトを使用して newserver というサーバを追加していく例を紹介いたします。

1.まず、追加するサーバのタイプ(Web サーバだったり、DB サーバだったりします)を指定するための template の id を調べます。

$ sudo -u cacti php /var/lib/cacti/cli/add_device.php --list-host-templates
Valid Host Templates: (id, name)
0	None
1	Generic SNMP-enabled Host
3	ucd/net SNMP Host
4	Karlnet Wireless Bridge
5	Cisco Router
6	Netware 4/5 Server
7	Windows 2000/XP Host
8	Local Linux Machine
9	X DB Server HT
10  	WebServer - Apache
11	Memcached Server
12	X Nginx Server HT

2. ここでは template としてシンプルな None を選びます。template が決まったので add_device.php で device を追加します。ここでの cacti の出力の device_id の 90 が以下に使う「--host-id」に渡す値になります。

$ sudo -u cacti php add_device.php --description=newserver --ip=10.0.0.123 --version=2 --avail=pingsnmp --community=public --template=0
 
Adding newserver (10.0.0.123) as "None" using SNMP v2 with community "public"
Success - new device-id: (90)

3. Data Query を追加します。サンプルとして以下 3 つ(SNMP interface, ucd/net Get Mount, SNMP Get Mount Partitions) を追加します。「--host-id」に先ほどの値 90 を使用します。

$ sudo -u cacti php add_data_query.php --host-id=90 --data-query-id=1  --reindex-method=1 #SNMP interface
$ sudo -u cacti php add_data_query.php --host-id=90 --data-query-id=2  --reindex-method=1 #ucd/net Get Mount Partitions
$ sudo -u cacti php add_data_query.php --host-id=90 --data-query-id=8  --reindex-method=1 #SNMP Get Mont Partitions

4. Graph Template を追加します。サンプルとして CPU 使用率、ロードアベレージ、メモリ使用量を追加します。グラフテンプレートIDは「--list-graph-templates」オプションで見ることができます。

$ sudo -u cacti php add_graph_template.php --host-id=90 --graph-template-id=4  #ucd/net CPU Usage
$ sudo -u cacti php add_graph_template.php --host-id=90 --graph-template-id=11 #ucd/net Load Average
$ sudo -u cacti php add_graph_template.php --host-id=90 --graph-template-id=13 #uce/net Memory Usage

5. Graph を追加します。サンプルとして CPU 使用率、ロードアベレージ、メモリ使用量を追加します。

$ sudo -u cacti php add_graphs.php --host-id=90 --graph-template-id=4 --graph-type=cg
$ sudo -u cacti php add_graphs.php --host-id=90 --graph-template-id=11 --graph-type=cg
$ sudo -u cacti php add_graphs.php --host-id=90 --graph-template-id=13 --graph-type=cg

使い方がわかればこれらをバッチ処理で実行するスクリプトを作成して更に効率化することも可能です。
http://github.com/kyagi/cacti-add-device-helper.rb/blob/master/cacti-add-device-helper.rb

ウノウでは特に最近、積極的にエンジニアを採用しています。
採用ページをご覧になり興味のある方、ぜひご応募ください。
Find Job!でも募集してます!

2010年2月 3日

位置情報を取得してみる
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ウノウでは特に最近、積極的にエンジニアを採用しています。
採用ページをご覧になり興味のある方、ぜひご応募ください。
Find Job!でも募集してます!

こんにちは。ryosuke です。

先週からモバゲータウン内において、弊社の携帯まち育成ブラウザゲーム「まちつく!モバゲー版」の提供を開始しています。よろしければ遊んでみてください。

まちつく!は、まち育成シミュレーションゲームですが、育成だけではなく携帯電話の位置情報を利用したおみやげやスタンプといった機能があります。最近は海外でもGPS機能を搭載したスマートフォンが普及してきたためか、世界的に位置情報を利用したサービスが活発化し始めているようです。

NHKのTV番組ブラタモリと連携しているiPhoneアプリの「ブラアプリ」や、位置情報でつながる街情報SNS「foursquare」 が話題になったりしていていますね。位置情報自体は今更感があるのですが、個人的興味でにわかに位置情報がホットです。

携帯電話

位置情報の活用と言えば一番に思い浮かぶのが携帯電話ですね。基地局を利用した位置情報とGPSを利用した位置情報があり、日本の携帯電話ではなじみの深い機能ですがGPSは実装が義務化されているそうです。

docomo

オープンiエリアでは5桁のエリアコードが付いており、公開されているエリアテーブルと関連づける事で全国を505に分割した地域名を取得できます。

<a href="http://w1m.docomo.ne.jp/cp/iarea?ecode=OPENAREACODE&msn=OPENAREAKEY&nl=URL&posinfo=1">位置情報を送る</a>

GPSはaタグやformタグにlcsを付けるだけで、リンク先に位置情報関連の引数を付けて渡してくれます。

<a href="URL" lcs>位置情報を送る</a>

au

簡易位置情報はドキュメントどおり以下の様に取得します。
<a href="device:location?url=URL">位置情報を送る</a>

auはGPSに関する資料は正式に公開されてはいないようです。しかしwebを検索すると有用な情報が揃っています。

簡易位置情報は上記サイトでドキュメント化されていますが、GPSも簡易位置情報の device:location となってる所を device:gpsone に変更すれば、同様に扱えます。

<a href="device:gpsone?url=URL">位置情報を送る</a>

SoftBank

SoftBank も au と同様に以下の様にURLにリンクする事で指定したURLに位置情報を渡してくれます。
<a href="location:cell?url=URL">位置情報を送る</a>

GPSの場合は cell の部分が gps になります。

<a href="location:gps?url=URL">位置情報を送る</a>

WILLCOM

忘れてはいけない WILLCOM です。会社にPHSがあったので、今回はじめて試してみましたが、携帯キャリアと同様に取得できました。(まちつく!mixi版はPHSでも遊べます)

<a href="http://location.request/dummy.cgi?my=URL&pos=$location">位置情報を送る</a>

スマートフォン

iPhone

未確認ですが、Core Locationフレームワークを使用するそうです。

Core Location Framework Reference

Android

android.location パッケージが提供されています。

android.location

参考

WEBブラウザ

Firefox

Firefox 3.5以降ではプラグイン等を必要とせず、標準でGeolocation APIがサポートされています。

Geolocation の利用

場所にもよるのかもしれませんが、試してみた所なかなか良い精度で位置情報を取れました。

Safari

  • iPhone OS3.1のSafariではGeolocation APIがサポートされているようです(未確認)
  • ちなみに MacOSX Snow LeopardのSafari4.0.4では動作しませんでした

その他位置情報に関するAPI

取得した位置情報を簡単に加工する事が出来ます。

沖電気提供の位置情報API

http://okilab.jp/project/location/

その他、位置情報の加工に便利そうなAPIが提供されています

シリウステクノロジーズ提供の位置情報API

http://lab.cirius.co.jp/GeoPlatformAPI/

まとめ

実際調べてみると、各社の資料を読むに尽きる感じですが、位置情報を取得すること自体はどの環境でも難しい印象はありませんでした。

実際には取得した情報を加工して使用する事になる為その辺りの処理を行わなければなりませんが、環境ごとに資料やライブラリは揃っているので(ウノウラボでもGeomobilejp_Converterを公開しています)試してみてはいかがでしょうか。

  [PR] 転職
ウノウラボはウノウ株式会社のエンジニア/デザイナーによる大小のアウトプットを行っていく場です。

現在ウノウは絶賛人材募集中です。詳細は求人ページへ。

著者一覧

YAMADA shintaro yamamoto keita Sakatoku yamaoka yuki isogawa cloned uchida ishikawa chihiro

デモサービス

ライブラリなど

ライセンスについて

ウノウラボで配布しているソースコードのご利用につきましては、基本的に修正BSDライセンスに従うものとします。 それ以外のライセンスを指定させていただく場合は記事中で個別に記載いたします。

ウノウサービス

最近のトラックバック

Powered by
Movable Type 4.261