2015年9月30日水曜日

小ネタ:ブログにコードを貼り付ける

ブログを書いていて、とてもやりたいことの一つに、ブログで作成したコードの一部とかを公開することでした。自分でプログラム作成をするときに参考にするサイトでも、コードのところだけ別の枠に囲まれていて、色やら行数やらついていたりして、カッコイイじゃん!俺もやりてーなー!とずっと思ってはいたのですが、なかなかそこまでに至りませんでした。

で、ちょっと手が空いたときに調べてやってみたのですが、最初はよく分からなくてうまくできなかったのですが、きちんと時間をとって調べてみると、意外と簡単だったりしました。ということで、このブログにも仕込んで見ました。

ちなみに、ブログでプログラムコードのところが↓こんな風になるのを、シンタックスハイライトというらしいです。
<!DOCTYPE HTML>
<html>
 <head>
  <title>Online or offline?</title>
  <script>
   function update(online) {
     document.getElementById('status').textContent =
       online ? 'Online' : 'Offline';
   }
  </script>
 </head>
 <body ononline="update(true)"
       onoffline="update(false)"
       onload="update(navigator.onLine)">
  <p>You are: <span id="status">(Unknown)</span></p>
 </body>
</html>
(w3cのサイトからコピペしてきましたごめんなさい)

これはブログに限った話ではなく、コードを色付けしたりして読みやすくする、というのがメインの目的です。まぁ私のブログ文字多めなんで、これにコードを入れたらもっと文字多くなっちゃって大変ですがねぇ。 それはともかく。 使い方は他のサイトを参考にしていただくとして(現時点で一番参考になったのはこのサイト。日本語で説明されていることもありますが、元のサイトのリンクも入れてくれていたのは助かりました。感謝いたします)、導入の要点をまとめておきます。
  1. 下準備としてスクリプトのリンクを追加しておくこと。参考リンクでは<head>セクションの一番最後(もちろん</head>タグの直前ですよ)に追加、とありますが、これは昔ながらのお約束ですが、近頃(少なくとも2015年の時点)では<body>セクションの一番最後(</body>の直前)に仕込むのが流行りらしいです(速度向上とか)。このサイトでは流行りに負けて<body>セクションの最後に記載してみました。
  2. 実際に使う場合、コードを<pre>タグで囲むだけでよいみたいです(参考にしたサイトは情報が古めだったので、実際に元サイトに行ってみるとそう書いてある)。
    使い方例:
    <pre class='brush: ○○; html-script: true;'>
    コードの内容
    </pre>
    
    上記例の「class=brush:○○」のところに使っているコードの名前をここを参考にして記入します。もしhtmlの中のスクリプトだということであればその次の「html-script」項目をTrueにすればよいはずです。
  3. ただし、<pre>タグに囲まれたコードの中で、一部エスケープ文字を使用する必要があります。各言語で異なると思いますが、上記の例で言えば、HTML(XML)の場合は(少なくとも)行頭の「<」はエスケープ文字(「&lt;」)に直しておく必要があります。そうしないと表示が崩れます。 #本当は「>(&gt;)」もやらなきゃいけないみたいですが、 #Bloggerでは行頭を直したら行末は勝手に修正が入ってしまいましたとさ。
ちなみに、これは私が使っているBloggerの場合ですが、おそらく他のブログサイトでも同様でしょう。ちなみに、スクリプトリンクの追加は(Bloggerの場合)テンプレートのHTMLファイルをいじる必要があります。まぁコードを載せようなんて人は「その筋」の人たちでしょうから、元のHTMLファイルを壊す、ということもないと思いますが(笑)。

まだ使い方があまりわかっていませんが(つか元サイトがあまりにも説明少なすぎる気が)色々と調べてみて、わかってきたらまとめて解説してみようかな、と思っています。

2015年9月29日火曜日

古いネットブックへのWindows 10導入顛末

仕事、という内容でもないですが、皆さんの参考になるかと思い、古いネットブックにWindows 10を導入した顛末をお知らせしたいと思います。

