タブレットの画面を無線でミラーリングする(安上がりな)方法

先日、学内の研究授業で、教員(私)がPCの操作中教卓から動けなくなってしまっているので、タブレットを使うなどして教卓にかじりつきにならないよう工夫した方がいいというご助言をいただいた。そこで授業用にiPad Pro(11-inch)を(自腹で)購入した。机間巡視・支援をしながら、タブレットの画面や書き込みを、無線でミラーリングできたらいいな、と思ったのだ。

調べてみると、どうもAppleにはAirPlayという無線規格があって、それに対応したデバイス(Apple TVなど)を使えば無線で画面がミラーリングできるらしい。しかし、自分は今回買ったiPad以外にApple製品は持っていないし、今後買う予定もないので、わざわざApple TVを買うのはもったいないと思ってしまう。なんとかならないかと思って考えたり調べたりした結果、iPadなどのタブレット端末の画面を他のPCに共有して、その画面を投影するという方法に至ったので、ここにメモしておく(ポンチ絵はイメージ)。

準備したもの

  • PC
  • タブレット(今回はiPadを使ったけど、それ以外のタブレットでもOK)
  • プロジェクタとスクリーン、もしくはセンターモニタ
  • PCとプロジェクタ・センターモニタを接続するためのケーブル
  • Zoom(オンラインミーティングアプリ)
    • Zoomはオンラインでミーティングを行うためのサービスで、どうもSkypeよりもいろんな面で高機能らしい。今回はこのZoomアプリを画面共有のために使用する。
    • ちなみに、Skypeも画面共有ができるので、今回の記事と同様のことができるけど、そのためにアカウントを2つ取得しないといけないので、ちょっとめんどくさい。
    • TeamViewerというソフトでも同様のことができるけど(参考)、試したところ毎回動作したりしなかったりだったのと、iOS版アプリの評価がイマイチだったので、今回は使用を見送った。
  • PC用の有線/無線LAN環境
  • タブレット用の無線LAN環境
    • これらは同じネットワークである必要はない

手順

  1. まずはZoomアカウントを作成する。確かGoogleアカウントも使用可能だったはず。
  2. 次に、PCとタブレットにZoomをインストールし、アカウントにログインする。このあたりの手順はWeb上にたくさん情報があるので、詳細は割愛。
  3. ログインが済んだら、PCとタブレットで、個人(パーソナル)ミーティングスペースに入る。
    • Zoomはミーティング毎にIDが振られるのだけど、IDは基本使い捨てらしいので、毎回片方のデバイスでミーティングを立てて、もう片方のデバイスでIDを入力してミーティングに入らないといけない。それでは手間なので、 画面共有のみに使う場合は、恒久的に使える個人ミーティングスペースID(PMI)を使ってミーティングを始めたほうが、 操作が少なく済んで楽。
    • さらに操作を楽にするには、インスタントミーティング(ホーム画面の「新規ミーティング」を押して始まるミーティング)に、常にPMIを使用するよう設定する(参考)。そうすれば、アプリを開いて、ボタン一つで個人ミーティングスペースに入ることができる。
  4. 個人ミーティングスペースに入ったら、共有したい画面のデバイス(今回はタブレット)の上部にある、「共有」をタップし、一番上の「画面」をタップする。すると、もう片方のデバイス(今回はPC)に、タブレットの画面が表示される。

この方法のメリット

  • 教卓・ケーブルから自由になれる
    • これで教卓やAVボックスにかじりつき問題は解決される(はず)。あとは自分の腕次第。
  • PC・タブレット画面を同時に映すことができる
    • PC上のウインドウの一つにタブレットの画面が表示されるので、半分はタブレット画面、半分はずっと提示しておきたい資料を映す、といった柔軟な使い方ができる。
  • すべてのデバイスで同じネットワークに接続する必要がない。
    • 例えばFire TVなどの画面ミラーリングは同じネットワークに接続する必要があるが、意図せずして他のネットワークを拾ったりする(勤務校では無線LANに複数のSSIDがあって、たまに何かのはずみで切り替わっている)と、接続が切れてしまう。だけどこの方法ではZoomのサーバーを通して接続しているので、どのネットワークを拾っても接続は維持される(はず)。
    • ただし大学によっては、このようなアプリでの通信が制限されているかもしれないので注意。
  • お金がかからない。
    • Zoomは今のところ無料版でも十分な機能・性能があるので、PCさえ持っていれば、追加の費用はかからない。ただし、いつまで無料で使えるかは未知数。

