2014年06月30日

mineoでスマホを使っている

とりあえずUbuntuとは関係ないのだけれど、この6月からk-opticomのmineoというサービスでスマホを使い始めた。その報告。

もともと私はスマホを使う必要もなかったのだけれど、3年ほど前、仕事の都合から携帯の電話番号がひとつ余分に必要になり、といってiPhoneやキャリアのAndroidoはもちろん、ガラケーの契約さえ余分に増やす余裕はなかったので、ちょうどサービスを始めていたb-mobileのイオンSIMでAndroidを使うことにした。中古で1万円弱のIDEOSを入手しておけば月額1,500円弱で(音質的にはかなり問題はあったが)050の番号が持てたので、これはこれで助かった。

そうこうするうちに各社でMVNOや付随のサービスがはじまり、面白いのでIIJとDTIのSIMを試してみたら、IIJのが気に入ったので、イオンは解約し、IIJのSIMとFusionのIP-Phone SMARTを併用することで050の番号を確保することにした。この組み合わせはけっこうよく、月額980円で運用できるのも助かった。そうこうするうちに3,000円で中古のXperia SO-01を入手したので、ようやく運用がスマホらしくなった。

ここにきて、MVNOのSIMを利用する理由が、「安い電話番号」から「スマホ利用」へとシフトするようになった。といっても主な用途は
  • Googleのナビでカーナビの代用
  • 出先でテザリングしてモバイルルーターの代用
  • 050の電話の受発信
  • Googleのカレンダーでのスケジュール管理
  • 音楽再生
  • 写真・動画の撮影
といった程度で、たいしたスマホユーザーではない。
それでも、そうやってスマホを使うようになると、だんだん5年も前の古いXperiaだと使いづらさを感じるようになる。上記のようにヘビーユーザーではないからかまわないといえばかまわないのだけれど、けっこう気軽に持ち歩いている端末なのであちこち傷んできてもいる。そろそろ買い替えかなあと思っていたところにk-opticomがMVNOのサービスを始めるというニュースがあった。

ここ数年、この手のニュースはひきもきらない。その度に競争があって私の愛用していたIIJのサービスが向上するので、それはそれで嬉しいのだが、といって乗り換えを検討するようなものでもないと感じていた。ところが、今回注目したのは、それまでMVNOは基本的にDocomoの電波を使うものばかりだったのが、k-opticomはKDDI(au)の電波を使うのだという。

どっちの電波がいいのかは、私にはわからない。都会で使うならどっちでも同じだろうし、田舎で使うならそれはその地方によってどっちがいいかは一概にはいえないはずだ。ただ、スマホを買い換えることを考えていた私にとっては、auであることの意味は大きい。というのは、Docomoのスマホは基本的にはどれでもMVNOのSIMが使えるので、中古品でもそこそこの値札が付いているからだ。一方のauのスマホは、MVNOのSIMが対応しないから買い手がau内での乗り換えに限られ、市場が小さいせいで同クラスの機種が数割安い。中古のスマホを検討しているうちにそんなことに気がついていたから、「これはオトクじゃないだろうか」と考えた。おまけにk-opticomのmineoという名のこのサービスは、先行割引キャンペーンをやっていたので、最終的に初期手数料分以上の割引が発生するからIIJから乗り換えるにもそれほど惜しいことはない。

ということで、適当な端末を中古で購入し、mineoに乗り換えた。購入したのは京セラ製のUrbano L01。買ってから気がついたのだけれど、世界的なメーカーであるSonyEricsonのXperiaとちがって、圧倒的に情報が少ない。「スマホなんてどれでも同じ」と思っていたけれど、いろいろいじることを考えたらメジャーなモノのほうが有利なのかもしれない。とはいえ、あとのまつりなので、これはこれで使うことにする。

