そういや、家ってついてんじゃん!

会社で仕事をしていると、出向先の同僚から Skype で秋葉で買ってほしいものがあると連絡が来た。聞くとかなり安くてお得な Windows タブレットらしい。なになに? と、AKIBA PC Hotline の記事を開くと CPU が Celeron N2810 でなんとメモリが 4GB(この手のヤツは 1GB や 2GB ばかりなのだ)、ストレージが 64GB(eMMC) というスペックで 13,500 円(税込み)。ただし、Office やそもそも Windows が入ってない。
いや、べつにいらないです。
メモリ 4GB なのがなんと言ってもありがたい。

と言うわけで、行くも、売り切れでした。
まぁ当然かー、くそー。
でも店員の話によると、明日と明後日も若干出すとのこと。
1504032263

で、その日の夜、その同僚と一緒に帰ることになり、ついでに飯ということでラーメン屋を探す。国分寺にある「武道家」というラーメン屋の点数が高いと言うことで行ってみる。
この段階でボクは「ぶどうか」と呼んでしまったため、タイトルにあるとおり「家」という文字に何も注意を払わなかった。
食券を買って席に着きながら、同僚に「そういえば何系のラーメンか調べなかったね」なんて言いながらふとカウンターにある写真に目がいく。太い麺にほうれん草が載っているのをみて「しまったぁぁぁぁぁぁ!!」と心の中で叫ぶ。そして「家」という文字にようやく気付いたのである。
横浜家系じゃん!