この方法のデメリット

  • (特に接続直後)タイムラグがある。
    • 外部のネットワークを経由しているので、どうしても直接接続するよりも反応が遅い。
    • Web上では、Skypeよりも安定している、とった口コミも見かけたけど、実際のところ比べてどうなのかは、こちらでは未検証なのでわからない。
    • ただ、印象としては、接続後しばらくすると、かなり安定して動作するようになった(気がする)。
  • PCを持ち込まないといけない。
    • 自分はPCも毎回持参するつもりなので特に問題ないが、持っていくのはPCかタブレットどちらかにしたいという人には向かない方法だと思う。

おわりに

とりあえず今学期から試してみて、何かあったらここに追記したいと思います。

2018年振り返り

毎年恒例の一年の振り返りを。

研究について。論文投稿はなんとか1本できた。院生時代より仕上げるのにすごく時間がかかってしまった。昔より書くスピードが遅くなったのもあるけど、それよりも研究以外の業務(もちろん家庭のことも含む)が多くなってきて書くためのまとまった時間が取れなくなったのが大きいと思う。一方で研究以外の業務の合間を縫って時間を確保する体制が少しずつできてきたように思う。この調子でどんどんやっていきたい。

共同研究では、敬愛する先輩先生と、初参加の教育工学会で発表する機会をいただいた。学部生のときに『英語教育』で記事を読んで一方的に憧れていた先生とご一緒させていただけたのは本当に嬉しかった。あと自分の名前が入っている論文が国際誌に1本、国内誌に1本、それぞれ採択された。内容のみならず、査読への対応など勉強になることが多かった。こういう機会は今後も大切にしていきたい。

一方で今年は自分がメインで人前で話す機会はなかった。発表が増えると書く時間とかインプット量が減ってしまうので意図的にそうしたのだけど、それが吉と出るか凶と出るか。

研究絡みだともう一つ、5月の学会大会の実行委員長業務があった。学会内外の先生方に多大なご援助をいただいたおかげでなんとか終えることができた。しかしこれで春先の自分の時間はほとんどもっていかれた。某所の事務局で会を回した経験がなかったら潰れていたかもしれない。いかんせん開催校にいたのが自分一人だったこともあり、かなりしんどかった。自分のような立場も力もない若手ががんばらないと回らないような仕組みは、もともと無理があるわけなので、変えていかないといけないと思う。

大学内では、仕事をいろいろ任せてもらえるようになってきた。来年度からもいろんな仕事を担当することになりそうなので、信頼を裏切らないように頑張っていきたい。

家庭のことは順調そのものだと思っている。実際どうなのかは家内に直接聞いてみてください。

来年度の長期的な目標は、どうせ有言不実行になってしまいそうなので設定しないでおこうと思う。とにかく、その瞬間瞬間の仕事にベストを尽くすことに集中したい。

ということで本年は大変お世話になりありがとうございました。来年もどうぞよろしくお願いいたします。

Home away from home

先日の大阪でのLET全国大会の後、せっかく近くまで来たのと、高速道路のインターチェンジができて行きやすくなったということもあって、昔住んでいた街に少しだけ寄ってみた。高槻市というところで、小5の春までをここで過ごした。社会科での地域学習の授業も受けているので、高槻市の小学生程度にはこのあたりのことも知っている(逆に和歌山は地域学習がひと通り終わってしまった後の小5の夏から転校したので、地域のことを知るのに大変苦労した)。

高速道路を下りると、よく使ったバス停の周辺に出た。昔は山しかなかったのに、インターチェンジができて、今は大きな交差点になっていた。実は数年前に和歌山から名古屋に戻る道中にバスに乗って立ち寄ったことがあったのだが、そのときにはまだ工事中だったはずだ。自分の住んでいたときの記憶、数年前の記憶、今回の風景の3つにかなりギャップがあったので、戸惑った。

昔住んでいた宿舎(団地)はもう潰されてしまって、今は完全に住宅地になっていた。そびえ立っていた給水塔も、ボール遊びや鬼ごっこをした(あと骨折もした)公園も、同級生と野球をした広っぱも、全部なくなってしまった。数年前にはそのときにはまだ建物が取り壊されただけで、多少の雰囲気は残っていたように思うが、今回はもうその面影もなくなってしまっていた。

