‘その他’のエントリ

ウェザタイ4.1ではディープラーニングを使ったワード自動生成を実装した。で、Unityで作っているタイピングソフトでは基本的にワードは自動生成にしたいな、ということで調査。

PyTorch+BarracudaでLSTM

UnityではBarracudaというエンジンを使ってディープラーニングを動かせる。多分例によって他で学習したものを使えるだけ。つまりPythonなどで作ったモデルをONNXに変換するとUnityでも使えるようになるのだが、前回の日記のようにkerasではTensorFlow2が使えなかったりして変換ができなかった。PyTorchも変換したモデルをUnity上に持ってくるとエラーになっていたのだが、Barracudaのバージョンを1.3.3(実験版)にすると読み込んでくれた。

で、Embedded層、LSTM層を入れたモデルを動かしてみたのだが、どうも一箇所おかしな部分がある。BarracudaReferenceCPU.csのLSTM関数で、入力テンソルの形が(ワードベクトル, バッチ)になっているぽくて、LTSMの各ゲートの重みテンソル(ワードベクトル, 隠れ状態)との内積を取ろうとして行列の型エラーになってしまう。具体的にはここ。

var i_mad_w = _(Add(new[] { _(MatMul(X_sequence, false, W[g_i], false)), Wb[g_i] }));
var j_mad_w = _(Add(new[] { _(MatMul(X_sequence, false, W[g_j], false)), Wb[g_j] }));
var f_mad_w = _(Add(new[] { _(MatMul(X_sequence, false, W[g_f], false)), Wb[g_f] }));
var o_mad_w = _(Add(new[] { _(MatMul(X_sequence, false, W[g_o], false)), Wb[g_o] }));

MatMul(行列積)の第2引数が転置フラグになっていて、ここをtrueにするとうまくいく。使い方が悪いんだとは思うけど、外側からなんとかできるようなものではなさそうなのでPyTorchとの相性なのかなあ。

他にも、元々はモデルの最後に出力ワードの確率を取るためにsoftmaxを入れていたのだが、そっちもreshapeでなぜか列が増えてしまって型エラーになったり。こっちはC#側で計算すればいいので問題はないけど。

結果

こんな感じ。まだデバッグ版でCPU使用だけど、生成の速度は1文で1秒未満くらいかな。日本語の出来としては・・・学習が15分くらいなので、もう少し学習すればよくなるかも。

まとめ

Barracudaを実験版にしてさらにオープンソースに上記の修正をすると動くのだが、Unityライセンスを調べないと公開はできないかなあ。公開までにリリース版が出てバグ?が修正されているといいなあ。

なお、今回Barracudaをデバッグしつつ、LSTMを自分で実装したものと実行内容を比較してようやく問題が判明した(なんとなく転置がいるのはすぐ分かったけど、デバッグしてようやく理由が分かった)のだが、やっぱり一回自分で実装しているから分かる部分もある。ライブラリの使い方を知っているだけじゃなくて中身も知ってる方がいい。

ができないっていう話だけど。

ウェザタイのワード自動生成をUnityでも動かせるようにしたいので検討しているのだが、うまい方法がない。

UnityにBarracudaという機能があって、ニューラルネットのパラメータの標準的なフォーマットONNXが使えるらしい。ウェザタイのワード自動生成では、embed層、LSTM層、全結合層のスタンダードな構成なのでPythonの深層学習ライブラリで作るなら割と簡単。

で、まずはkerasのLSTMを使って日本語生成してみた。それ自体はうまくいったのだが、ONNXへの変換でつまる。keras2onnxではそもそもTensorflow2の機能を使っているとダメのようで、disable_v2_behaviorをやってみたりしたが、うまくいかない。

次にPyTorchを試す。こちらも日本語生成自体はうまくいった。ONNX変換もダミーインプットにちょっと試行錯誤がいるが、torch.onnx.exportで変換はできた。が、Unityにもっていくとインポートができない。embedレイヤーが使っているインデックスをサポートしていないっぽい。

追記:Barracudaのプレビュー版にしたらインポートまではできた。

最後、C#で一から作ったライブラリも試してみる。ウェザタイで作ったやつは高速化のため、行列の積にAVXとかSSEとかのSIMD命令を使っているのだが、Unityはマルチプラットフォームなのでそのままは使えない。そういう場合はBurstコンパイラを使うことになるらしいのだが、いろいろ制限があるようで、InvalidOperationExceptionになってしまう。C#で行列の積を実装すればいいはいいのだが、現実的じゃない計算コストがかかってしまう。