結論から言えば、成功しました。そして、かなり使えるらしい(私は使っておらず、使用者である妻の弁)とのことですので、押入れに突っ込んであるネットブックや中古で持ち運びに便利なマシンをお探しの諸兄には福音かもしれません。

ただ、そこに至るまでの道のりは実はすごく長かったです。試行錯誤の結果成功したと言っても過言ではないです。なので、その長かった道のりには触れず、最短でインストール成功する方法をお知らせします。

まず、用意するもの。

  • ネットブック本体(今回はAsusのEEE PC 1000Hをストック状態で用意)
  • メモリを積めるだけ(メーカー公称1GBでしたが2GB積めるらしい)
  • SSD(中古とかの安いので十分)
  • Windowsのメディア(今回はWindows7とWindows10の二つを用意)
基本的に、Windows7はWindows10にするための踏み台みたいな状態です(もとのネットブックはWindowsXPだったので、そもそもはWindows7をインストールするつもりで買ってあった)。

そして、もしネットブックが現役ならば、データのバックアップをしておいてください。基本、クリーンインストールしますので。

手順を簡単に書くと、
  1. Windows7インストールの前段階として、BIOSを最新版にアップデートする
  2. HDDをSSDに交換し、メモリも最大限積めるだけ積む
  3. Windows7をクリーンインストールする
  4. Windows7用のメーカー提供ドライバの最新版をインストールする
  5. Windows Updateを行って最新の状態にしておく(※オプション)
  6. Windows10にアップデート(引き継ぎ なしで行う)
  7. 必要に応じてWindows10用のドライバをインストール
直接Windows10をクリーンインストールでもよかったのですが、今回は後で述べる事情があり、Windows 7を一度インストールしたうえでの作業になっています。

注意点を順を追って説明していきます。
  1. BIOSのアップデート
    基本的に、Windows7に対応しているマシンはWindows10にも対応していると考えてよいです。Windows7より上位のOS対応のBIOSアップデートがあればそれをインストールすればよいですが、私の場合はWindows7版が最新でした。
  2. SSD・メモリ換装
    メモリは、あればあるほどよい、とは言いますが、まずWindows7にする時点で、どんなにメモリを積んでも3GBまでしか認識されないという制限があります(ネットブックでIntel Atomを積んでいるマシンは32bit版しかインストールできないらしいので)。したがって、最大でも4GB(OS側が3GBとして認識)を選ぶ必要があると思います。また、Windows10では32bitでも4GBを認識している、という情報もあるのですが、そもそも32bitOSが4GBのメモリを認識するのか(いわゆる「3GBの壁」の解消がされたのかどうか)わかりません。
    SSDについては、必須ではないです。SSD自体、読み込み速度は相当早く、例えばアプリ起動など、いわゆるサクサク「動く」という点では非常に有効ですが、書き込み速度(データをダウンロードしたりファイルを保存したりという作業に影響)が遅いということもあり、私は躊躇したのですが、HDDを積んでいるネットブックのHDDスペックは基本的に低速(回転数が遅い=読み書き速度が遅い)であり、SSDへの換装により、書き込み速度も向上しました(どんだけ遅いHDDだったんだ、ということにもなりますが・・・)。
  3. Windows 7のクリーンインストール
    HDDを換装したのであればバックアップはあとでなんとかなりますが、そうでなければインストール作業前にバックアップは必須です。クリーンインストールで注意する点は他にありませんのでこんなところで。
  4. Windows 7用ドライバインストール
    これが意外と大事です。少なくともメーカーで提供しているドライバは全部最新のものを入れておいてください。私はグラフィックスドライバを入れていなかったため、このあとのWindows10インストールで失敗しています。
  5. Windows Update適用(オプション)
    実は、私の環境ではこれをしなくてもWindows 10のインストールはできました。というか、Windows Updateがどうしても動かなかったんです。エラー回避方法はいくつかあるので試してみたのですが、どれもうまくいかず、「諦めた」というのが正解かもしれません。これができていれば、もしかするとWindows 10にはしなかったかもしれませんので、よかったのか悪かったのか・・・(これがWindows7経由でWindows10にした理由です)。
  6. Windows 10インストール
    クリーンインストールではなく、アップデート(OS起動中にインストール作業を行う)で行いました。この時、前のOSの情報を引き継がないオプションでインストールしました。こうしないとインストールができませんでした。また、更新プログラムのダウンロード・インストールもこの時点では行わないように選択しました。やはりこちらもうまくインストールできなかったので。
  7. Windows10用ドライバのインストール
    基本的にWindows7の時もそうですが、実はOSで認識したハードウェアのドライバは正常に動いており、わざわざ変える必要もないかもしれません。どちらかというとハードウェアメーカー側で最適化されたドライバと考えています。私はこの作業を一部しか行っていません(タッチパッドと電源管理のドライバだけはいれておきたかったので)。
