中国からTwitter VPN-FAST

中国から見れないサイトは数多くあります。
有名どころでは、TwitterYouTubeFaceBookなどです。
Googleの画像検索でも表示されない画像が多くて困ります。
そこで、VPN-FASTというサービスを開始しました。

VPN-FAST http://vpn-fast.com


VPNという技術で日本経由でWEBサイトにアクセスすることで、中国からアクセス出来ないサイトでもアクセス出来るようになります。
日本国内からWEBサイトを閲覧しているのと同じですね。


ソフトイーサ株式会社と筑波大学との共同研究で開発された、PacketiX VPNというVPNクライアントをライセンス購入しています。
使い方はとても簡単で、クライアントソフトをインストール後、ユーザ名とパスワードを入力するだけで繋がります。
また、通信速度を最適にしたいユーザ向けに、様々な設定を行えるよう配慮されています。
例えば、VPN通信に使用するTCPコネクション数や、データの圧縮などです。


実際使ってみて感じるのは、日本のサイトを閲覧するスピードが上がったことです。
中国からは、アクセスが許可されているサイトでも、アクセスが遅くて表示されないことがしばしばあります。
中国からのアクセスに対して日本側のサイトで帯域制限などをかけているのかもしれません。
このようなサイトの場合、日本からのアクセスとなるので、表示が速くなります。
お名前.comを良く利用するのですが、VPN無しの場合はタイムアウトでログアウトされることが良くありました。
VPN-FASTを使用してからは、普通のサイトと同様にアクセス出来るようになり、このようなストレスを感じることが少なくなりました。


1週間、お試しで使えますので、是非利用してみてください。

联通のSMS送受信APIをRubyで作る

SMS配信サービス開始に向けてRubySOAP Clientを作っています。
中国では3キャリアあり、それぞれ異なるAPIを使う必要があります。
移動、電信ともにJava APIなのですが、联通はSOAPです。

いきなりコード。

  1 LoginMes = {"login" => {"username" => '1111111111', "userType" => '0', "password" => '111111',"corpID" => '111111'}}  
  2
  3 
  4 require 'rubygems'
  5 gem 'soap4r'
  6 require 'soap/rpc/driver'
  7 require 'soap/wsdlDriver' 
  8 p SOAP::Version
  9 
 10 wsdl = '联通APIのURL/SmWSImpl?wsdl'
 11 
 12 a = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
 13 a.generate_explicit_type = true
 14 result = a.memberLogin(LoginMes)
 15
 16 
 17 p result.exitCode
 18 

実行結果

"1.5.8"
0

いや、はまりました。
ruby 1.8.7標準添付のsoap4r (1.5.5)でテストしても動作しない。
エラーは下記。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:167:in `struct2soap': undefined method `elements' for nil:NilClass (NoMethodError)


途方に暮れていたのですが、soap4rを1.5.8にバージョンアップしたところあっさり動作。
サーバの環境構築もそうですが、バージョン関係は難しいですね。
オープンソース開発者の皆様に感謝!

社員募集

社員を募集します!
職種は、デザイナ、ディレクター、技術者、ネットショップ経験者等々あまり問いません。

一番重要なのは、私たちと同じ志でKEMBOと一緒に成長しあえる人です。
専門性があればなお良いですが、新人でも応募を受け付けています。


弊社はWEBや携帯サービスを通じて、クライアント・関係者を幸せにする理念の企業です。
WEBサイトは作成するだけでなく、始めから作成後の成果、利益を見込んで企画します。
逆に制作の話をお客様から頂いても、上海での経験からビジネスとして危険と判断すれば失注につながろうとも正直におはなしさせて頂くスタンスです。


上海で、海外で働くことは、今後のキャリアにおいても価値のある経験となると思います。
中国と聞くと生活が不安と思われるかもしれませんが、世界有数の日本人が生活しやすい都市です。
感じ方は人それぞれ相対的なものですが、私個人としては、他の海外都市と比較して治安が良く、人も良く、日本人が多く、交通インフラもそこそこ整って安く、過ごしやすい印象です。
また上海で出会う日本人からはいつも良い刺激をもらいます。
起業家、駐在、飛び込み就職、語学留学等々、様々な理由で来られていますが、みなさんとてもポジティブで行動的で学ぶことがとても多い。
多くの日本人コミュニティがあり、友達も多く出来ます。


興味の有る方、KEMBOで活躍したい!という方、是非ご連絡をお待ちしております。


連絡先:info@kembo-net.com

【告知】7/3 上海ドリームプランプレゼンテーション

上海アントレプレナーシップ講座を第5期生として受講しています。

本会は自立型人間を育成するというもので、夢を実現する考え方等を学ぶことが出来ます。