てところでいずれも無理。UnityでLSTM動かしている人はまだいないのかな。Pythonで大量に文章を自動生成できるので、100万ワードくらい生成して配布すればまあいいのかもしれないけど。。。

最近ウェザタイに使うためにディープラーニング実装したり本読んだりしている。ニューラルネットを勉強してたときは脳とかけ離れているのでこれじゃあ脳を作るのは無理だな、と思ってたのが、結構面白いところまでいっているのが分かってきた。

プログラムで脳を作るのは子供の頃からの夢なのでずっと本読んだり考えたりしているのでちょっとだけメモ。

おそらく最初にキモになるのはエンコーダとデコーダで、外界の情報を主成分分析的に圧縮して、概念をベクトル化するところ。この辺りはいろいろ脳関係の本を読んでいると実際の脳でもやってそうな感じがする。たぶんニューラルネットで言う誤差逆伝播は実際にはなくて、ヘブ則と抑制性シナプスとよく分からない接続で解決しているはずなんだけど。

で、もう一つ重要なのが環境入力と動作の出力から報酬を予測するところで、こんな感じなのかな、って考えていたのはあるんだけど、最近勉強してたら出てきたディープラーニングを使った強化学習がまさにそういうことを言っている。ただ、世界に実際の身体があって生活しながら学習させないと高度な知性にはならないし、報酬を何段階にも動的に獲得していく必要があるはずなので、今の強化学習だけではダメな気はする。強化学習はそこを目指しているわけではないけど。

この辺り、いくらでも書くネタはあるけど、理解できるものにならないしただの妄想なので書いてこなかったところ。でもそろそろ何か書いていきたいなあ。例えば全身麻酔したとき、その間時間経過を感じずに一瞬で目覚める感覚になるわけだけど、それって脳が動いていない、つまり死んでいる状態を一時的に再現している、と。逆に死んだ後はそういう状態なわけで、時間経過も何もないことが分かる、とか。誰か意味分かりますかね。

土曜日にG検定を受検してみた。95%はできていると思うのでたぶん大丈夫だろう。久しぶりに試験勉強ぽいことをしてみたけど、選択式の試験はキーワードと意味を覚えるだけの表面的な勉強になるので、これ意味あるのかなあ、と思ってしまう。この後はE資格を受ければ良いんですかね。統計検定?

で、実際今やってるのはタイピングオンライン用の問題文章生成。ウェザタイではXamarinで動かすために行列計算からLSTMまで自力で実装したが、Unityではkeras使えそうな感じなのでそっちに移植中。

オンラインタイピングソフトの進捗。少し細かい実装をして最低限ゲームとして動くようになった。CPUをいくつか配置してタイピングでライフを奪っていく感じ。

実装としては、まだカスタマイズはできないけど、Advanced People Pack 2でカスタマイズしたキャラクターを使えるようになったり、Blenderで作ったキーボードと腕のモーションをUnityに取り入れてアニメーションさせてみたり、FL Studioで作った効果音を入れてみたり。いろいろベース部分を作ったので作り方には慣れてきた感じ。今は何故かCubaseで作った曲を流せるようにしている途中。

対戦は試してないけど一応動くようには作っているはず。ここからどうしようかな。

今更だけどDenasu Webサイトのスマホ対応をやってみた。Denasuサイトは1998年から運営していることになっているので、モダンな作りにするにはいろいろとめんどくさいなあと思ってたけど、いい加減やらないと、って感じ。
やってみると各HTMLにviewport

<meta name="viewport" content="width=device-width,initial-scale=1" />

を付けて、CSSで

@media screen and (max-width: 600px)

の中に小さい画面用のデザインを定義して、細かいところでは画像のmax-widthを100%にしたり、そのくらいでそれっぽくなった。

今更だけどDenasuトップページにコンセプトを追記した。

作者の好きなことをソフトウェアにしているので、作者自身がユーザです。また、趣味の開発であり、広告も利益も目指していません。ユーザとして欲しい機能、使いやすさを目指しています。

フリーソフトだからできることがある、というだけで、商用ソフトウェアを否定するわけではない。

結局KPI、何を目標にするかによって結果が全然違うわけで。

例えばWWW。昔はユーザの相互情報共有を目指して有用なコンテンツがたくさんあった。その後商業利用が大多数になってKPIが利益になったので、ユーザが見づらくても広告を入れまくったり、SEO対策でどうでもいいページばかり増やす結果になった。