このためにかけたコスト概算ですが、
  • ネットブック本体:¥15,000
  • OSパッケージ:¥12,000(Windows7 Home 32bit)→Windows 10のDSP版はもう少し高かったです
  • メモリ(2GB/1枚):¥3,000(中古)
  • SSD(128GB):¥8,000(中古)
しめて¥38,000 ナリ。本体をすでに持っているのであれば、最大23,000円で、すでに本体側の改造済ということならOS料金だけで現役マシンになれる、というお話でした。

ちなみに、個人的には古いネットブックではWindows 10の魅力が半減するかなぁ、というのがちょっと使わせてもらった感触です。デスクトップOSとしては今までのWindows(7まで)を踏襲したものなので、可もなく不可もなし、といったところです。また、今回のインストール作業ではクリーンインストールをメインでやっていますので、余計なサービスやアプリが入っておらず、かなり軽快に動作します。
しかし、当たり前の話ですがタブレットモードがなく、さらに画面タッチもできないのは、タブレットモードに慣れている状態の私には退屈というか面倒というか、ちょっと違和感があります。

2015年9月18日金曜日

メインマシン(iMac)の復旧作業顛末:その後

前回のポストは、現在復旧中、というステータスでしたが、今朝、無事にiMacの復旧作業が完了し、「ほぼ」完全に復旧したことを確認しました。

ちなみに、Time Machine経由の復旧作業は2度目。今回取り替えた旧2TBのHDDを入れた時にも使っていて、その時は今ほど使用量も多くなかったし、たまたまTime Capsuleは有線接続していたのでこんなに時間もかからなかった記憶があります。

で、復旧が「ほぼ」完了した、という微妙な物言いをしているのは、復旧がクラッシュ以前の状態に完璧に戻ったわけではない、ということを表しているつもりです。おおよそ、OSレベルでは問題なし、ファイルも(多分)過不足なく復旧、アプリが一部問題あり、という感じではありますが、細かく状況を記しておきます。

○OS・・・復旧OK
 OSのバージョン(9/15時点では10.10.5)、ユーザー情報、アピアランス、ネットワーク接続情報などなど、基本的な情報については元どおりになっています。
○ファイル・・・復旧OK
 正直、確認のしようがないですが、普段つかっているアプリやメディアなど、動いている・使えている、という状態であれば、大丈夫でしょう。
×アプリ・・・要再設定
 これ、当たり前なのかどうか微妙なところですが、とりあえず一部アプリが使えなくなっていたり、再設定を行わなければならなかったものです。
 ・Office365(これは別の問題も発生していて現在使えない→解消)
 ・Dropbox(おそらく今回のHDDクラッシュの原因か。プロキシ設定を外して再登録)
 ・(9/17現在)今の所これだけですが、随時追加していきます。
そもそも、プロキシを繋げている(串を刺している)状態というのも通常の家庭で置かれているPCではないと思いますので、あまり参考にはならないかもしれませんが、本当はバックアップを復元したらアプリの設定情報などもそのまま引き継いで動く必要があるように思います。

それから、前回も触れたとおり、OSに関しては現在使っているもののリカバリディスクは作っておく必要があります。今回はOSをアップデートしてから作業しましたが、やっぱり面倒くさい。来月、新しいOS(El Capitan、ってなんか言葉の意味知らなければかわいい響きだ)が出るようですし、アップデートをするつもりですので、必ず作らなきゃ、と思っています。