さて、使ってみた感想だが、正直、XperiaをIIJのSIMで使ったときに比べてトラブルが多い。これは端末のせいなのかmineoのサービスのせいなのか、はたまたauの仕様のせいなのか切り分けが全くできないのだけれど、けっこう「あれ?」と思わされることが多い。IIJ-Xperiaのときは全く迷うことがなかったのに比べれば、ずいぶんとちがう。

まず、SIMをセットしたとき、なかなか「高度な設定」をオンにできなかった。何度やってもエラーになる。つまり、電波は受信しているのにサービスが利用できない。SIMカードを挿しなおしてみたり再起動してみたりと、いろいろやってもうまくいかず、諦めかけたときにようやくつながった。なにがなんだかわからない。それから、自動車の運転中にトンネルに入るなどしていったん接続が切れると、再接続しない。手動で接続をやり直す必要がある。テザリングをしようとするとすぐに切断され、設定をデータ通信のみにしてやらないと使えない。などなど、「ちょっとこれはどうしよう」というような不具合が続出した。それを何とか運用で乗り切ろうといろいろアプリを試しているうちについにシステムのようすがおかしくなった。しかたないと、諦めて初期化してみると、「あれ?」と意外だったんが、上記の問題がほとんど解決したことだ。いまでは再接続もちゃんとしてくれるし、設定を切り替えなくともテザリングもできる。ただ、なぜ初期化する必要があったのかを含め、原因がさっぱりわからない。

と、いろいろ文句もあるのだけれど、やっぱり(比較的)新しい端末は使いやすい。旧式のXperiaではうまく運用できなかったFusion IP-Phoneの公式アプリもうまく使えるし、Googleの各種サービスも使いやすくなった(ただナビだけは古いもののほうが使い慣れていてよかったのだけれど)。そしておそらくアプリの運用がうまくいっているせいだろうけれど、1GBある月間の通信量のほとんどを使い残して6月は終わった。IIJのときは月間500MBでかつかつだったことを思えば、かなりの余裕だ。

それなりに利用価値が高いから当分これでいってみることにしよう。とにもかくにも、税金入れても月額千円ちょっとなのだから。

posted by 松本 at 15:48| Comment(0) | TrackBack(0) | 総記・雑記 | このブログの読者になる | 更新情報をチェックする

2014年06月26日

Openboxでゲーム用のランチャーを作成した

以前、Openboxログイン時間制限用のスクリプトを書いたという記事で息子がゲーム(Minetest)をするのに時間制限を加えるためのスクリプトを作成した件を書いた。ゲーム専用のアカウントを用意し、そこでスクリプトを自動起動させ、1週間の制限時間を超えたら強制的にログアウトするように設定したものだ。これに関しては、毎週月曜日に制限がリセットされるようにしていたのを毎週日曜にするよう息子から要望があった程度で、まあ順調に作動している。
さて、このスクリプト作成の伏線は「MinecraftもどきのMinetestに息子がはまった」という件だったわけだが、その後、Mincraftが課金型ゲームだというのは私の誤解だったことがわかり、また、当初に支払うアカウント作成のための料金約3000円を息子が自分で負担することを約束したので、Minecraftで遊ばせることを承認した。その際、Minetestはどうするかと尋ねたら、そっちはそっちで引続き遊びたいという。別々に制限をかけたらややこしいので、まとめて制限をかけたい。それならば、以前、Minetest専用に作成したアカウントでMinecraftも遊ばせるようにすればいい。

Minetestを専用アカウントで使用するようにしたのは、もともとはUbuntuの場合、英語環境のアカウントでなければUIが崩れてしまうというバグがMinetestにあったからだ。それを逆手にとったとも言える。通常のアカウントから起動したのでは遊べないから、専用アカウントに行かねばならず、そこで時間制限を受けるという算段だ。Minecraftに関しては、以前はLinux環境へのインストールにそれなりの手数が必要だったようだが、いまではリポジトリにMinecraftを自動でインストールしてくれるプログラムが用意されている。だからソフトウェアセンターなりパッケージマネージャなりからクリックひとつでインストールできるのだが、そうやってしまうと全てのアカウントからMinecraftが遊べてしまう。