例えばテレビの報道。KPIは視聴率=スポンサー獲得なので、視聴者の利益とか日本を良くしたい悪くしたいという思想は特になくて、単に何でも批判して煽っていれば視聴率が取れるのでああいう風になっているだけ。

ソフトウェア。商用のソフトウェアの場合、どうしても利益を優先するので、誰かがほしがっているものを(自分は欲しくないのに)作ってあげることになる。なのでなかなかユーザ目線になるのは難しい。昔ながらのフリーソフトはKPIが自分が使いたいものを作る、なのでユーザの利益と直結しやすい。

ということで(今のところ)自分は他のことで十分収入を得ているので、Denasuは広告もなし、営利非営利関わらずフリーソフトとして使ってもらう、とうやり方にしている。

この話を書くなら今かな、ということで新タイピングソフトの構想を。

経緯

Realforce Typing Championshipから、タイピングが競技として話題になることも少し増えてきた。RTCは頂点を決めるものなので今のところWeather Typingを使って頂いているが、やっぱりもう少し派手な演出とか複雑なゲーム性とか、今時なタイピングソフトが欲しいところ。THE TYPING OF THE DEADは対戦向けではないし、そもそも公式リンクが何にもなくAmazonにリンクするくらい入手困難だし。

その辺りタイピングサミットくらいから考えていて、5年くらい前にウェザタイに戦略性を入れようと考えたりもしたけど、ウェザタイはガチなタイピング勝負がコンセプトなので運まかせとかアイテムとかとは相性が悪いし、ワードや入力方式などウェザタイの狭い枠組みでやっても地味なので検討を中断。

で、これとは別に3年前からウェザタイオフラインを考えていた。オフラインで集まってキーボードとモニターを肩から提げてみんなで赤外線で打ち合うというリアルTOD。赤外線通信部分は作ってもらったのでもうあるんだけど、ウェザタイの大改造が必要なのとキーボードを吊り下げる板とかモニタコストのハードルが高くて中断中。

で、1年くらい前にN高 ネット運動会で最近のオンラインゲーム(フォートナイトとか)を見て、みんなが欲しい、観たいタイピングソフトはこういうのなんだろうな、というので去年から試しに作り始めた。ウェザタイオフラインのオンライン版(?)の意味もあって、ソフトウェアはソフトウェアで別に作った方がデバッグが楽かな、というものある。

仕様

世界観はまだ定まってないけど、タイピングしないと生きていけない的なものなのかなあ。大規模サーバは作れないので、ウェザタイと同様のP2Pで10人くらいのバトルロイヤル。

地形やキャラクターをランダムに作ったりワードはAI自動生成にしたり、ランダム性を積極的に取り入れて飽きないように。ワードはウェザタイのAI自動生成をベースに。音楽も自動生成したいところではあるけど、さすがにフリー音源を使うかな。SEはウェザタイ以上のものを作れなかったので流用かな。

Advanced People Pack 2はキャラクターメイキングもできてすごく便利。

あとはウェザタイの枠組みを離れるならどんな工夫ができるか。例えば、ある文字アイテムを取ったらその文字を打ったときの攻撃力が高くなるとか、今から5分間、特定の文字の出現頻度が上がるとか、英語しか出ないとか。あとは普通にコンボボーナスとか。1対複数で囲むなんてのもやれば、ある程度強い人とも戦えるかな。

進捗

進捗。オンラインゲームの作りはウェザタイの仕組みが割とそのまま使えて、ローカルではリアルタイムに処理してリモート側もそれなりに補間して動きつつ完全同期させるのはできてきた。タイピングソフトとして必要な部品とか対戦サーバは当然あるし。

ここから独自処理を入れていくわけだけど、例によって一人で作っているので、いつ完成するかは・・・。数年レベルかも。こういうソフトが欲しいっていうことなので、ウェザタイとTODのいいとこ取りのいいソフトができるのなら誰かが先に作ってくれてもいい。Twitterを見てると、割とみんなこういうソフトが欲しい、作りたいと思っている人は多そうな感じ?

3Dオンラインゲーム版のタイピングソフトの進捗。2台のPCで起動して、互いにキャラを動かしてタイピングしあうところまではできた。まだカクカクするのはおいておいて、プレイしても特に面白くはない。このあとゲーム性を考えていく必要があるわけだが、むずい。アイデアはいくつかあるけど面白くなるのかはやってみないと分からない。