2015年9月16日水曜日

メインマシン(iMac)の復旧作業顛末

普段の作業は基本的にMacを使っている私ですが、ちょっと動きが悪くなり始めたので再起動しようと思ったのが今週の月曜日の朝のことでした。

そして再起動をしたのですが、一向に起動しない。グレーの画面でHDDを読み込んでいるプログレスバーが途中で止まったまま。

いったん強制終了し、ディスクユーティリティを起動(Option+Rを起動時に押して立ち上げるんですよ念のため)、ディスクのチェックをすると、ファイル階層に問題あり、というエラーが出ていて、しかも修復ができない、という状況。

とうとうHDDが逝ってしまわれたか、と考えたのですが、あらかじめHDDの状態を確認できるツールを入れていて、HDD自体に問題があったとは考えにくい状態ではありました。

そして、幸運なことに(というか当たり前なんだと思うんですが)バックアップはTime Capsule経由で毎日取っていたので、念のため新しくHDDを買い、最新のバックアップからの復元を行うことになりました。ですが、結構手間取って、しかも現段階ではまだ復元ができていないので、復元が完了するまでは久しぶりにWindowsマシン(Windows 10 on Surface Pro2)を使って作業をしています。

我が家には、OSXのメディアはSnow Leopard(10.6)しかありません。それ以降のOSはすべてMac App Storeから購入しているのですが、これが意外と復元の手間を増やしてくれました。そこで、実際の手順と、もっと簡単にできた(であろう)方法を、反省の念を込めてここに書いていこうと思います。何かの参考になればいいですが。

1.手順
まず手持ちのOSXをHDDに新規インストールし、徐々にアップデートをかけて最新のOSにする、という流れになります。我が家のケースでは、
「10.6インストール」→「10.6.8アップデート(Mac App Storeがインストールされる)」→「最新版(Yosemite:10.10)アップデート」→「バックアップデータのリストア」
という手順になります。

ここで思ったのは、10.6(SL)のメディアしかない状態だと、必ずMac App Storeの入手をしなくてはならない、ということ。ダウンロードにそれなりの時間を要してしまうため、実はHDDの入れ替えが終わってからMac App Storeが使えるようになるまで半日程度を費やしてしまいました。

ということは、最新のOSバージョン(今回のケースでいえば10.10)の復旧ディスクがあれば作業の手間はかなり短縮されるのではないか、ということが言えるわけです。以前別件でググって、Mac App Storeから入手したOSの復旧ディスクの作成方法がある、ということまでは知っていましたが、まさかこんな時に使えるのだ、とは思いもよりませんでした。

先日、Windows 10もOSXと同様のOTAインストールを採用し、OSのアップデート作業の手間は随分と減りましたが、復旧作業等のことを考えると、緊急用にメディアは作っておいたほうがよいのかな、と思いました。

2.復元作業
先ほども書いた通り、OSを最新のものにする、という作業自体はそれほど手間がかからない(時間はかかりますが)ので、まぁ片手間でも作業できるのですが、バックアップデータを復元させるのにちょっとした問題が発生しました。

メインマシン、と言いつつ、我が家のiMacにはかなりの量のメディアファイルが格納されています。音楽だけでも40GBとか、動画も昔のテレビ番組を変換した奴とか大量に入っていて、なんだかんだで使用量は1TBを超えていました。整理したり、外付けディスクやNASの導入も検討していたのですが、そもそもHDDは2TBあり、まだ大丈夫じゃね?とタカをくくっていたわけです。

で、当然復元をするデータも1TBを超える容量になっているのですが、実は我が家のTime Capsule、Wi-Fi経由でつなげていて、その状態で復元作業を開始すると、とてつもなく時間がかかりそうな予測が出ていました。ちなみに、リストアを開始してから数時間後、残り時間は550時間。20日とかですか。そんなに待ってられないです、というかかかりすぎにもほどがある(笑)。

そこから一晩寝かせておいて、再度残り時間を見ると、それでも470時間。多少短縮されたっぽいにしても、まだ1%程度の復旧率。寝かせておいた時間を12時間と想定しても、おそらく数週間単位での復旧になりそうな感じ。

