チャイナユニコム(中国聯通)のiPhoneを日本で使う方法

Pocket

チャイナユニコム(中国聯通)のiPhoneを日本で使おうと思ったのだが、どうにもうまくいかない。ちゃんと国際ローミングを設定してもらっているのだが、「圏外」と表示されいっこうに通話ができないのである。

実際、タイや韓国では普通に国際ローミングで、同じiPhoneで通話できていた。しばらく待っていれば電波を認識してくれると思ったのだが、日本に到着後何日たっても圏外のままなのである。

一週間ほどハマって最終的には解決できた。結論としてはiPhone側の設定の問題だったのが、かなり時間を無駄にしてしまったので、他の誰かの役に立つのではと思いここにメモしておく。

設定手順

なお、設定はiOS6の画面なので、iOS7では若干画面が異なるかもしれない。

1. モバイルデータ通信をオフ、3Gをオンにする

1. ホームより設定を押す。

2. 一般を押す。

3. モバイルデータ通信を押す。

4. 下記のようにモバイルデータ通信をオフ、3Gをオンにする。

3Gをオンにするのは、日本にはGSMの電波がないそうで、通話を行うには3Gが有効になっている必要がある。

また、モバイルデータ通信がオンになっていると、国際ローミングでパケット通信をしてしまうので、パケ死防止のためである。

2. キャリアの設定をSoftbankにする

1. 設定画面でキャリアを押す。

2. 自動をオフにし、SoftBankを選択する。

3. しばらく待ってSoftBankの電波が表示されればOK。

実は日本でチャイナユニコムと国際ローミングの契約をしているのはソフトバンクのみのようで、DocomoやAUの電波を拾ってしまうと通信ができないのである(ここは結構はまってしまった)。したがって自動をオンにしておくと、SoftBankの電波を拾った時は通話ができるが、そうでないと通話ができなくなってしまうので、手動で設定する必要がある。

参考リンク

中国語のページで瞬時に単語の意味を表示するChrome拡張が便利

Pocket

中国で生活していると、何かと中国語のウェブサイトを閲覧する機会も多くなってくる。
Youkuで動画見たり、タオバオでモノを買ったりと、中国のウェブサービスを活用することで生活も便利になる。

ただ、やっかいなのが中国語である。
分からない単語をいちいち辞書で調べるのは面倒だ。

そんなときに役立つのがGoogle Chromeの「中英辞典」という拡張機能である。

この拡張機能をChromeにインストールすると、ページ内の中国語の単語にマウスカーソルを持っていくだけで英語で意味が表示されるのである。また意味だけでなくピンインも表示されるので、中国語の勉強をするにもとてもよい。「中日辞典」があればベストだが、簡単な単語であればこれで中国語の内容を概ね理解できるので便利である。

以下、インストール方法をご紹介する。
(今回はMacのGoogle Chromeの上に拡張機能をインストールしたが、Windowsでも同様な手順でインストール可能なはず)

インストール手順

中英辞典のChrome拡張をインストールするには、事前に「Mouseover Dictionary Framework」(以下MDFと略す)という拡張機能を別途インストールしておく必要がある。

中英辞典の拡張機能は実は辞書のデータ部分のみで単体では動作しないのである。MDFの拡張機能が辞書データを読み取って表示する仕組みを持って、組み合わせて使うことでポップアップ辞書として機能する。また、MDFは別の辞書データと組み合わせて利用できるような仕組みにもなっており、別の辞書データをインストールすれば、その言語の辞典としても利用可能になるわけだ。

Mouseover Dictionary Framework(MDF) のインストール

1. Mouseover Dictionary Frameworkの拡張機能のページより+無料をクリックする。

2. すると拡張機能を追加するかと聞かれるので、追加をクリック。

3. 追加が完了するとChromeのアドレスバーの右側にマウスの形をしたアイコンが作成される。

ただし、アイコンをクリックしても辞書がインストールされていないので、利用できる辞書がありませんと表示される。

以降の作業で中英辞典をインストールする。

中英辞典のインストール

1. 中英辞典の拡張機能のページより+無料をクリックする。

2. 同じく拡張機能を追加するかと聞かれるので、追加をクリック。

3. 追加が完了するとMDFのアイコンの下に中英辞典と表示されるので、インストールが完了したことが分かる。

中英辞典の使い方

中英辞典の機能を有効にするには、下記のようにMDFアイコンより中英辞典を選択すればよい。
選択されるとZHというマークがアイコンのところに表示されるようになる。

このアイコンマークの状態で、中国語の単語にマウスカーソルを合わせると英語の意味とピンインが表示される。