ゲームエンジンとしてはUnityを使ってるけど、オンラインゲームの開発むずくないですかね。ウェザタイは1台のPCで2つソフト起動してたけど、Unityだと2台PC起動して、ソースコード編集する度にGit経由でコード共有してるのですごくめんどい。

ウェザタイも今年で20年ということでリーフレットを作ってみた。

せっかくなので、印刷も。今は個人向けに小数でも印刷してくれるので便利。

オフ会や大会なんかがあれば配れるんだけど、今はそういうものできないのでとりあえず手元においておくしか。

プロeスポーツチーム「DetonatioN Gaming」による対戦動画 「Q・W・E・Rしか打てない人たち(DFM)でタイピング対決をしてみるとこうなる」が公開されている。少し前にメールで動画利用について問い合わせがあったもの。eスポーツとして認知度が上がるならどんどん使って欲しいところですね。

速度的には平均すると500くらいなので今の私でも勝てるくらい。ということは、これからeスポーツタイピングが流行るとして、今から頑張れば誰でも活躍できるということですね。動画を見る感じ、プレイだけでなくトーク力も重要に見えるけど。

てな感じで、やはり見た目が地味ですね。今作っている3Dのタイピングソフトの完成が臨まれる。

進捗メモ。CPU戦が動くようになった。ウェザタイの通信プロトコルをほぼそのまま流用しているので、対戦モードにすればそのまま対戦もできると思う。けど、課題が山積み。

まず文字が読めない。自分のキャラクターは非表示にして、自分のワードは画面上のどこか別の場所に表示しないと。あとワードは頭の上がいいかも?

移動モードとタイピングモードの切り替えをTabでやってるんだけど、やっぱりめんどくさい。やっぱりマウスで視点移動の方がいいかな。

まだ演出が何も入ってない状態ではあるけど、面白くするにはいろいろ必要。ウェザタイの名前にはしないつもりなので、ガチタイピングではなく、例えば、弱い人でもあらかじめたくさん打ち溜めてシールドをはっておけば強い人に勝てるとか、複数人で一人を囲むとか、後ろから打つとか、どこかを打つとアイテムが出るとか、考えられるのはそんなところ?

システム的には、ウェザタイはサーバはあるけど単なる中継なので基本はP2Pの形。これだとプレイヤーの途中参加が困難。そうなると何人か揃ったら開始、誰かが生き残ったら終了みたいな形になる。人がいなくてもある程度遊べるようにするには、サーバクライアント型にして、サーバにゲーム状態を保存して、CPUをたくさん配置する、とかになるけど、それだとサーバの負荷が高いかなあ。

メインメモリが足りなくなってきたので、3年ぶりにXperia SO-01JからXperia 1 IIへの乗り換え。アプリの移行は簡単だけど、不要なアプリの削除とか、POBoxがなくなって困ったりとかで2時間くらい。とりあえず快適かな。my daizのページは非表示にできないのかなあ。

しかし設定周りは毎回UI変えてくるから毎回覚えたのをリセットされて使いづらい。。。

ウェザタイ4.1で文章自動生成を作ったので、英語も対応してそろそろ英語圏進出したい、というのがある。

ただ、以前からちょっと躊躇してるのが各国規制。まあ日本で公開していても気にしないといけないんだけど、英語圏で公開するなら必須。

以前COPPAについて軽く調べたが、もう少し調べてみる。専門家ではないので信じないように、・・・というのは一応書いておかないといけないらしい。

COPPA

COPPAの定義では、13才未満を主な対象としているサービスで個人情報を集めたり、一般が対象のサービスでactual knowledgeを有する場合に適用される。最終的には客観的な判断だが、ウェザタイは13才未満が主な対象ではない。actual knowledgeは、要するに年齢を登録させるようなサイトだと、13才と知ってるじゃん、てことらしい? ウェザタイはユーザの年齢なんて知りようがないのでこれもあてはまらない。また、もしあてはまったとして、個人情報があるか? だが、ウェザタイに関連するところではハンドルだけで、COPPA上「オンラインコンタクト情報と同様に機能する場合に限る」となっていて、まあ当てはまらないでしょう。適当なハンドル登録できるし。今後、ハンドルじゃなくてメールアドレスでログインできるようにしたり、年齢を登録させたり、写真を投稿できるようなシステムを作ったりしなければ問題はないか。