そこで、Time Capsuleを直接iMacにつないで復旧、と考えたのですが、そもそも、Time CapsuleはUSB-HDDとしての機能を持っていないわけです。となると、Time Capsuleに入っているHDDを抜き出して、USB-HDDとして認識させられないか、と考えて、実際にやってみた(若干話を端折っていますが、Time CapsuleのHDDを取り出す、または交換する方法はググってみると結構出てきます)ところ、認識せず。

ということは、Time CapsuleとiMacをイーサネットケーブル経由で接続しない限り無理、という結論になるわけです。そして、このポストを書いている段階では、イーサ接続をして復元作業中、というのが今ここ、といったところです。ちなみに、作業開始から約1時間経過して、復元率は3%弱。残り時間表示は40時間。随分時間短縮できたもんです。この割合ならば、まぁ1時間で3%と考えれば、35~40時間、1~2日で終わる、と考えていいでしょう。

ただ、正直そんなに時間をかけたくない、ということもありますし、結局Time Capsuleは普段設置してある場所から移動せざるを得なくなった、ということもあり、非常にややこしいことになってしまいました。そんなことならバックアップはTime Capsuleへ、ではなく、復元作業の時間を考えると直接USBなどでつなげたHDDにとっておいたほうがよかったのかもしれない、とは思っています。

バックアップの取り方は置かれている状況にも寄るので、一概にこの方法がベスト、とかこの方法はダメ、とか言えないのですが、少なくともデスクトップ型のPCで容量もそれなりに、ということだと、NASなどのネットワークドライブにバックアップをとるのはあまりお勧めな方法とは言えないかもしれません。逆にノートPCでHDD容量も少ないのであれば、ネットワークドライブはかなりバックアップ先としては有効でしょう。

しかしまぁ、Windowsを久しぶりにガシガシ使うことになりましたが、一番ネックなのはキーボードですわね。メインのキー配列は変わらないですが、日本語と英語の切り替えや、Optionキー(WindowsでいえばCtrlキー)の場所が違っていたりするのはやっぱり面倒ですね。これはWindows 10のインプレとは何の関係もない話ではあるのですが(笑)。

2015年9月10日木曜日

Androidのアプリ公開直前に考えたこと(2015年9月編)

現在、Androidアプリを作っていて、そろそろ基本コーディングだけできたので、α版を公開しようかと考えています。

アプリは、・・・実は自分がプログラム以外にハマっていること、筋トレに関するアプリです。しかも万人ウケするようなものではなく、あるトレーニングメソッドに基づいたもので、そのトレーニングログを取る、というだけのアプリです。

今回リリースを予定しているものは、アプリの機能がメインで、何もデザインをしていない、ある意味使いにくいアプリなのですが、デザイン自体は並行して考えているものがあるので、次回リリースで不足している機能を追加するのと合わせてデザインを載せていこうと考えています。

さて、アプリの公開となるとそのアプリをどのようにマネタイズするのか、というところなのですが、基本的に私はアプリのダウンロード自体は無償でいい、と考えています。ではマネタイズは?

あくまでも一般的な話ですが、アプリのマネタイズは3つの方法に分かれると考えています。
1.アプリ自体の有料化
2.アプリ内課金
3.アプリ内の広告収入

まず、アプリの有料化ですが、私自身はあまりこのやり方では稼げないのでは?と考えています。もちろん、アプリが誰でも使え、世の中の誰もがそのアプリを持ってくれるというのなら収益の見込みも立ちそうですが、私のように、万人ウケしないアプリを作る時点でダウンロードをしてくれる人数に限りが出てきます(いや、仮に世界中の誰もがアプリを持っているとしても、ダウンロード人数には限りがあるのですが)。

会社でダウンロード数に対するアプリの収益を見込めなければ開発にGOサインが出ない、とでも言うならこのやり方で価格設定をせざるをえないでしょうが、アプリダウンロード数=収益、という考え方は今のご時世ではちょっと古すぎる気がします。だって、スマホアプリに限らず、パッケージソフトのバージョンアップに金をかける必要はあまりなくなってきてますからね。