この中英辞典を使うと中国語のウェブサイトの閲覧がずいぶんと楽になる。
中国語のサイトをよく見ている人には、とても便利な拡張機能だと思うので、興味のある方は是非試してみてはいかがだろうか。

中国のオンラインストレージサービス『快盘(カイパン/Kuaipan)』を使ってみた

Pocket

オンライン・ストレージサービスと言うとDropboxSugarSyncが有名だが、中国にも同じようなストレージサービスがいくつかある。その中の一つ金山快盘(中国語の発音ではジンシャン・カイパンと読む)というストレージサービスをご紹介。

カイパンを提供しているのは金山という会社なのだが、日本ではキングソフトという名前で運営されている会社である。

ちなみに日本向けにはKDriveと言う名前で同様なオンラインストレージサービスを提供している。
(なお、カイパンとKDriveのサービスは全く別のもののようだ。)

このカイパン、すごいのが無料で使えるストレージの容量である。
Drobpboxで無料で使える容量は最大16GBだが、カイパンはなんと100GBまで無料でOK。
(ただし、100GBまで使えるようになるには、カイパンのアカウントをウェイシンに登録したり、PC、iPhone等のアプリをインストールしなければならない。)

また私は中国国内でのウェブ制作等の仕事でお客さんとのデータのやりとりにこのカイパンを利用している。特に中国では海外にあるサーバーとのインターネットでの接続が非常に遅いので、中国国内でデータをやりとりする場合は非常に都合がよい。

登録方法

登録は非常に簡単。メールアドレスとパスワードを設定するだけである。

1. カイパンのページにアクセスし、「無料登録(免费注册)」のボタンをクリックする。
(ちなみに中国語の「登録」はログインという意味なので注意!)

2. 携帯番号での登録(手机号注册)かメールアドレスでの登録(邮箱注册)のどちらかを選択できるので、通常はメールアドレスでの登録を選べばよいだろう。

3. メールアドレス(邮箱地址)とパスワード(输入密码)、さらにパスワードを再度入力し、「今すぐ登録(立即注册)」をクリックする。

4. すると下記のようにファイルをアップロードできるページが表示される。

ファイルをアップロードするには、ファイルをドラッグ&ドロップでページの上に移動すればよい。また、ストレージ上のフォルダは、フォルダアイコンをクリックすれば作ることができる。このあたりは、他のストレージサービスと大体同じなので迷うことはないだろう。
また日本語なんかも問題なく利用できるようだ。

ファイル・フォルダの共有

アップロードしたファイルやフォルダは、他の人と共有することができる。
共有したいフォルダあるいはファイルの場所で、シェア(分享)のアイコン(下記赤枠を参照)をクリックする。

すると下記のようにフォルダかファイルにアクセスするためのリンクURLが生成される。

生成したリンクのURLを共有したい人に渡せばよいわけである。またリンクを貰った側もカイパンもアカウントがなくてもダウンロードできるので、非常にお気軽にファイルを共有できる。

ストレージ容量を増やすには

アカウントを登録しただけだと、最初は5GBしか容量がない。しかし、アンドロイドかiOS用のアプリをインストールすることで追加で50GB獲得できるようだ。加えて、ウェイシンのアカウントに関連付けをすることで、さらに50GBを獲得できる。

以上の二つはそんな面倒な手順ではないので、すぐに100GBのオンラインストレージが確保できるわけだ。

まとめ

以上、簡単にカイパンの登録方法と使い方をまとめてみた。
本当はDropboxやSugarSyncと同じように専用のアプリをPCにインストールすると自動でファイルを同期したりもできる。ただ日本語環境のPCに中国語のアプリを入れると、いろいろと問題が発生する原因にもなるので、個人的にはあまり中国語のアプリはいれないことにしている。ウェブ上で使うだけでもファイルの保存には非常に便利だし、中国国内でのファイルのやりとりが多い場合はネットのスピードが速いので重宝するサービスである。

RubyでCSVファイルの読み込みを行う

Pocket

blog_5575021761_26b97bc9be_b

RubyでCSVファイルを処理するコードを書くときに、どのライブラリーを使えばいいのかいつも戸惑う。

今回も仕事でCSVファイルからデータを読み込んで、HTMLに出力するというちょっとしたスクリプトを書く必要があったのだが、またもや戸惑ってしまった。

これを機にどのような方法があるのか整理してみた。

CSVの取り扱いには、下記の3つの方法があるようだ。

  1. 通常のファイルとしてCSVを扱う
  2. Rubyに組み込まれているCSVライブラリーを利用する
  3. FasterCSVライブラリーを利用する

以下それぞれ詳しく説明していく。

1. 通常のファイルとしてCSVを取り扱う方法

ファイル入出力の関数を利用して、普通の方法でファイルを開き、一行ずつデータを読み込む方法である。