宿舎の並びから道を挟んで向かいの通りには、お店や住宅が並んでいたのに、それもかなりなくなってしまっていた。よくおつかいに行ったスーパーも、道路拡張で跡形もなくなっていた。小学校までの通学路だった商店街も、かなりのお店が閉まっていた。

とはいえ、昔と同様に残っているものもあった。

よくコロッケを買いに来た商店街のお肉屋さんは今も営業中だった。このお店は店頭でコロッケやミンチカツを揚げていて、前を通るととてもいい匂いがしたのだ。今まで食べたコロッケの中でここのが一番美味しいと思っていたけど、この日もやっぱり美味しかったので、思い出補正ではなかったようだ。また買いに来ますね。

父親に連れられて鉄棒の練習に来た、宿舎の敷地外の公園も健在だった。逆上がりができず、悔しいのと悲しいので、泣きながら練習したのだった。泣いているところを同級生に見られて、恥ずかしかった記憶もある。今は涙を流すことはほとんどなくなった。ましてや悔し涙など長い間流していない。あの頃のひたむきな気持ちは失われてしまったようだ。

遠足のおやつを買いに来た駄菓子屋もまだあった。当時は遠足のおやつは150円までと決まっていて、その制限の中で好きな駄菓子の組み合わせを考えるのがとても楽しかった記憶がある。数年前に来たときは、昔店にいたおばちゃんではなくおっちゃんが店番をしていたけど、今はどうされているのだろうか。

小学校までの通学路も、昔と変わらないままだった。当時はすごく長い通学路だと思っていたが、今見るとそんなこともなかった。通学路上にあった公園も、小学校の校舎も、昔は大きく見えたのに、今見るとそれほど大きくは見えなかった。僕の身体が昔より大人になったからなのか。

通った幼稚園や小学校も、そのままだった。当時の同級生とはまったく連絡をとっていない。小学校の5年、幼稚園からなら7年を一緒に過ごしたとはいえ、それももう18年前のことなので、さすがにみんな自分のことなど覚えていないと思う。当時携帯電話があったなら…と思ったりすることもあるが、自分が連絡不精なので、あってもなくても結局今と変わらないような気もする。みんな元気にしているのかな。

1時間弱の滞在だったが、これ以外にも色々と見て回れた。また帰ってきます。

(続)Rで学生・生徒を指定した人数のグループに分ける関数

先日のNagoya.R #18で、以下の記事のグループ分け関数についてお話させてもらった。

Rで学生・生徒を指定した人数のグループに分ける関数

この関数について吉野睦さんから、もっと簡単に同じことができることを教えていただきました。この場をお借りして感謝申し上げます。ありがとうございました。ご提供いただいたコードを許可をいただいた上で以下に転載させていただきます。

rm(list=ls())

# エクセル名簿から貼り付けるとこんな感じ(改行だけ)