次に、アプリ内課金。あくまでもアプリ内での仕組みがあっての話ですが、本当はこれが一番収益率が高いのではないかと考えています(実際にどうなのかその筋の人たちに聞いてみたいところですが)。一般的には、例えばゲームアプリの中でなんらかの権利(コインだのメダルだの何とか石だのといったアイテム)を購入することでゲームを有利に進められる、という仕組みとして知られていますが、他にもアプリ内広告や機能の制限解除などのために課金をする、というのもアプリ内課金です。

ただ、ゲームならばともかく、機能制限解除のために課金というのはフリーミアムの仕組みとしてはちょっと収益にはつながらない気がします。実際にそのようにしているアプリでは(これはビジネス系アプリに多くみられる傾向ですが)、機能がフリーソフトでもそこそこ充実していて、若干痒いところに手が届かない、というあたりで課金ポイントを設けていたりするように感じます。

最後に広告収入。広告を表示させたりクリックさせたりすることで広告収入を得、その代わりにアプリ自体を無償化するという仕組みで、ほとんどのフリーアプリがこの方法を取っているのではないかと思います。そして広告の表示の仕組み(技術的でなくマーケティング的な仕組み)にもいくつかあるようですが、それはまた別の機会に。

これは、私も調べてみないとわからないのですが、広告を表示させていくら、クリックしたらさらにいくら、的なインセンティブが支払われるのだと思いますので、アプリのダウンロード人数に加え、そのダウンロードされたアプリごとの表示数・クリック数が収益となっていき、かつアプリをずっと使い続ければそれだけ収益が上がっていく、という仕組み担っているはずです。アプリを使いつづけてくれることを前提にするならこの仕組みが一番でしょう。SNS系アプリはこの仕組みがあるのでアプリ自体は無償のものが多いです。

で、これらの仕組みを組み合わせたりして収益を上げていくのでしょうが、私自身、アプリを使う立場から考えると、こうあってほしい、という理想像もあるわけです。
・アプリは安ければ安いほどいいし、できれば無償のものを選びたい
・しかし、安かろう悪かろう、ではなく、使い勝手にはこだわりたい
・機能が限定されているアプリはどこかのタイミングで使えなくなるのが嫌だ

と、作って売る立場から考えれば「こんな客イヤだ」なタイプの人間を満足させるためには、使い勝手を優先し、それ以外のどこかで目をつぶってもらうしかない、と考えると、広告収入によるマネタイズが最善解になる、と考えます。ある程度収益の不安定さ(もしクリックによる収益しか得られないのならば基本的に収益なんて上がらないと考えたほうがいいでしょう。だって自分がクリックすることがないのだから)に目を瞑るなら、アプリがあるだけでほんのちょっとでも毎月お金が入ってくる仕組みを選びます。

話がちょっとずれますが、最近、テレビでもCMが流れている、「東京カジノプロジェクト」というゲームにはまっています。あれはアプリ内課金によるマネタイズですよね。それはともかく、カジノといえばいろんなゲームがあるわけですが、例えばポーカー。役の高いほうが勝てる、のですが、ポーカーの場合、役の高低と収益は必ずしも一致しません。ビデオポーカーは別ですよ。あれは役に倍率が付いていますが、テーブルポーカーだと、例えばワンペアとツーペアのどちらで勝っても、もらえるチップの数はテーブルに置いてある他人のチップの数だけ、なわけです。極論をいえば、ワンペアで勝ったときにテーブルの上に100枚ベットされている状態と、ロイヤルストレートフラッシュで勝ったときにテーブルの上に10枚ベットされている状態が存在する、ということになります。どっちで勝ったほうが収益率がいいですかね?

もう一度アプリの収益化に話を戻しますが。

アプリ自体にとても価値がある(本人がそう思うならそうだ、と考えましょう)ものにお金を払うべきだ、という考え方は自分がロイヤルストレートフラッシュを上がったのだから全員自分が賭けた金額と同額を支払うべきだ、と考えているのと同じだと考えるのです。