下記のサンプルはopenメソッドでファイルを開いた後、getsメソッドで一行ずつ読み取り、配列に格納している。なおgetsメソッドで得られる文字列は末尾に改行も含まれるので、chompメソッドで末尾の改行を削除し、splitメソッドで配列化している。

open("list.csv") do |file|
    while l = file.gets
        array = l.chomp.split(",")
        p array
    end
end

ちなみにTAB区切りのCSVファイルであれば、splitを下記のように変更すればOK。

open("list.csv") do |file|
    while l = file.gets
        array = l.chomp.split("\t")
        p array
    end
end

データの内容がシンプルであったり、フォーマットが約束されている場合は、通常のファイルを扱う方法でCSVファイルを処理すれば十分だと思う。

ただこの方法だと下記のようにデータの中にCSVのセパレーターであるカンマ(,)が含まれているとうまく処理できないはず。したがって、そのあたりも考慮にいれてまじめに実装する場合は、もっと手の込んだことをしなければならない。

list.csv

num,name
1,taro
2,"yamada,hanako"

あまり細かいことを考えずに、CSVデータの処理を真面目に実装したい場合は、後述のCSVライブラリーを利用する方法がよさそうだ。

2. Ruby標準のCSVライブラリーを利用する方法

CSVのライブラリーを利用する方法は下記の通り。セパレータのデフォルトはコンマ(,)。

require 'csv'
CSV.foreach("list.csv") do |row|
    p row
end

foreachメソッドでオプションを追加すると、文字コード、セパレーター、囲み文字等の指定もできる。 ただし、このオプションが使えるのはRuby1.9以降だけのようだ。

require 'csv'
CSV.foreach("list_tab.csv", { :encoding => "UTF-8", :col_sep => "\t", :quote_char => '"' }) do |row|
    p row
end

CSVファイルは下記の通り。

list_tab.csv

num     name
1       taro
2       "yamada,hanako"

Ruby1.8で上記コードを実行すると、以下のようにIllegalFormatErrorが出るので注意が必要(irbで実行した結果)。Ruby1.8では、セパレーターや囲み文字等をサポートしていないようである。セパレーターや囲み文字をRuby1.8で指定したい場合は、後述のFasterCSVライブラリーを使えばよい。

>> CSV.foreach("list_tab.csv", {:encoding => "UTF-8", :col_sep => "\t", :quote_char => '"' }) do |row|
?>     p row
>> end
CSV::IllegalFormatError: CSV::IllegalFormatError
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:639:in `get_row'
...

指定できるオプションは上記以外にもいろいろある。詳しくは下記のドキュメントを参照したほうがよいだろう。

ちなみにRuby1.8のCSVライブラリーのドキュメントはこちら。foreachメソッドの項目をみるとRuby1.9で指定できるオプションがない。

3. FasterCSVライブラリーを利用する方法

FasterCSVはRubyに標準で組み込まれていないライブラリーなので、使用するには別途gemでインストールする必要がある。 インストール方法は下記の通り。ただし、Ruby1.9以降はFasterCSVが標準のCSVライブラリーになっているそうなのでインストールは不要。というか、前述の「2. Ruby標準のCSVライブラリーを利用する方法」をとればよい。

# gem install fastercsv

使い方は下記の通り。 ヘッダーの有無や、文字コード、囲み文字などを指定できる。デフォルトのセパレーターはカンマ(,)である。

require 'fastercsv'
FasterCSV.foreach("list.csv", {:headers => true, :encoding => "UTF-8", :quote_char => '"'}) do |row|
    p row
    puts row[0] # 一番目の要素にアクセス
    puts row.field("name")  # ヘッダー名で要素にアクセス
end

rowに入る内容はFasterCSV::Rowオブジェクトである。普通に配列のようにアクセスできるし、ヘッダーの名前を使ってもアクセスが可能(ただしheadersオプションをtrueに設定したときのみ)。

出力例

#<FasterCSV::Row "num":"1" "name":"taro">
1
taro
#<FasterCSV::Row "num":"2" "name":"yamadao,hanako">
2
yamadao,hanako

なお、FasterCSVのドキュメントはこちら。

まとめ

いろいろ書いたが、使い方のまとめ。 単純なCSVデータであれば普通のファイル入出力のメソッドでopenしてデータをお手軽に処理すればよいと思う。 文字コードやセパレーター等を指定する必要のある複雑なデータを扱うのであればRuby1.9以降の場合は標準のCSVライブラリー、Ruby1.8の場合はFasterCSVを使うということになりそうだ。 うーん、Rubyのバージョンによって使い方を変える必要があるのは紛らわしい。 使い方をまとめて良かった。