x <- c("
川口勇作
川口勇作
川口勇作
川口勇作
川口勇作
川口勇作
")
# こんな感じに縦に並んでいるものを貼り付ける

# 改行コードで分割する
x <- strsplit(x,"\n")[[1]]           # なぜかリスト形式になってしまうので[[1]]
x <- x[!nchar(x)==0]                 # 空文字列を取り除く

# ここからがメインルーチン
class <- 10
index <- rep(1:class,len=length(x))  # クラス番号生成
index <- sample(index)               # クラス番号をシャッフルする
x <- split(x,index)                  # クラス分けする
print(x,quote=FALSE)                 # 名前のダブルコーテーションを取って表示

流れとしては以下のとおり。

エクセルから、ダブルコーテーションなし、カンマなし、改行のみで貼り付けたことを想定し、

strsplit()関数で名前データ生成

あとはメインルーチンで、

クラス数を指定
rep()関数でクラス番号を生成
sample()関数でシャッフル
split()関数でクラス分け
print()関数で、ダブルコーテーションなし表示

自分はfor文の中でfor文を回すという効率の悪いやり方をしていた。以前Python Bootcampに参加したときにも感じたことだが、今の自分にはこういう効率の良いコードを書く能力が欠けているようだ。フィードバックをいただける環境に感謝。


【追記 2018/9/2】吉野さんから以下のような追加情報をいただきました。ありがとうございました。

最後の、

print(x,quote=FALSE)

を、次のように変更して頂くと、リスト形式がデータフレームに変更できます。

y <- lapply(x,function(z){c(z,rep("",max(sapply(x,length))-length(z)))})
xx <- do.call(cbind,y)
print(xx,quote=FALSE)



Rで学生・生徒を指定した人数のグループに分ける関数

【追記 2018/5/13】コードをWordpressに貼り付けたときに一部の文字(””)が違う文字として貼り付けられてしまっていることに気づきました。現状では、そのまま貼り付けただけではエラーになりますので、ご注意ください。 -> 解決しました。

【追記 2018/5/29】特定の人数でエラーを吐くバグを修正しました。バグをご指摘くださった田村さんありがとうございました。

【追記 2018/5/31】出力の”member”が”menber”になってました。どれだけ麺好きなんだ。ということで修正しました。

【追記 2018/8/24】この関数について、Nagoya.Rでもっと簡単に同じことができるというコメントをいただきました。詳しくはこちら


表題の件について。前々から作ろうと思っていたけど、近いうちにNagoya.Rをやることになりそうなので、話の種に作ってみた。

以下をRのコンソールに貼り付ける。

Windowsの方はこちら

groupfunc <- function(p){
	d <- as.vector(read.table("clipboard", header = F, sep = ",")[,1])
 
	#学生数
	n <- length(d)
 
	#余りの人数
	r <- n%%p
 
	#空の行列を作成
	if(1 <= r){
		tb <- matrix(, nrow = trunc(n/p), ncol = (p+1)) #余りが1以上であれば、余分に1列を追加
	}else{
		tb <- matrix(, nrow = trunc(n/p), ncol = p)
	}
 
	#余った学生がいなくなるまで1人多くサンプリング
	for(i in 1:trunc(n/p)){
		if(i <= r){
			for(j in 1:(p+1)){
				tb[i,j] <- sample(d, 1)
				d <- d[-which(d %in% tb[i,j])]
			}
		}else{
			for(j in 1:p){
				tb[i,j] <- sample(d, 1)
				d <- d[-which(d %in% tb[i,j])]
			}
		}
	}
	result <- as.data.frame(tb) 
 
	#空行の削除(参考:http://id.fnshr.info/2017/08/14/r-blank-row-col/)
	#	is_blank の定義
	is_blank <- function(x) {is.na(x) | x == ""}
 
	# すべてが空欄である行を探す
	unnecessary_row <- apply(result, 1,
													 function(x){
														 all(is_blank(x))
													 })
 
	# 「すべてが空欄である行」以外を残す(=空行の除去)
	result <- result[!unnecessary_row,]
 
	#見出し行に名前を付与
	namae <- "member.1"
	for(k in 2:ncol(result)){
		namae <- append(namae, paste("member.", k))
	}
	colnames(result) <- namae
	result
}

【追記 2018/5/13】Macの方はこちらを。Macでは動かないことをご指摘くださった田村さんありがとうございました!

groupfunc <- function(p){
	d <- as.vector(read.table(pipe("pbpaste"), header = F, sep = ",")[,1])
 
	#学生数
	n <- length(d)
 
	#余りの人数
	r <- n%%p
 
	#空の行列を作成
	if(1 <= r){
		tb <- matrix(, nrow = trunc(n/p), ncol = (p+1)) #余りが1以上であれば、余分に1列を追加
	}else{
		tb <- matrix(, nrow = trunc(n/p), ncol = p)
	}
 
	#余った学生がいなくなるまで1人多くサンプリング
	for(i in 1:trunc(n/p)){
		if(i <= r){
			for(j in 1:(p+1)){
				tb[i,j] <- sample(d, 1)
				d <- d[-which(d %in% tb[i,j])]
			}
		}else{
			for(j in 1:p){
				tb[i,j] <- sample(d, 1)
				d <- d[-which(d %in% tb[i,j])]
			}
		}
	}
	result <- as.data.frame(tb) 
 
	#空行の削除(参考:http://id.fnshr.info/2017/08/14/r-blank-row-col/)
	#	is_blank の定義
	is_blank <- function(x) {is.na(x) | x == ""}
 
	# すべてが空欄である行を探す
	unnecessary_row <- apply(result, 1,
													 function(x){
														 all(is_blank(x))
													 })
 
	# 「すべてが空欄である行」以外を残す(=空行の除去)
	result <- result[!unnecessary_row,]
 
	#見出し行に名前を付与
	namae <- "member.1"
	for(k in 2:ncol(result)){
		namae <- append(namae, paste("member.", k))
	}
	colnames(result) <- namae
	result
}

( )の中の引数でグループ毎の人数を指定する。2人グループ(要するにペア)なら2を、3人グループなら3を入れる、といった感じで。

空行の削除は、以下の記事を参考とさせていただきました。

Rで空行・空列を除去する方法

人数がグループ数で割り切れない場合、余った人を各グループに1人ずつ割り当てるような仕様となっている。例えば30人で4人グループを作る場合、4人グループが5組と、5人グループが2組できる。これは自分が授業内で即興でグループを作るときのアルゴリズムに則っている。「いや自分なら4人グループ7組と2人ペア1組にする」という先生がいましたら、この関数はそういうのには対応していませんごめんなさい。

この仕様のせいで、思ったようなグループの人数にならないときがある。例えば40人で7人グループを作るとき、余った5人をできたグループに割り当てていくと、すべてのグループが8人になってしまう。これは余りの人数などで例外処理をしていけばいいのだろうけど、しんどいので今回は割愛。そもそも7人グループとか作ることなんて滅多にないと思う。

これをShinyアプリにするのが本当のねらいなのだけど、それはまた時間のあるときに。

2017年振り返り

2017年は人生のターニングポイントともいえる1年だった。慣れないことわからないことに奮闘し続けた年だった。

3月に博士後期課程を満期退学して、4月から現任校で働き始めた。学部から数えて9年を大学という場を過ごして、ようやくお金を納める側からもらう側に回ることになった。修士から博士まで足かけ5年在籍した名古屋大学を離れて(といっても近い場所ではあるのだが)、マンネリ打開のいいきっかけになる…はずだったのに、結局1年目の忙しさ、不慣れさにかまけて、研究活動らしい活動まではほとんど手が回らなかった。授業のことや事務のことなど、慣れるだけで精一杯だった。来年度は仕事にも慣れるだろうし(また量は増えるだろうけど)、コマ数も減ることになっているので、もっと効率的に仕事をしたいと思う。

研究面で個人的に一番大きかったのは、大修館書店の『英語教育』に寄稿させていただいたことだった(しかも2回も)。大学時代にこの雑誌を読んだことが大学教員を志すきっかけのひとつだったということもあり、この雑誌の記事を書かせてもらえたというのは、自分の中では特別なイベントであった。お声がけくださった皆様に感謝申し上げたい。自分がこの『英語教育』に寄稿するに値する研究者なのかどうかは甚だ自信がないが、自信を持てるようにこれからも精進していきたい。

仕事以外の面だと(というか仕事を含めても)、子どもが生まれたというのが今年の一番大きいイベントだったと思う。子どもはかわいい。けど赤ん坊の世話は経験したことがなかったので、慣れるまでしんどい思いをした。子どもの存在が仕事の励みになる一方で、家では仕事にならないので、仕事の仕方を変えようと試行錯誤した年だった。今でもなかなかうまくいかないが、個人的な信条として、仕事と家庭のどっちか一方だけというのはやりたくないので、頑張っていきたいと思う。とにかく子どもはかわいい。大事なことなので二回言いました。

あと春先に初めて車を買った。安い中古車だけど(しかも早速バンパー擦ってしまったけど)最初の車ということで愛情もひとしおである。小さい車なのでいつまで乗れるかわからないが、これからも大事に乗りたい。

来年もよろしくお願いいたします。

 

ThinkPad X1 Carbon(第3世代)のゴム足交換

先日、ThinkPad X1 Carbon(3rd Gen.)のゴム足が取れた(参考: ThinkPad X1 Carbon(第5世代)の感想)。そこでレノボのカスタマーサービスに連絡して、ゴム足を送ってほしいとお願いしたところ、保証内の範囲で対応してくれることになった。ただし、ゴム足だけ送るということはできず、ベースカバー(裏蓋)ごと交換になるという。PC本体を送りつけて先方で交換してもらうか、ベースカバーだけ送ってもらってこちらで交換するか、という選択肢を提示され、自分で交換を選んだというのが今週頭の話。

その後、いろいろと確認事項が書かれたメールが届いた。内容は、交換済みの部品を返送すること、その際梱包資材は送られてきたものをそのまま使うことなど、手続き上の注意点に加えて、シリアルナンバーの書かれたラベルを新しいベースカバーに貼り替えてください、とあった。

一昨日(連絡してから2日後)、ベースカバーが届いた。当たり前だが2年弱使ったものよりきれいである。早速取替作業を行う。ネジ穴が持っているドライバーと微妙にマッチしなかったが、なんとか締め上げ作業終了。あとはラベルを貼り替えるだけ…となったとき、ベースカバーと一緒にラベルがたくさん入った袋が同封されていることに気がついた。よくよく見てみると、製造地や基準適合マークが書いてあるラベルがいっぱい詰められていた。元々のラベルを移植すればいいやと思っていたので、横に放っておいて作業開始。

自分のものは日本の米沢工場で製造された、所謂米沢生産モデルというやつで、ラベルにもAssembled in Japanの表記とともに、Factory IDがYZ(米沢)と記されている。米沢モデルにこだわって購入した自分としてはこのラベルに思い入れがあるのだ。

そう思いながら作業を開始したのだが、なんとラベルを剥がすのに失敗してしまった。こだわりのラベルが見るも無残な姿に。つらい。こんなことなら剥がす前に写真をとっておくのだった。

それではせっかくなので新品ラベルを使わせてもらおうか・・・と思ったら、なんと自分のPCの製造地が表記されたラベルが入っていないではないか。添付されていたラベルは、Made in China表記の、Factory IDがKSのものばかりで、米沢ラベルは1枚も入っていなかった。

(ちなみに「KSってどこやねんks」と思いながら調べてみたが、この工場についての情報は見つからなかった。一体どこなんだろうか)

ということで、しかたなく応急処置として、日本語が書かれたKSラベルを貼っておいた。けどやっぱり悔しいので、レノボに米沢ラベルを送ってもらえないか交渉してみる予定。うーん。

そうそう肝心のゴム足は、今のところしっかりとくっついている模様。もう少し活躍してもらおう。


【追記】

サポセンに問い合わせてみたところ、米沢生産ラベルは保守部品として用意がなく、手配できないそう。とっても残念。米沢ラベルを貼り替えされる方は、破損しないようにご注意ください。

てかこんなガチガチにひっついたラベルを貼り替えるってのがそもそも無理ゲーだったよな…。

 

ThinkPad X1 Carbon(第5世代)の感想

そこかしこにいっぱいレビューが出ているので今更感はあるが、先日届いた第5世代のThinkPad X1 Carbonの感想を、感動が薄れないうちにまとめておきたい。

まず何よりサイズが小さくなったのが素晴らしい。今まで使っていた第3世代と比べて、14インチという画面サイズそのままで、額縁が狭くなったことで、ひと回り小さい13インチPCレベルの大きさになった。この微妙なダウンサイジングが意外と馬鹿にできなくて、膝上や、喫茶店のテーブル上で画面を開いたときの圧迫感がかなり軽減された。

そして軽くなった。第3世代は1.3kgほどだったのに対し、第5世代は1.1kgほど。たった0.2kgの違いだが、量りにかけるまでもなく、手に持って比べてみると軽くなったことがよく分かる。

個人的に一番楽しみにしていたのがWWANで、本体が届く前からSIMカードを入手して待っていたほど。使ってみると、やはり便利だった。出先でいちいち携帯のテザリングやらモバイルルーターやらをオンにする手間が省けただけで、すごく得した気分になる。スリープから復帰して再度電波を拾う際にもたつくのが気になるが、これからドライバがアップデートされればなんとかなると思っている。

割と重要視しているキータッチも、第3世代と比較して改善されたように思う。フニャフニャせず、しっかりしているし、かといって硬すぎるわけでもない。程よい感じ。

見た目の話をすると、天板が金属っぽい加工だった第3世代に対して、第5世代では伝統のピーチスキン加工が復活していた。これもThinkPadらしくて非常に良い。

あと、第5世代のトラックパッドは非常に良くなっていた。第3世代では、2本指で画面スクロールをしてもなんとなくカクついた動きだったのに対して、第5世代ではMacと遜色ない操作感。ポインタ操作は基本的にトラックポイント(所謂赤ポチ)派で、トラックパッドはそれほど使わないのだけど、これなら使ってもいいと思える出来だった。一方トラックポイントは、もう少しポインタ速度を上げられるとよいのだけど、これもドライバが更新されればなんとかなると思っている。

ということで全体的にはかなり満足度高め。Thunderbolt3で接続するドックも注文中なので、それと併せて使うのが楽しみだ。


【追記】

ゴム足の仕様も第3世代から変わっていた。第3世代は、円形のゴム足が強力な両面テープでくっついているだけだった。この第3世代のゴム足が、一旦何かのきっかけで取れてしまい、そこから頻繁に行方不明になって困っていたのだが、今回のモデルは本体と固定されている(らしい)ので、そういうことはなさそうだ。

ちなみに先日、第3世代のゴム足がまた行方不明になって見つからなくなり、レノボのカスタマーサービスに問い合わせたら、保証の範囲内で新しいものを送ってくれることになった。といっても、ゴム足だけの送付はできないらしく、ゴム足のついた新品のベースカバー(裏蓋)が送られてくることに相成った。本体預かりで交換か、自分で交換して古いパーツを送り返すか、どっちがいいかと聞かれたので、裏蓋くらいなら自分で交換しますと返事した。今は裏蓋を待っているところである。

スマホ(Arrows M03)の内部ストレージにしたSDカードが死んだ話

スマホ(という呼び方が実は好きではなくて普段は携帯と呼んでいるのだけど、伝わりにくいのでここではこう呼ぶ)で使っていたSDカードが死ぬという嫌な出来事が起きたので、久しぶりにブログに書く。

まず、自分が使っているスマホは富士通のArrows M03という、一般的にミドルスペックとされている機種(もちろんOSはAndroid)。OSがAndroidで、SIMフリー対応で、かつおサイフケータイ対応の、数少ない機種の一つである。ちなみに防水・防塵・耐衝撃という、自分好みの特徴も持っている(同じ理由で、時計はG-SHOCKが好きだし、PCもタフなThinkPadやLet’s noteが好き)。

ただ残念なのはマシンスペックで、CPUは前世代の感があるSnapdragon 410で、RAM容量は控えめな2GB。購入時にもいささか心もとないと思ってはいたものの、目をつぶって購入したら、やはり普段使いですらもたつくことが多く、使っていてストレスを感じる機会が多かった。
http://www.fmworld.net/product/phone/m03/spec.html

そして内蔵ストレージは16GBなのだが、これが思っていた以上に問題で、普段使いのアプリをインストールしただけですぐに容量がいっぱいになり、新しいアプリをインストールすることができなくなってしまった。またストレージ容量がギリギリいっぱいだと動作が不安定になり、これが前述のスペックの問題と相まって非常にストレスフルで、一時は、買って半年も経たないのに買い替えを検討するレベルだった。

そんな中で、M03にmicro SDカード(SD)を入れて、それを内部ストレージとして使う、という記事をいくつか見つけた。

  • http://qiita.com/komi5320/items/94ec16f1c1748698a7d4
  • http://zmzlz.blogspot.jp/2016/10/android-60-arrows-m03-microsd.html
  • https://ameblo.jp/suxen/entry-12231230442.html
  • http://myset.hatenablog.com/entry/2016/12/12/000000

これらの情報は、買い替えたくても先立つものがなくて我慢するしかなかった自分にとってはまさに渡りに船だった。そこで早速、AmazonでこのMicro SDカードを注文したのだった。当時は☆4つほどの評価だったと思う。高評価なのに安価だったことが決め手だった。

ただ、全体的な高評価の反面、☆1評価が割合多かったのが気になった。一応確認すると、買って数日~数ヶ月で、壊れるというレビューが目立った。しかし、それまで自分がSDカードやUSBメモリを購入した際にハズレを引いたことがなかった当時の自分は、「どんなSDでも、ある程度初期不良があるだろうから」と、深くは考えていなかった。

届いたSDを早速内部ストレージ化し、可能な限りのアプリを(表示の上では内部ストレージになっている)SDに移動させると、保存容量に余裕ができた。そのおかげで、しばしの間自分は快適なスマホ生活を送ることができていた。とはいえ、全てのアプリがSDに移動できるわけではないため、多少容量が空くといったくらいのことだったのだが、それでも容量不足で新たなアプリがインストールできないといった事態は解消され、それだけでも満足していた。

少し雲行きが怪しくなってきたのは、新年度に入ってすぐのこと。挙動がすごく不安定になったり、動作のもたつきがひどくなった時期があったのだが、その際にキャッシュを削除すると、その状態が解消されることに気がついた。それでいい気になった自分は、自動でキャッシュをクリアするアプリを入れて、1日1回自動でキャッシュクリアするようスケジュールしたのだった。

それが良くなかったのか、その少し後から、SDに移動していたFacebookアプリなど一部のアプリが起動できない(のみならず、他のアプリを使用している際に、「動作を停止しました」というダイアログが何度も表示される)という事態が頻発した。結局この状態の原因は今でもよくわからないのだが、アプリを本来の内蔵ストレージに戻してあげるだけで解決したので、そのときはさして気にしていなかった(ちなみにTwitter アプリも、アイコンや画像が表示されないという事態が起こったのだが、これは気づかないうちに解消されていた。これもよくわからない)。

その後しばらく経った今月8月、なんとなくストレージ容量を確認していて、また内蔵ストレージに余裕がなくなってきたことに気づいた自分は、Facebookなどのいくつかのアプリを再びSDに移動させた。今思えばこれがトドメになったような気もする。

そして今日、学会を終えた自分は観光を楽しんでいた。その最中、いつの間にかスマホの電源が落ちていることに気がついた。「バッテリーには余裕があるはずなのに…」と思いつつ、再度電源を入れてみると、普段以上に起動に時間がかかる。嫌な予感は的中し、SDが正しく認識できないという通知が出た。単なる接触不良では、と疑って数度にわたって挿し直しや再起動を試してみたが、やはり改善しない。スマホの方も、本来あるはずのSDが検出されないからか挙動がおかしくなってしまい、せっかくの観光なのにカメラが使えないという事態に陥った。カメラを起動すると「ストレージ不足で使えない」旨のダイアログが出る。SDを抜いても直らない。

おそらくSDに入っていたであろうFacebookをはじめとしたアプリも起動できなくなった。それどころか、もともとの内蔵ストレージに入っているそれ以外のアプリも、なぜか挙動が不安定になった。

スマホのストレージ設定を開くと、やはりSD自体は認識されているものの、異常があるのでフォーマットの必要があるというような表示が出た。それじゃあとりあえずフォーマットしてみましょうかと試みると、エラーでフォーマットが完了できないと出てくる始末。内部ストレージとして認識されていたSDを削除し、その後再度フォーマットを試してみたものの、やはりうまくいかない。

そこでホテルに到着してすぐ、Windows機にSDを挿して、diskpartを起動し、cleanでパーティションごと削除しようとした。が、ただそれだけの処理にしては、えらく時間がかかる。「買ってすぐに/しばらくして壊れた」というAmazonでの低評価レビューを思い出し、一抹の不安がよぎった次の瞬間、

キャプチャ

で、でたーI/O デバイスエラー。万事休す。おそらくSDは死んだのであろう。

まさか自分にこんなことが起こるとは思ってもみなかったので、この事態に対しては完全に為す術がなかった。SDに移動させていたアプリやデータは根こそぎ消え、今となってはどのようなアプリがSDに入っていたのかすらわからない。これから、「さあこのアプリを使おう」と思ったタイミングで、そのアプリが消えていたことに気づき、そして再度インストールする、という営みを、消えたアプリの数だけ繰り返すという日々が待っているのだろう。

唯一の救いは、カメラで撮った写真が即時的にGoogleフォトにアップロードされる設定にしていたおかげで、写真はすべて残っていたということだ。通信量節約のためにモバイルデータ通信でのバックアップをオフにしていたら、今回の学会期間中に撮った写真は根こそぎ消えていたはずだ。

SDを抜いたら、スマホの挙動は安定し、カメラも起動するようになり、とりあえず一件落着なのだけど、また容量不足で悩まなければならないのかと思うと、ちょっと気が重くなる。とはいえSDを内部ストレージ化してトラブったときのややこしさ・面倒臭さも今回学習したので、しばらくはSDなしでやってみようと思う。

てかSIMフリー・Android・防水・防塵・耐衝撃・おサイフケータイ対応のハイスペック機種はよ。

2016年振り返り(後半)

前半はこちら

後半は自分の研究史上最悪のグダグダっぷりで、特に振り返るべき事項もない1年だった。

論文も書かず、勉強もせず、かと言って何があるわけでもなく、ただただ慌ただしい雰囲気の中、時間のみが過ぎ去っていく、もどかしい1年だった。

来年のことを考えると不安しかないが、とにかくやれることからコツコツやっていきたい。

来年もよろしくお願いします。