逆に、ワンペアでも、最悪役無しだったとしても、少しでもいいからお金が入ってくる、という仕組みはあまり賛同されないと思うのですが、では、そういう仕組みを持っているアプリがあったとしたら?

もっと言えば、アプリ自体は利用する人になんらかのリスクを負わせることになるわけです。ポーカーテーブルで最初に参加費を払うのと同じです。そこに、ロイヤルストレートフラッシュが来たからといって、自分の持ち金全部を賭けたところで、他の人たちが賭けに乗ってくれるはずはないでしょう。むしろ、スリーカードくらいでちょっと賭け金を上げて、他の人も勝てるかもしれない、とみんなが賭け金を上げてくれるほうがいい。アプリ自体に価値があるのではなくて、そのアプリが勝手に生み出す収益に期待するほうが勝ちやすい、と、そう思うわけです。まるでアプリ開発がギャンブルみたいな言い方になりましたが。

真面目な言い方をしてもほぼ同じです。ユーザーは馬の骨ともわからないアプリにお金を支払うくらいなら、ほんの少し不便があってもいいから安いアプリがほしいわけです。アプリ自体に価値があるかどうかなんてユーザー側には関係ない話で、ユーザーにとっては、そのアプリが使えるものであれば有償無償に関わらず「価値がある」と思うのですが、開発側にしてみたら、アプリを作るための開発費用がかかるので、その開発費用を手っ取り早く回収するために、一番簡単で収益の見込みの立ちやすい有償化を選択するわけです(中小企業は特にこのパターンでしょ?ちがう?)。

他人はともかく、私が自分でアプリを作る限り(考えたくないですがそんなアプリを作る会社を作ったとしても)、アプリ自体は無償で提供する、というポリシーは変えないでしょうね。そのかわり、広告は出ます。ちょっとアプリを使うのに都合が悪いかもしれませんが、それくらいは作る側の数少ないワガママとして許してください。

わかってます。自分だって、完全無償で広告も無し、ウザいメール登録がなくてジャンクメールも送られない、しかも機能はフルで自分のやりたいことが完璧に実現できてお釣りまで来る、そんなアプリがあったら使いたいですもん。でも、そんなアプリを自分で作って他の人に使ってもらったら自分にはお金が入ってこないし、むしろすごい勢いの出費が待ってる気がします(フル機能のうちに、無制限のクラウドスペースってのが入ってるから特にねぇ)。

だったらお互い、少しだけ不都合がある状態で手打ちしましょ、って云うのが私の考え方な訳です。その不都合というのが、
・提供側:爆発的な収益は見込めない
・利用側:アプリとは関係のない画面が表示される
というあたり、つまり広告表示、という仕組みな訳です。

アプリ自体はこの1〜2週間で公開してみます。まだ既知のバグもある状態なので、あまりダウンロードはして欲しくないのですが(しかも説明書きとか何もしてないので)、ベータ版になる頃にはバグも少なくなり、多少は使いやすくもなっているはずです。もちろん、そのトレーニングメソッド(囚人トレーニング、というやつですが)のことを知らない人には何のことやら、なアプリなんですが(笑)

それから、他にもいくつか立て続けにアプリの公開を考えていますが、まぁなにぶん一人でやっていることで、他にもやりたいことややらなければならないことをやっていることもあり、なかなか進まないのが実情ですね。一人でこういう仕事をやっていることの限界、と言ったところでしょうか。

そうそう。最後に。

もし、私がどのような形であっても、完全無償で広告無し、完璧な機能をもった、要はユーザに何のリスクもなく提供側に何の利益も生まないアプリを公開したとしたら、それはアプリ開発以外になんらかの収益源を見つけたから、と考えていただけると嬉しいです。そんなことありえないけどね(笑) 

Windows10を使ってみて1ヶ月経った・・・らしい

つい先日、Surface(Pro2)をWindows 10にアップグレードしたばかり、と思っていたが、前回のポストはほぼひと月前。しかも、アップグレードから数日経って書いたはずのポストなので、

あれから1ヶ月。

普段がMac使いで、タブレットもSurfaceより小さいの、しかもAndroidだったりして、まぁ使わないんですよ、Windows 10。それでも、いわゆるタブレット端末としての利用は多いわけです。外に持ち出して使うので。というわけで、簡単にですが、1ヶ月使ってみて思ったことを書いてみようかと。