それでは困るので、ここは手作業でMinecraftの公式サイトからLinux用のパッケージをダウンロードし、それをスクリプトから起動してやることにした。こうすれば、それ相応の知識がない限り、他のアカウントからはMinecraftが起動できない。どうしても専用アカウントに縛られるから、そこで時間制限を逃れられなくなるはずだ。

そういう方針を立てたとき、ここで必要になるのはOpenboxで起動するように設定してある専用アカウントにランチャーを用意してやることだと気がついた。専用アカウントにログインすると、自動でランチャーが立ち上がる。そのランチャーからはMinetestかMinecraftが選べるようになっていて、どちらかを起動して遊ぶ。それ以外の起動方法はわからなくしておけば、息子はこのルートをとらざるを得ないから、制限時間以上には遊べないだろう。

ということで適当なランチャーを探したのだけれど、たかがゲーム2つを起動するためだけの最小限の機能のランチャーなんて、かえって見つからない。それならばPythonで書いてやろうと、また素人のプログラミングをやったのが下記のスクリプトだ。
#!/usr/bin/python
# coding: UTF-8

import os;
import ConfigParser
from Tkinter import *

if __name__ == "__main__":
    inifile = ConfigParser.SafeConfigParser()
    inifile.read("/home/~/config.ini")
totaltime = int(inifile.get("int","totaltime"))

if totaltime > 299:
    elapsedtime = "今週の残り時間はありません。"
else:
    elapsedtime = str(totaltime/60)+"時間"+str(totaltime -
int(totaltime/60)*60)+"分過ぎました。残り" + str(4-totaltime/60)+"時間"+str(59 -
(totaltime - int(totaltime/60)*60))+"分です。"

def craft():
    os.system( "bash /home/~/mclaunch.sh")

def mtest():
    os.system( "minetest")


class MyApp:
  def __init__(self, parent):
    self.myParent = parent
    self.myContainer1 = Frame(parent)
    self.myContainer1.pack()

    button_name = "MineCraft"
    self.button1 = Button(self.myContainer1,
      command=self.buttonHandler(button_name, 1, "MineCraft"))

    self.button1.configure(text=button_name, padx=80, pady=20, command=craft)
    self.button1.pack(side=LEFT,padx=50, pady=50)

    button_name = "MineTest"
    self.button2 = Button(self.myContainer1,
      command=self.buttonHandler(button_name, 2, "MineTest"))

    self.button2.configure(text=button_name, padx=80, pady=20, command=mtest)
    self.button2.pack(side=LEFT,padx=50, pady=50)


  def buttonHandler(self, arg1, arg2, arg3):
         print ""

  def buttonHandler_a(self, event, arg1, arg2, arg3):
         print ""

root = Tk()
root.title(elapsedtime)
myapp = MyApp(root)
root.mainloop()
息子の要望で、残り時間が表示されるようにしておいたが、これは以前の制限スクリプトで用意したconfig.iniという初期設定ファイルを読み込むことで対応している。再読み込みはしていないので表示される残り時間はログイン時点でのものだが、それでも十分だろう。なお、例によって素人のプログラムなのでサンプルから取り込んだ際に不要になった行もいくつか残っている。その他にも恥ずかしい間違いは多々あると思うが、何にしても一応は動くので、公開しておく。なお、スクリプト中のmclaunch.shというのはMincraft起動用のスクリプトである。

ゲームを制限したら、今度はYouTubeにはまりだした。一応こちらも制限はかけているのだけれど、なかなかうまく運用できていない。その話はまた別の機会に書くことにしよう。
posted by 松本 at 12:24| Comment(0) | TrackBack(0) | Ubuntuのアプリケーション | このブログの読者になる | 更新情報をチェックする