GDPR

あとはGDPR。最近いろいろなところでクッキーの承認が出てきてうるさいのだが、これもやっておかないといけないのかな。ってことで、掲示板、クッキーを使わないようにした。ハンドルは毎回入れるようにして下さい。

Weather Typing 4.1 Windowsデスクトップ版を公開。主に、ディープラーニングを使った完全文章自動生成と、シミュレーションをベースにしたCPU対戦の追加。

ディープラーニングは、最終的に日本語WordNetを20000単語で学習した結果、割とまともになったのでとりあえずこれで。といっても文章としてはまだまだ改善の余地があるし、本体のサイズがかなり大きくなっているのと、ワード読み込み時に数秒かかるといった課題が残っている。

あと、配信を観たり掲示板で来ていた報告からいくつか改善。インストーラにデスクトップショートカットを付けたり。デスクトップショートカットは嫌いなんだけど、こう言う理由で付いてるのか。

これでWT2時代から残っていたレガシーな部分が全部なくなった。各プラットフォーム対応が終わったら、ウェザタイポータルか、ウェザタイ3Dか、ウェザタイオフラインか、新しいことをするかな。

職場の人に紹介されて、Amazon Prime Video「アップロード」を視聴。まだシーズン1しかなさそうだけど、先が気になる。以降導入部分のネタバレあり。


ストーリーは、人の意識をバーチャル空間にアップロードして、バーチャルな世界で暮らすという内容。アップロードするには脳を破壊しつつスキャンする必要があるので、本人は死んでしまうというか、死にそうになったらアップロードしてするという設定。

で、一応不死の世界ができるってなってるけど、結局アップロードした人の意識は消滅してしまうから本人にとっては不死じゃないですよね。バーチャル世界の方の人は瞬間移動してきたように感じるだろうけど、それは新しく発生した意識であって、死んだ人の意識とは連続していない。

不死になる方法があるとしたら、昔のASCIIで読んだ記事にあった、脳細胞を1つ1つシリコンに置き換える方法なんですかね。それなら自分の意識のままロボットになれそう。


それはそれとして、テーマ的には資本主義。バーチャルの世界なんだからお腹も空かないし争いもない、みたいなのを想像するけど、実際は現実とほぼ同じ。フリーの朝食はあるけどそれ以外は課金制。しかもお金を払うのは現世の人なので、バーチャル世界に暮らしている人は現世の人に食べさせてもらう。なんでそうなっているかというと、世界を運営している会社が儲からないといけないため。資本主義を象徴している。

で、主人公はフリーのバーチャル世界を作る理想を掲げるフリーソフト開発者。資本主義に頼らずにどうやって解決するのか。続きは観て下さい。


Amazon Prime Video、日本語字幕をオフにできないのはどうにかならないのかな。英語字幕+英語音声が一番いいんだけど。英語の勉強には使えない。

3/26の東京都知事会見後からずっとリモートワークしてるのでそろそろ1ヶ月。普段と全く変わらない。OAに近い机と椅子もあるし、土日も別に用事がなければでかけないし、ずっと開発してるし。

ところでリモート飲み会が話題だけど、Denasuは2009年にリモート飲み会してますね。時代に先駆けすぎ。

研究中のディープラーニングを使ったワード完全自動生成、日本語版がなんとなくできた。7単語で切っているので中途半端な文になってるけど、割といい感じ。これでもかなり面白いけど、もうちょっと精度上げればよさそう。括弧の対応とかがうまくいってるのがすごい。

前回の英語版は「ゼロから作るDeep Learning 2」ほぼそのものなのだが、日本語版はフリガナとかちょっと一工夫している。

コーパスはWikipediaの一部、形態素分析はNMecabを使っている。実装はC#、行列の内積計算だけCで書いているので、Xamarin使ってどのOSでも動かせる。

タイピングソフトと文章自動生成は相性が良いと思ってたけど、そのうち当たり前になるかな。ある分野の文章で、毎回違う文章を打てるのがいい。例えば夏目漱石の小説を学習したら、夏目漱石っぽい文章を打つタイピングソフトになったり、いろいろ可能性がありそう。

個人的に契約しているMSDNのOpenライセンス、今年も更新。前回からProfessionalにしたので2年で10万。安い。