ボクは横浜家系が大嫌いなのである。くそー! 最後に家と付いているのにそれを「ぶどうか」と呼んでしまったばっかりに「横浜家系」と脳の中で結びつかなかったのである。これが「○○や」と読んでいればだいたいは気付くんだけど……。
あーあ、てんさげ~(何

まぁとはいえ出てきたラーメンは実直で真面目なラーメンでした。コクと出汁もしっかりしているし、麺もイイゆで加減。あんまりとんこつ臭くなく、バランスが取れているラーメンでした。でも基本は横浜家系の味です。
1504032266

Bluetooth ヘッドフォンに手を焼く

ボクは会社では Bluetooth ヘッドフォンをつけている。コイツだとヘッドフォンをつけたまま歩き回れるし、ヘッドフォンで一時停止や再生、次の曲、前の曲などの操作ができるからだ。
音は決して良くないが、便利さには叶わないといったところだ(家では Sennheiser のモニタ ヘッドフォン)。

でね、コイツがよく使えなくなる。
聞いていると突如音が聞こえなくなり、その後、PC を再起動するまでいっさい再接続しなくなってしまう。かといってそのたびに PC を再起動していたのでは仕事にならないので、その日はずっと音無しで過ごすことになる。
このトラブルは、Bluetooth Personal Area Network というのを無効にするとほぼ起きなくなることが判明し、以降、わりと快適に使っていたのだが、二週間ほど前、再起動しても PC とヘッドフォンが接続しなくなるという現象に陥ってしまった。

こうなってしまうといったん PC 側の登録されているヘッドフォンを削除し、再度ペアリングし直すと治ったりするのだが、操作を誤って──もうその操作は憶えていないのだが、確かデバイス削除中に間違えて Bluetooth アダプタを抜いてしまったのか、なんかそんな感じ──デバイスが削除できなくなってしまった。
再起動してもダメ。
Bluetooth アダプタのドライバを入れ直してもダメ。
とにかく、何しても削除できなくなり、もちろんペアリングも接続もできなくなり、Bluetooth ヘッドフォンが一切使えなくなってしまった(他の Bluetooth 機器もたぶん使えなかったのだろう)。

で、めんどくさいのでしばらく放置していたのだが、流石に有線のヘッドフォンはやはり不便だと言うことで、今日、本腰入れて解決することにした。どうやったかというと、これがもう憶えてないんだな(爆)。
とにかくなんかすると、ちゃんとデバイスが消せて、もう一度ヘッドフォンとペアリングし直すことによって解決した。なんだっけなぁ(ヲイ
これじゃぁ日記にする意味がないなぁ……。
なんかね、片思いのあの娘から妙に機嫌のいいメールが飛んで来たので、ご飯に誘ったらご飯どころか H までいっちゃったみたいなそんな感じの解決方法だった。あれ、ってことは夢か?(イヤマテ

Softbank の iPhone 4S を Docomo 回線で利用できるようにしてみる

さて、仕事で徹夜とかもだいぶ減ってきて、余裕が出てきたので秋葉で MVNOSIM カードを買ってきた。IIJmio のウェルカム パック。コイツは Docomo 回線を利用した MVNO だ。月 980 円でデータ回線と SMS が使える(当時)。
これとは別に iPhone 4S 用の SIM ロックを解除する SIM カードが会社に届いた。

と言うわけで、Softbank の iPhone 4S を MVNO で利用できるか実験してみた。

ここに至るまで、実は色々な検討があった。
元々は iPhone 4S を親にプレゼントしようと思ったのだ。だが、Wi-Fi しか使えない状況だと、親がまったく使わないと言うことが判明した。やはりどこにいてもネット回線が使えなければ、あまり使う気にならないようだ。
かといって Softbank に 1 回線契約したら、月 1 万近くかかってしまうことになる。そこで MVNO の出番となるのだが、MVNO の回線はほとんどが Docomo 回線であり、Softbank の iPhone 4S では SIM を挿しても使えない。
Softbank の MVNO(と呼んでいいかは解らないが)といえば Y! モバイルだが、コイツは音声コミで月 2980 円。Docomo 回線の MVNO は月 1000 円くらいなのになーと思いながらも、ヨドバシカメラの Y! モバイル ブースに行って話を聞いてみると、iPhone 5 以降なら動作実績はあるが、iPhone 4S は解らない、「賭け」になってしまうと言われてしまった。

そこでネットで検索すると、iPhone 4S では Y! モバイルの SIM ではダメだったというブログを見付ける(その時のツイート)。となるとこれはいよいよ SIM ロックを外すしかないということで今日に至るのである。

操作は簡単。ゲタと SIM ロック解除用の SIM(?)を重ねて入れてセット、その後、画面に出るロックを解除したいキャリアを選ぶ。そして、次にゲタと Docomo の SIM をセットすれば終了。
ばっちり、Docomo の SIM を認識
普通にネットが使えるようになった。

おおー、これで今度こそ Softbank とオサラバだ。
MVNO バンザイ!

さて、写真は鍋は「ポアル館」のカレーうどん、そして右はミニストップにあったムリヤリなのり弁。揚げ物のオンパレードに玉子、その下のご飯はそんなに多くないが、弁当そのものはずっしりと重かった。これで 310 円だったかなぁ。泊まり込みには有難い(結局、仕事で泊まってるじゃん!)
猫の写真は、まぁウチの猫。寝ていたところを起こしてやった(ぁ

1501201115 1501201111 1501201117 1501201107

雑談、アレコレ(主に iPhone の話)

iPhone の UI がクソなところ

ボクは周りからはそう思われていないのだが、実は Jobs 信者である。Apple の Macintosh は今まで一度も所有したことはないが、ボクがコンピュータ業界で頑張っていけるのは、実は Jobs がいたからである。彼の「誰でも理解出来る概念さえ提供すれば、どんなことでもユーザはついてくる」というのに感動し、様々な考え方を教わったからだ(要するにプレゼンテーションがうまい、もっと下世話な良い方をするとウソがうまいと言えるのかもしれないが)。
まぁそんなわけで、Windows を毎日使っている身からしても、Mac のユーザ インターフェース(UI)はよく出来てるなと思うし、初めて Android に触れたとき「なんだこりゃ?」って思って iPhone を使ってみたら、「おお、やりたいことが一発で解る」と感動したものである。でも Mac は絶対買わないけど(ぇ
そんな信者であるボクでも唯一許せない UI が iPhone にはある。
それは時計の時間の入力である。直感的であることを優先したのかどうか解らないが、iOS で時計を合わせる(もしくはアラームなどを設定する)時、ダイアル式なのだ。どういうことかというと、「時」と「分」が左右に並んでいて、それらは縦に回るダイヤル(スロットマシーンの絵柄の部分)になっていて、上下に指をこすることによって数字が 1 ~ 12、00 ~ 59 とスライドされていくのだ。
なので、イチイチ指をなぞって目的の数字に設定しなければならない。
これがめんどくさい。
普通にテンキーなら、4 回ボタンを押すだけなのに(例:12:50 にセットしたければ、1 → 2 → 5 → 0 と押せばいいのだ)。

なんでこんな UI にしたんだー!! やめてくれー!!
テンキーも表示してくれよ!

IMG_2475

たまきんの歴代 iPhone

去年の 11/22 に iPhone 6 に機種変したんだけど、それ以降忙しくて、それまで使っていた iPhone 4S がほったらかしになっていた。で、机の上に放置していたので、磨いたり液晶保護シートを貼り直したりして、ようやくキレイにして箱にしまった。
ボクは iPhone 5 も持っていたのだが、こちらは開発に使われていて、普段持ち歩いておらず、料理の写真を撮ったりとかにはまったく使われていない(現在は iPhone 6 を二台持っており、一台を開発に使っている)。
でもこうしてみると、スマフォはずっと Apple の機械を使っていたんだなーと何となく感慨深くなってしまった。あんなに Mac 買いたくないとか言ってたのにな(今でも言ってるけど)。
ボクが Apple の機械を買いたくない理由の一つが、これは非常に申し訳ない話だし、ボクの偏見でしかないんだけど、Mac ユーザにロクなヤツがいなかったのに起因している。これもまたボクの偏見で有り思い込みでもあるのだが、Jops がバカでも使える機械にしたおかげで本当にバカばっかりが使ってるんだろうな……っていう、そんな思い込みがあるのだ(絶対数で言えば Windows ユーザの方が絶対にバカは多いはずだが)。それくらい Mac ユーザにはひどい目にしか遭ってない(笑)。
なので今この記事を読んでいて Mac ユーザの人がいたら申し訳ない。でもそれくらいボクは Mac ユーザにひどい目に遭わされたと言う所だけは解っていただければと(汗)。

ちなみに Android は 1 年半ほど使っていた(Android 2.4)。ただ Android がクソなところは Android のせいではなくて、メーカー製 Windows みたいに最初から良く解らんソフトが一杯入っていて、そのせいで電池がすぐなくなったり高温になったりして、まったく使い物にならなかったってところが大きいような気がする(笑)。
Nexus みたいな機械を買えば良かったのかもしれない(と言ってもその当時、そういう機械はなかったけど)。

1501181102 1501181103

菊の御紋

艦これはボクはやってないんだけど、周囲でやってる人は多いし、Twitter の Timeline にも流れてくるので、まったく知らないわけではないのだが(ちなみにボクはかつて艦船好きではあった)、気になるのが菊の御紋である。天皇の家紋。艦これのエロ同人誌は一杯でているが、あの菊の御紋が精液で汚されたりとか、そもそも菊の御紋が省略(天皇のは花びらが 16 枚)されてたりしてないのかなぁ、とか思ってしまった(笑)。
そしてそうなってたら、右翼の人はやっぱり怒るんだろうか(爆)。

iOS 版 Atok を入れてみた

iOS が 8 になり、アプリだけでなくデバイス ドライバサードパーティが提供できるようになった。というこの一文だけで、その意味が理解出来る人は少ないと思うので噛み砕いて説明し直すと、iOS は今までアプリしか Apple 以外の会社が提供することは出来なかった。
アプリ以外何があるんだよ、っていうとそれはデバイス ドライバと言われるモノで、特定のデバイスをコントロールするプログラムだ。デバイス ドライバのように常にメモリ上に常駐し、ハードウェアを制御するようなプログラムは、通常のアプリよりも高い権限が与えられる。
なぜ高い権限が必要かというと、デバイス ドライバは全てのアプリから利用できる必要があり、さらに必要に応じてアプリよりも優先度が高く実行されなければならないからだ。例えばキー入力や画面タップを扱うプログラムは、各アプリにキーや画面が押されたことを伝えなければならないし、アプリの動作に関係なく、人間は勝手にキーや画面をタップするので、アプリの動作をいったん止めてでも、その人間様の操作をとりに行かなければならない。なので、デバイス ドライバは通常のアプリよりも優先して動くように作られているのだ。
そのため、悪さをするソフトウェア(マルウェア)の自由度も広がってしまい、さらに通常のアプリからは排除できないなどの問題も出てくるため、Apple 以外では配布できないようになっていたのだ。
それをどのようにクリアしたのか、ボクは調べてないのだが(マテ)、iOS 8 からはサードパーティ(Apple とは関係ない存在)からもリリースできるようになった。

で、案の定 Atok という日本語を入力/変換するドライバの iOS 版が今日リリースされたので、さっそく入れてみた。
今まで iOS にも Atok はあったのだが、それはメモ帳として提供され、そのメモ帳でのみ Atok が使えるというものだった。常にメモリに常駐し、ユーザからの入力をすべて乗っ取って(プログラムでは、フックという)動作するようには今まで書けなかったからだ。

でね、解ったことは、スマフォで文章を入力する場合、圧倒的に単文節変換+予測変換なのよ。例えば、「今日は東京はいい天気です。そちら、青森の天気はいかがですか?」って入力しようとすると、パソコンの場合、最後の「いかがですか?」を入力したところで初めて変換ボタンを押す(ボクの場合は自動変換を用いているので、変換ボタンさえも押さないが)。
ところがスマフォだと、「今日は」「東京は」「いい天気です。」「そちら、」「青森の」「天気は」「いかがですか?」と文節毎に変換していき、その途中で予測変換で合致したモノがあれば、それを採用していく。
となると、文章全体から予想される同音異義語の変換(例えば「貴社の記者が汽車で帰社した」みたいな文章)というのは余り効果を発揮しない。結局、文節毎に変換するので、どちらかというと「過去に何を入力したか」の方が大事になってくる。
なので「頭がいい」と評判の Atok である意味が、あんまりないのだ。
もちろん既に変換し終わった文章からも推測してくれてはいるようだが、スマフォでは圧倒的に過去に変換したものと予測変換(但しこれも過去に変換したものに大きく影響される)を頼りにしているので、Atok じゃなくても特に問題ないのだ。

つまり正直な感想、Atok にする意味って……ないような気がする。

まぁ、スマフォでも連文節変換すれば Atok でもいいような気がするんだけど、ボクは今のところスマフォで連文節変換をする気にはなれない。なぜなら変換途中のままずらずらと長い文字列を表示できるほどスマフォの画面って広くないし、入力間違いや変換間違いを見付けたとき、そこまで戻ってそこを修正して、また文末まで戻るとかそういう操作がやりづらい UI なのだ。

あと Atok にはもう一つ難点があって、やはりまだデバッグ不足なのか、時々お亡くなり(フリーズ状態)になる。そうすると文字入力が一切出来なくなってしまうのだ。こうなってしまった場合、現在のアプリをいったん終了してから起動しなおすと文字入力できるようになる。
それともう一つ、Siri が使えなくなってしまうのも問題だ。標準の文字入力から Atok に切り替えると Siri の呼び出しボタンがない。
ボクは両手が塞がっているときなどに Skype や SMS に応答するとき、Siri を使って文字入力している。Atok にしておくと Siri が呼び出せないのだ。

そんなわけで、iOS 版 Atok、今のところ……うーん、イマイチという感じだ。

IMG_2302 IMG_2303

レスポンシブ デザインのめんどくささ

今回はレスポンシブ ウェブ デザインの話。レスポンシブ ウェブ デザインって何かっていうと、一つのデザインですべてのプラットフォームとブラウザに対応することである。つまり PC でアクセスしてもスマフォでアクセスしても、同じデザインで出力される……というわけではなくて、一つのデザインしか定義してないんだけどそれで PC でもスマフォでもちゃんと表示されることである。

今やっているスマフォのゲームも最初、レスポンシブ デザインで作っていた。
このレスポンシブ デザインの肝は簡単に言ってしまえば%で作ると言うことである(ぁ
どういうことかというと、例えば 2 段組をするとき、全体幅が 1024 ドット、左側がメイン コンテンツで 640 ドット、右側がメニューとかで 384 ドットにしよう……ってのが今までの作り方。
レスポンシブ ウェブの場合は、全体幅は 100% で作り、本文左側は 62.5%、メニューとかの右側は 37.5% にしようってこと。そうすればどんな機器だろうが割合で区切られるので、それらの機器に従った大きさになる。
これはレイアウトだけでなく、画像の大きさに至るまで何もかも%で指定する。

ところが、この作り方には二つの欠点がある。

  • 文字の大きさは変わらない
  • ドット単位の微調整は不可能

ブロック要素や画像などは画面の大きさに従って勝手に変わってくれるのだが、文字の大きさはそれに追随してくれない。なので細かいディスプレイに出しても、荒いディスプレイに出しても同じ大きさ(ドット)で表示されてしまうため、要素の中に表示される文字数が変わってしまい、結局レイアウトが乱れる。
これはディスプレイの画素数と CSS ピクセル比ごとに文字の大きさを定義しておく必要がある。
さらにゲームではインターフェースに凝るため、ドット単位でのボタンやゲージ(メーターやプログレス バー)などの表示が必要となる。ブラウザは小数点第三位くらいまでの%値しか見てくれず、ドット単位での微調整はできない。これの回避方法は、ドット単位で組んだあと、Javascript や CSS の ZOOM を使って最適な大きさに表示するのだが、iOS の Safari などでバグが発生し使えないことが多い。これに関しては、まだボクの中では特に解決策は見いだせていない。
今回はドット単位で調整が必要なところは、合成した画像を変化する種類分作って対応するというわりと原始的な方法で回避した(^^; どういうことかというと、下地があってその上にボタンをドット単位で並べなければいけないような場合、下地とドット単位で並べたボタンを合成してしまい、どのボタンが光っているかというパターン分の画像を用意することによって、ドット単位での調整をしなくて良いようにした。ただこの方法は、パターンが膨大にある場合は使えない……。

まぁ、一番いいのは Javascript の ZOOM である。コイツさえ正常に動いてくれれば、レスポンシブ デザインは一気に楽になる。何故かというと、ドット単位で自由に作れるからだ。従来の作り方のように、例えば全体幅を 1024 ドットとか 640 ドットとかと固定して自由にレイアウトした後に、Javascript で機器のディスプレイの大きさに合わせて拡縮するようにすれば楽ちんなのである(爆。

他にも Table を使うのが難しかったり、横幅を必要とするモノがどうしてもスマフォなどだレイアウトが崩れてしまったりなど、一つのデザインで様々な機器に対応するのは一筋縄では行かない。TAMA Networks も燃費なんかの表の部分や、説明付きの画像の場合はスマフォで見ると崩れてしまう。
この辺、何とかしたいなぁと思いつつ……。
写真はこの日食べたもの。バーガーキングのブルーベリーのハンバーガーと、秋葉原の万豚記。

1412080730 1412080731 1412080737 1412080740 1412080741 1412080747

Webkit オンリーで組んでも……

スマフォの開発を相変わらずしているんだけど、今回の案件は別に PC で動作する必要はない。で、スマフォというと iOSAndroid が主流で、他のプラットフォームに関しては、ほぼ無視して良い(ゲームの場合の話ね)。となると、ボクが思ったのは「じゃぁ、Webkit に対応して作ればいっか」であった。
iOS に搭載されている Safari も、Android の Chrome も Webkit というレンダリング エンジンで作られているからだ(Chrome は Webkit からさらにフォークして Blink となった)。

ところが、けっこう iOS と Android で表示が違うんですな。
更に困ったのが Android の標準ブラウザ。
実は Android に最初からついてくるブラウザというのは Google Chrome ではない。なんでなのかというと、これはボクの予想でしかないのだが、Android デビューに Chrome は間に合わなかったからだと思われる。ちなみにエンジンは Webkit である。
Android 版の Chrome は Android のバージョンが 2.3 だか 2.4 だかくらいにようやくデビューした。なので Android には「標準ブラウザ」という、別のブラウザがずっとついてきている(Android 4.4 でようやく標準ブラウザが Chrome となった)。

この標準ブラウザがとにかくタコい。
まず Javascript の実行速度が圧倒的に遅い。そして HTML5 からついた修飾(ぼかしや縁取り、グラデーション)などの再現率が低い。特にぼかしがおかしい。

次に Safari。コイツのフォント処理はおかしい。とにかく文字の大きさが合わない。
なんだこれー!?
しかもバグがあって、Javascript で拡縮をやると正しい大きさにならないという……orz(CSS でも ZOOM を使うと同じ症状が出るらしい)
これが実に問題で、先の記事の CSS ピクセル問題で、CSS を書き直しせず、Javascript で最適な大きさに拡縮するという風に逃げたのだが、この Safari のバグのおかげで結局この方法は使えなくなってしまい、CSS を全面書き直さなければならなくなった。

だ、ダメすぎる……orz

だが今回、「ブラウザの場合分けはしない」というポリシーで組んでいる。これは別にボクの勝手なポリシーなんだけど。場合分けってのは何かっていうと、Safari だとこっちの処理、Chrome だとこっちの処理というようにブラウザことに処理をわけることだ。
CSS / HTML は一種類の定義ですべてのブラウザで通用するように書いた。まぁ、なんだかんだ言ってもレンダリング エンジンが一つだったというのが大きいだろう。これが PC だとこうは行かなかったと思う。