その集大成として、夢の発表会、ドリームプランプレゼンテーションを7/3に行います!
大人が真剣に夢を語る会です。
発表者は5名ですが1チーム6人前後の構成で、発表者以外は支援者として本気で支援しています。
お時間のある方、本会に興味ある方は是非見に来てください!
涙腺のゆるい方はハンカチをお持ちください。

以下告知文から引用

        • -

【第三回上海ドリームプランプレゼンテーション2010 開催】

■日時:7月3日土曜 午後1時半〜5時半(予定)
■場所:上海・王宝和大酒店 7階金葉庁
■住所:上海市九江路555号 (福建路との交差点)
■地図: http://www.sailho.com/knowledge_info.html
■主催: メディア漫歩
■無料のイベントです。 先着順で自由にご着席下さい。
■懇親会: ドリプラ終了後、近くで懇親会を開催予定 (希望者のみ)

■イベント・ウェブサイト: http://www.sailho.com/knowledge_info.html


■上海プレゼンター
・クララ 「音楽の森クララ プロジェクト 〜人と人とがつながる音楽会〜 」
IKKI 「輝け!情熱プロフェッショナル 〜日本文化ガイドプラットフォーム〜」
・ウーフェン 「“農家楽” 〜最初の感動に出会う旅〜」
・野間貴久子 「新しい自分に出会えるレストラン」
・TAKA 「“カフェ発” 世界に広がる笑顔の種」

■ゲストプレゼンター
・土´川尚己(ドリプラ2008全国大会プレゼンター) :
「ブックエンドプロジェクト」
・小島英生(ドリプラ2008全国大会プレゼンター):
「『♂+♀=∞』〜男女共創社会の実現〜」
・山本直史(ドリプラ2009全国大会プレゼンター):
「ドリームベジタブルプロジェクト
〜感謝と命の大切さが野菜で循環する“食べる社会貢献”〜」

■記念講演
福島正伸(株式会社アントレプレナーセンター代表取締役
「ドリームプランプレゼンテーションについて」

黒烏龍茶キャンペーン

久しぶりの更新です。
上海で展開しているサントリー黒烏龍茶のキャンペーンを紹介します。
本キャンペーンは弊社もお手伝いさせてもらっています。


100人の美女モデルが黒烏龍茶生活をブログで公開するというものです。
同時に黒烏龍茶製品に記載されているIDで参加するプレゼントキャンペーンも展開しています。

周りの友人から地下鉄の駅で黒烏龍茶100人モデルがガンガン宣伝されていると聞き見に行ってきました。


静安寺駅

大きな液晶パネルに黒烏龍茶100人モデルの動画楽が至る所で流れています。
ここまで大がかりとは思っていなくびっくりしました。
やはり美女は映えますね(笑)。
上海万博に向けて上海の地下鉄は路線も増え、大分きれいになりました。

彼女達のブログは下記サイトから見ることが出来ます。
プライベートな写真も多くアップロードされているので、是非見てください。


http://www.black-cp.com

同名のテーブル名に対する参照(belongs_to,has_manyなど)の書き方

同じ名前のmodelがusersという名前であったとします。
例えば下記のような形です。

/app/models/user.rb
/app/models/other/user.rb


例えば上記2テーブルをordersテーブルから参照する場合、modelには:class_nameを使って次のように書きます。

/app/models/order.rb

belongs_to :user, :class_name => 'User'
belongs_to :other_user, :class_name => 'Other::User'


ordersテーブルには、user_id(integer)とother_user_id(integer)が必要です。

複数DBを使用した会員認証方法

とあるECサイト案件で、別サイトの会員のログインを可能にしたいという要件がありました。
ECサイト自体も会員システムがあるので、ログイン手段が2通りあるサイトになります。

絵にするとこんな感じです。


技術的ポイントは下記です。

 1.ひとつのRailsアプリケーションから複数のDBを参照する
 2.同じ名前のModelをひとつのRailsアプリケーションで扱う


まずはdatabase.ymlにDBへの接続定義を2つ書きます。

/config/database.yml

production:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: ec_site
  pool: 5
  username: root
  password: password
  host: localhost


other:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: other
  pool: 5
  username: root
  password: password
  host: other_site.com


次にmodelを追加します。
usersという同じテーブル名になるので、ディレクトリを分けましょう。

/app/models/users.rb   (ECサイト用)
/app/models/other/users.rb   (別サイト用)


次に別サイト用のusers.rbに接続先DBの定義とクラスの情報を書きます。

/app/models/other/users.rb

class Other::User < ActiveRecord::Base       ←クラス名に注目
  establish_connection "other"       ←database.ymlで定義した名前
end


これで別サイトのDBには、「Other::User」でアクセスできるようになります。
下記のような使い方です。

# ruby script/console production
>> Other::User.find 1
別サイトのusersテーブルのid1が表示されます
>> User.find 1
ECサイトのusersテーブルのid1が表示されます


次回は同名のテーブル名に対する参照制約(belongs_to, has_manyなど)の書き方を紹介します。