で、以前のやり方に従ってボリュームライセンスサービスセンター (VLSC) からMSDNサブスクリプションを自分に割り当てようとしたのだが、「Visual Studio サブスクリプション管理ポータル」へ行けと言われる。行くと、「管理するサブスクリプションが見つかりませんでした。」となって詰まる。

30分程試行錯誤した結果、「OLP パートナー」の方に従って、(Microsoftアカウントではなく)管理者のメールアドレスを入力することでサブスクリプションが表示されるようになった。ちなみにライセンス番号(8桁)と承認番号(15桁)は、VLSCのライセンス欄に表示されている。ノーヒント。

そこからはいつものようにユーザとMSDNサブスクリプションを紐付けると管理者(自分)からメールが来て、登録して完了。

涼しくなってきたので京都に行ってみた。

京都と言えばヨドバシカメラマルチメディア京都だよね、ってことで駅前に。

やっぱりでかい。以前行ったヨドバシカメラマルチメディア梅田も、大きさが分かる写真を撮ってきたので掲載。

まあさすがにそれだけってのもアレなので清水寺とか伏見稲荷大社にも行ってきた。伏見稲荷大社は、頂上まで登ってみたけどどこがベスト風景なのか分からなかったので頂上の一歩手前の風景。

IT業界にいるので最近のサービスも使ってみないとねってことでいろいろ使ってみている。

不在通知がめんどいのであまりネットショップは使ってなかったけど、最近だとAmazonのコンビニ受け取りとかヨドバシの店舗受け取りとかあるのか。店舗では扱っていないようなのをいくつかのショップで購入。アマゾンプライムだと次の日の午前着くらしいけど、コンビニ受け取りにしたら次の日の夕方には届いていた。会社帰りに寄れば良いだけなので一人暮らしではかなり便利。

もう一つ。いらないPC周辺機器が大量にたまっていて処分に困っていたのだが、リサイクル専門業者みたいなのもあるんですね。自治体と組んでいて信頼できそうだったのでリネットジャパンに出してみた。量が多くて法人でないことの確認をされたけど、無事リサイクル完了。箱詰めして集荷してもらうだけなのでこれもかなり便利。

これまでTVを見るのにBuffaloのDT-H70/U2を使っていた。Windows 10でとりあえず動くのでだましだまし。

で,TVを見るのは付属のPCastTV3なのだが,今週いきなり番組表や録画関連のことをしようとすると強制終了するようになった。Twitterを見ても同じ現象の人が何人かいる。番組表を消すと使えるのだが,それでは使えない。もう古い機種なのでアップデートもなさそう,ってことでそろそろTVを見ない生活にしようかな。元々見てもつまらないのであんまり見てなくて,困るのはNHKの語学番組くらいだし。ってことでキャプチャを外して様子見。

最近仕事で数学の知識が必要になるので勉強。たまたま家に群論の本があったので読む。よく学校の勉強は将来役に立たないとか言うけど、そんなことないと思う。World Tester作るのに物理使ったし、Purentro作るのに音楽使ったし、英語と数学は日常的に使うし。言ってみれば掃除スキルとか料理スキルとかもそうだし。いろんなことを広く浅くやってるから必要になったときに深く勉強するのが楽、といった方がいいのかな。

9/30からアメリカサンフランシスコに出張して今日帰国予定。アメリカにいるけど英語を使う機会はそんなになくて,日本にいる方が英語使う気がする。一応Surfaceと開発環境はあるが,こっちにいるとやっぱり時間が取れなくて,結局開発は難しい。Windows 10もプレビューが出ているので試したいけど,回線的に厳しいので,日本に帰ってから試すしかない。しばらくは出張がありそうなので,どうにかできないかなあ。

ようやくいつもの環境に戻ってきた。3週間長かった。開発再開。

アメリカから帰国。これでやっと開発に戻れる,なんだけどゴールデンウィークで実家へ帰るので,もうしばらくSurfaceのまま。来週からはちゃんとした開発環境に戻れるはず。

今日から出張で、とりあえずカナダに到着。

Surface Pro 2があるので、十分開発も可能。

サンフランシスコ到着。フロリダのディズニーから10kmのところにいたけど、空港のディズニーショップに行っただけという。

今週はフロリダとサンフランシスコへ出張。Surface pro 2を持って行くので旅行中も開発ができる。

今日から夏休み。今回はSurface RTを持って実家へ。これだけで過ごしてみよう。

アキバのヨドバに行ったのだが,ふと見るとAAAA電池が売っていた。日本のメーカーが作っているとは。さすがアキバ。