プログラミングする上で致命的な欠点が iPad にはあった(解決)

実は旅行に行っている間、ずっと PHP の開発をしていた(笑い
ツールは iPad +リモートデスクトップである。amatsukami.jp サーバ上にある仮想マシンが実質の開発マシンであり、iPad はそれを遠隔で操作するためのものである。なので、Windows で開発していると言っても良い。
エディタは秀丸だ。

PHP 程度では上記の装備で、そんなに問題ない。デバッグも別に専用のデバッガを起動してブレークポイントを設定したり、メモリやスタックの中をダンプしたりなんて必要もない。PHP なんていうものは、プログラムと言ってしまってもいいものかと恥ずかしくなるくらい簡単な言語である。まぁだからプログラマを引退したボクでもある程度は組めるわけだが。

開発のストレスというのは主にキーボードにある。前にも説明したが、キー入力情報だけを送って Windows の IME を使うと言うことが現時点では iOS ではできない。実際入力した文字情報が Windows には送られる。

  • CTRL や SHIFT などの情報が限られる
  • 日本語の辞書が iOS のものを利用することになってしまう
  • スペースで変換出来ない

まぁ、主にこんな感じだ。何のキーを押したかという情報が送られていれば、処理をするのは Windows の方になるのでかなりストレスが減るのだが、なにをするにも iOS 側で変換された文字情報が行くので、どうしてもこうなってしまう。

今回の旅先の仕事は、新しく組む部分はほとんどなく、出発する前にだーっと組んでおいたプログラムが正常に動くか確認し、動かなかったら修正するというのがメインだった。だから基本的にはデバッグ作業みたいなものだ。だから入力する部分もとても限られている。
だから最初はあまりストレスを感じなかった。

結局、作ってきたプログラムがそのままではなぜか動かす、何か根本的に間違っているのかと思い、いろいろと組むことになった。そこで iOS の新たなクソ仕様が判明してしまうのである。

シングル&ダブル クォーテーションが勝手に全角になって補完されてしまう! しかもそれを OFF にする方法がない!!

どういうことか、プログラマじゃないと解らないことなので順を追って説明しよう。
シングル クォーテーション、ダブル クォーテーションというのは、’ や ” というものだ。日本語で言うと「」みたいなもんだ。これは日本語と同じく、前と後ろで種類が違う。

‘シングル クォーテーションで囲んだよ。’
“ダブル クォーテーションで囲んだよ。”

とまぁ、こんな感じだ。しかしプログラミングではいちいち書き分けはしない。すべて右閉じのものを利用する。

'シングル クォーテーションで囲んだよ。'
"ダブル クォーテーションで囲んだよ。"

そもそも全角の文字を使うこと自体、NG だ。ところが iOS ではこれらの文字を入力すると、始まりは ‘ に、終わりは ’ に勝手にされてしまうのだ。設定にある自動補完機能を OFF にしてもダメ。プログラムではシングル クォーテーションやダブル クォーテーションでコンピュータに与える値を囲むことが多いため、この二つの記号は使いまくるのだ。

結局どうしたかというと、シングル クォーテーションを入力したいときはすでに入力されているシングル クォーテーションをクリップボードにコピーして貼り付けるという方法で回避するしかないのだ。ダブル クォーテーションを入力したくなったら今度はダブル クォーテーションをクリップボードに。
なんだそりゃ???
ウンコ過ぎるだろ。

一応、もう一つ回避方法がある。それは「変換」だ。クォーテーションを入力したあと変換キーを押すと候補に半角のクォーテーションも出てくる。ただこれがよく解らないのが、出てこないこともあるのだ。良く解らん。ただこれに関してはこちらの問題もありそうな気はするが……。

そんなわけで、これは超致命的。プログラミングに全く使えないと断言しても良い。
買い換えを考えるレベルだ。
う~ん、今まで気づかなかったなぁwww
買う前にいろいろ試してはいたんだが……記号の入力ってのはぜんぜん試してなかった……orz
iOS のクソがまた一つ、明らかになってしまったなぁ。

下のスクリーンショットは実際に開発している様子。赤文字になっているのがクォーテーションで囲まれた文字列で、その使用頻度が多いのが解ると思う。

と、さんざん iOS のことをこき下ろしておいて本当にこの自動補完は OFF に出来ないのかもう一度設定画面を眺め見た。そこで気になったのが「スマート句読点」という設定項目だ。あ、ひょっとしてクォーテーションも句読点の一種と扱われているのでは? と思って OFF にしてみたら、クォーテーションの補完も OFF になった! なんだ、やればできるじゃん!
ただし今度は変換を押してしまうと NG。変換すると補完されてしまうのだw ので入力したらすぐに確定しないとダメ。まぁでも今までよりはずいぶんマシだ。これでプログラミングのストレスもだいぶ減るかも??

うどんの写真は、酔壱やさんの讃岐うどんだよ~。透明なだし汁が嬉しい。出汁濃いめ~。

  

iPad Pro 買った

突然だが iPad Pro を買った。
ボクの現在のモバイル コンピュータ事情はこちらに詳しい。元々 ThinkPad X200 というノート PC を持ち歩いてた。でも出先で開発とかしなくなったので、そうなるともっと小さい方がいい(カバンを小さくしたかった)と言うことで、Windows タブレットに移行、それのタッチパネルが壊れて、3000 円の Androidリモートデスクトップを使ってノート PC の代わりにしてた。

でもさすがに 3000 円の Android は遅くて使い物にならなかった。それでも 5 ヶ月はがんばったんだなぁ(笑)。しかも今かかわっているプロジェクトが二つあるんだけど、定例の打ち合わせが週に三つもあるのね。そのたびに 3000 円の Android + RDP ではかなり不便というか、ストレスがたまるばかり。ついにしびれを切らして、なんか端末買うかーと思って、いろいろ探すことにした。

できれば小さい端末がよい。7 ~ 10 インチ。そしてフル HD よりドット数が多いと嬉しいな……などと調べていたのだが、う~ん、どれも二桁万円になってしまうぞ。二桁万円出しても、最近の安普請なタブレットは 10年も持たずに壊れるよね……(今まで、色んな人がダメにしているのを目にしてきた)。

と、いろいろ悩んだ結果、なぜか iPad Pro 10.5 インチになった(爆
えー、これでよかったのか……? 7 万円あれば他にもあったのではと思いつつ……。

こいつを RDP でつかう。つまり Windows として使う。
一番心配した速度的なところは特に問題ない。すげーサクサク動く。データは全てサーバ上にあり、仮想 Windows マシンはそのサーバで動いているため、イチイチ iPad にコピーする必要も無い。メモ取りも、出先での開発も可能だ。ただ開発に関しては、長時間は無理そうだけどw
しかもありがたいのが、Microsoft OfficeAdobe のアプリ群が追加料金ナシで使えることだ。まぁ Office はそもそも Office 365 に入っているので、Windows タブレットを買ったとしても追加料金はいらない(ボクのコースは 5 台までインストール出来る)。Adobe Creative Cloud は iOS への追加インストールが無料だ。PC にはすでに二台にインストールしてしまっている(自宅の開発機と、会社の開発機)。もし Windows タブレットを買うともう一個 Adobe CC を契約しなくちゃいけなくなる。ただしインストール出来るのは iPad であり、仮想 Windows マシンに入れられるわけではないので、映像回りの作業は iPad でやることになるけどね。

まぁそんなわけで、とりあえず割と快適に Windows として使えている。
しかも画面は 2224×1668 ドットもあるから映像回りの作業もけっこうできる!

もちろん問題が無いわけでは無い。RDP におけるキーボードの操作が、おかしい。またそのため、ショートカットキーが使えないものがちらほらある。ただ動作さえ理解してしまえば、慣れてしまった。

たぶん特殊な iPad の使い方だと思うので、今後いくつかレビューを記事にしていこうと思う。特にクラウド サービスを使わずに自前のサーバのファイルを iPad で自由に読み書きしたりするのは最初はけっこう面倒くさかった(笑。

夜、ブロンコビリーに行った。ちょっとした事件があったので、日記に書いてみる。
今日は浅草橋の会社で iPad の設定とかしてたので、同乗者との合流は浅草橋だった。そこからブロンコビリーを検索したら、新小岩店が引っかかった。よしよし、と思って行って見たものの近づいてきてもそれらしい看板や光も見えない。あれー? おかしいなと思いながら蔵前橋通りを走っていると、電気の消えたブロンコビリーが!! しかも 5 月オープンって書いてあるwwww
マジかwwww

というわけで、北綾瀬店に行ったのでした(爆

iOS での RDP のキーボード操作の挙動

Android では RDP(遠隔で Windows を操作できるプロトコル)を使うと、キーボードがおかしくなると言う話題を書いた。これを iOS でやるとどうなるか、会社にある iPad で試す機会を得た。
上記だとただ愚痴だけが書かれているが、より詳しくレポートしようと思う。というのも上記の愚痴はなぜそうなったのかを解らないうちにツイートしてしまったからだ。あれから色々と調べた結果、おそらく以下の様な挙動ではないかと推測するに至った。

まず現象として、RDP で日本語を入力していると予測変換が働き、それを無視して入力し続けると、予測変換が勝手に確定されていってしまう。そこで予測変換が出てきたときに変換キーを押すと、スペースとなってしまい、これまた予測変換が確定してしまう。

ここで試したのは、まず Windows 側の IME を OFF にしてみること。
次に、iOS 側の日本語入力を OFF にし、 Windows 側の IME を ON にしてみること。

この二つの結果は同じであった。
つまりどういうことかというと、おそらく iOS はキーボード入力を直接アプリが触ることは出来ないのではないかと言うことだ。RDP は Windows を操作するものであって、iOS の日本語変換は関係ない。本来ならば押されたキーをそのまま素直に Windows に伝えるのが RDP の役目だ。しかし iOS だとこれがどうやら出来ないらしいのだ。つまり iOS で文字入力したその結果を Windows に渡しているようだった。
だから Windows 側にいろいろ単語登録してあっても、iOS 側で変換してしまうので何の意味も無い。それ以前にキーボードの操作は iOS のものでしかない。ボクは Windows 側の IME に Atok を使っているのだが、これらはまったく意味なし。そもそも IME は ON でも OFF でもまったく関係ない。変換キーを押してもそれはスペースにしかならないため、先ほどのように予測変換で出たものが確定されてしまい、スペースが入力されてしまうのだ。

ではどうやって文字入力をするかというと、予測変換が出てきたときに iOS と同じようにそこから変換をタップするか、候補をタップして望みの変換を選ぶしかないのだ。つまりキーボードから手を離して画面をタッチしてこれらを行うわけである。

う~む、なんだこれ?wwww

新年度が始まると道路も混むと予想していたのだが、それに反してここ数日は秋葉まで一時間を切っている。新年度で交通量が減るというのは初めての経験かも知れない。まぁ別にちゃんと観測しているわけではないのはもちろんなのだが……。

Android と Windows のキーボード問題

ボクは今ノート PC の代わりに Android タブレットを自宅のサーバに接続し、サーバの仮想 Windows マシンにアクセスして使っている。つまり Android を表示マシンとして使い、PC としての機能は仮想 Windows マシンが担っているわけだ。
ここで不思議な現象が起きている。Android では日本語キーボードという設定なのだが、Windows では英語キーボードとして認識されてしまうのだ。

日本語キーボードと英語キーボードは実はけっこうキーの配列が違う。もちろんアルファベットはどちらもおなじ QWERTY なのだが、記号が全く違うのだ。ボクは日本語キーボードで憶えてしまったので英語キーボードが使えない。ログオンするたびに日本語に直さないといけないという面倒な作業が発生している。

iPhone でエロゲをプレイする

まぁ、表題の通りなんだけど。
事の発端は、1/2 summer をプレイした方が、PSP で出した 1/2 summer+ を高解像度でプレイできないかという質問だった。ボクの手元には 1/2 summer+ の開発環境がそっくりあるのだけど、これは PSP として作られたものではなく、PC として作られている。
これを移植会社さんが PSP で動くようにして 1/2 summer+ 発売されたのだ。

つまり 1/2 summer+ は PC 版も存在していることになる。

じゃぁ PC 版も出せばいいのにと考える人もいるかもしれないが、そもそも需要があるのか解らない上に、越えなければならないハードル(声優の二次使用料など)がいくつかあるため、コレはこのままお蔵入りになると思われる。

さて、それでなんで iPhone でエロゲをプレイする話になるのかというと、このユーザさんに PC 版 1/2 summer+ をプレイしてもらうには、ボクと友達になって、たまたまボクん家に来て、ボクの PC でプレイするってのがグレーゾーンだなぁって思ったんだけど、その考えをさらに発展させて仮想マシン上に 1/2 summer+ をインストールし、それを遠隔でプレイする(データは全く持ち出さずにプレイしてもらう)という方法があるなと思いついたのである。

まぁこれでもスクリーン ショットはとれちゃうんだけどね~。

でもネットでアクセスする以上、その仮想マシンはネットに出られてしまうのでは? そうなったら、1/2 summer+ のソフト自体をどこかにアップロードできてしまうのではと懸念する人もいるだろう。そこは Windows、ネットカフェでも利用されているとおり、様々なアクセス権をユーザごとに設定することができる。
通信関係は RDP と呼ばれる遠隔操作のための通信しか通さない設計にし、さらに管理者権限を与えないということで、コレを実現した。

こうして「ボクん家に来てゲームで遊ぶ」というのを世界全体に広げた環境ができあがった(爆)。要するに Playstation や XBOX でやってるリモートプレイというヤツだ。

でね、ということはさ、RDP さえ使えればどこからでも Windows のゲームが遊べるんじゃないかってことで iPhone でつないでみた。iPhone にも Android にも Windows をリモートで操作するアプリが存在するのだ。

Timepiece Ensemble も入れて動かしてみた。バッチリ動く。
ただし、動作はかなりもっさり。原因は通信環境かと推測はされるものの、WiFi 環境でもわりともっさり。同じ WiFi 環境でも PC からつなぐと普通にプレイできるので、やっぱり iPhone の問題かなぁ。
ただ仮想マシンを動かしているサーバにも問題がある。なにせ 6 年前のサーバに無理矢理 Windows 8.1 をインストールしているものだから、そもそもサクサクとは動かない(汗)。
あと Direct X べったりなゲームとかは無理そう。

今発売されている Windows 10 ベースの Wiondows Server では XBOX のリモートプレイとかもできるようになっていて、ビデオカードをちゃんと使ってリモートでゲームをプレイすることが可能になっているらしい。さっさとサーバを新しくせねば……。