一般的な話ですが、Windows 10(以下W10)とそれ以前のOSの違いや他のOS(Mac/Linuxなど)との違いなど、ネットでググれば出てきそうな話は置いといて、私自身はWindows 10はWindows95以降で確立したスタイルを踏襲していて、良くも悪くもWindowsOSだなぁ、と思いました。



ただ、W10に関して言えば、いわゆるPC(デスクトップやノート)だけでなく、タブレットやスマホなど、あらゆるプラットフォームに対応することを前提にしているらしく、Appleの考えるマルチプラットフォームの考えとは真逆(OSXとiOSという二つのOSがあり、それぞれのいいとこ取りをするやり方)なのかな、とは思います。これはタブレット系端末、特にノートPCで画面だけ取り外せるタイプのものを使っていると感じることでしょう。

実際に、Surfaceでキーボードを取り外したり、裏面に折りたたむと、自動的に「タブレットモード」に切り替わる・・・はずですが、最初切り替わらなかったんです。自動切り替えは設定画面から設定します。確か。

「タブレットモード」・・・といっても、WindowsのUIが画面タッチでの操作に適した、Windows8で言う所のMetroモードに変わるとか、アプリが全画面表示になるとか、そんなくらいですが、ある意味思った通りの動作です。ただ、アプリの設定画面がポップアップで出現するタイプのアプリで、その設定画面が最大化されるのはちょっと興醒めですね。

これはアプリにもよるのですが、設定画面の設計はデスクトップ系OS(Windowsに限らずMacでもそうですが)の場合は別の窓で表示する、というのが普通ですし、タブレット(iOS/Androidを想定)ならばポップアップさせられないので最初から 新しい画面を作ることになるわけですが、その考え方の違い(≒画面設計)をどう吸収し、必ずしも斬新ではなくてもいいですが、新しいアイデアが必要だと思います。

それから、これは我が家のSurfaceだけの問題かもしれませんが、タブレットモードにしてから画面キーボードで文字の入力をしようとすると反応しない、または反応がとてつもなく遅い、という事象が発生します(Windows8の頃から稀に反応が遅かったりしたので端末固有の問題かもしれませんが)。

そして、もう一つ大きな問題が。Surface Pro(1/2だけかな?)では、電源に関する大きな問題が発生しているようです。

私はW10インストール後にちょこちょこと使ってはいたのですが、翌日ふと気づくと電池切れを起こしている、という状況が何度か続きました。通常、Surfaceはキーボード(Touch/Type Cover)を閉じるとスリープモードに移行する、という設定ができるようになっており、私もその設定をしてありました。が、閉じ損ねたりするとずっと電源が入りっぱなしになり、電池切れを起こす、ということも起こり得ます。

で、きちんと蓋を閉めた状態を確認した上でしばらく放置してみると、なんかすごい勢いでファンが回っているんです。これはおかしい。ググってみると、海外のフォーラムで幾つかスレッドが立っていたりしました。曰くスリープしないらしいです。フォーラムで挙げられている問題点をまとめると、
  • スリープさせてもすぐに(しかも勝手に)復帰してしまう
  • Windowsの終了をしないで置いておくとバッテリがすごい勢いで消費される
  • しかもSurfaceがものすごく熱くなりファンが回りっぱなしになる
という状態。まさに我が家のSurfaceが直面している状況と同じ。実は、フォーラム内で原因をすでに探っていて、マウスやキーボードのドライバーに問題があるのでは?というのが一つの仮説。打開策として、該当するデバイスの設定でデバイスからのスリープ復帰を「させない」ようにすることで解決する、というものでした。

ただ、このやり方だと、スリープ/復帰は電源ボタンを押す以外できなくなるわけです。とすると、Touch/Type Coverで蓋をすればスリープ、開ければ即使える、というSurfaceのウリにしている機能が使えないんですね。個人的にはかなりションボリな話です。これは是非改善してほしいところですね。

また使ったレポを定期的に書いてみようと思います。