読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

iPhone 6 から iPhone 7 Plus に機種変してみた

日常

使っていた iPhone 6 がまもなく 2 年だったのと、ホームボタンというは Touch ID の反応が悪くなってきたので、iPhone 7 Plus に変えてみました。前にブログ書いてから丁度 2 年という感じです。

今年になってから Robin / MADOSMA Q601 / iPhone 7 Plus と、スマホを買いすぎな気がしてきました。しかも全部同じようなサイズで Full HD な画面ばかりです。

f:id:shiba-yan:20160919234901j:plain

これまで SoftBank を使ってましたが、結構 3G に落ちるのと永田町の構内で絶対に圏外になるので、この機会に人生で初めて docomo に MNP してみました。

予約開始すぐに手続きを行ったところ、発売日は無理でしたが土曜には在庫確保して受け取れました。平日の受け取りは厳しいので、別にこの辺りは気にしてません。

f:id:shiba-yan:20160919224759p:plain:w450

思ったより iPhone 7 Plus は大きくて重い感じがしましたが、ヨドバシで iPhone 7 を持ってみると小さすぎておもちゃかと思いました。やはり慣れの問題の様子。

カメラ性能は上がってるみたいですけど、まだ全然写真を撮っていないのでよくわかりません。ズームを 2 倍にすると、iOS が自動的にカメラを切り替えるようです。

f:id:shiba-yan:20160918225542j:plain:w450

完全に余談になりますが、SoftBank に MNP 予約番号を貰うために電話したら、機種変に使える 1 万ポイントをあげますと言われて少し揺らぎましたが、よく聞くと iPhone 7 には使えないと言われたので速攻で番号を発行してもらいました。*1

シアトルに行く前までに自宅に VPN 接続出来るようにしておきたいので、固定 IP が使えるプロバイダに乗り換えて SoftBank との縁を完全に切ろうかと思ってます。

*1:違約金と端末代の残りで 2 万ほど請求されると言われましたが即決しました

Azure Search Users Meetup and Deep Discussion を開催してきました

Azure Search

f:id:shiba-yan:20160914212045p:plain

Azure Search 開発チームの Eugene Shvets さんから「東京に行くので Search の話をしたい」と打診を受けたのがきっかけに、JAZUG 主催で Azure Search Users Meetup and Deep Discussion を開催してきました。

イベントページでは 19 時から 21 時と予定してましたが、事前準備を含めると 18 時から 22 時まで 4 時間ぶっ続けで Azure Search の話をするという、かなりディープな場にすることが出来ました。

当然ながら大体英語の予定でしたが、エバンジェリストの畠山さんが通訳をしてくださったので、ただでさえ伝えにくい日本語の事情などを伝えることが出来たと思います。本当にありがとうございました。

当日は日本マイクロソフトさんから軽食の提供がありました。軽食というか寿司です。

f:id:shiba-yan:20160913180956j:plain

f:id:shiba-yan:20160913190159j:plain

司会進行は安心と信頼のブチザッキ兄さん @kosmosebi でした。英ぺなので安心して任せました。事前に英語のスライドを作ってくるぐらいの力の入れ方でした。

f:id:shiba-yan:20160913190742j:plain:w450

ショートセッション

まず Eugene による Azure Search の現在と今後についてのショートセッション(と言いつつ 1 時間)を聞いて、今後追加される機能や方向などが大分理解出来ました。

トピックとしては以下のような感じでした。

  • 検索はみんな当たり前のように使っている => 重要なんだよ
  • Azure Search の新しいスケール (S3 / S3 HD)
  • Search チームはまだ小さいチーム、日本語を話せる・理解できるメンバーが 2 人いる
  • Azure Blob / Table のインデクサー(プレビュー)
  • 日本人的に嬉しい機能
  • エンタープライズ向け機能

色々と興味深いというか、早く使いたい機能があったので楽しみに待ってます。

ディスカッションの内容

事前に Eugene から日本の Azure Search ユーザーに向けて 3 つの質問を貰っていたので、基本的にはそれに回答していく形でディスカッションを進めていきました。

  1. What are the biggest adoption blockers for Azure Search in Japan?
  2. What are you personal top asks for Azure Search?
  3. What are you biggest pain points when implementing search?

大体の人が想像つくと思いますが、1 つ目の質問への回答はみんな「日本語」でした。つまり大体がアナライザーの問題というわけです。やはりなかなか日本独自の問題なので認識してもらえなかったり、重要じゃないと考えられてしまうので直接フィードバックを行ういいチャンスでした。

ディスカッションのトピックは大体以下のような感じです。

  • Azure Search のバックエンドは?
    • Elasticsearch を使っていて、プラグインを開発したりしている
    • プラットフォームは Windows Server を使っている
  • カスタム辞書を使いたい
    • プライベートプレビュー中だよ
  • デモアプリのデータに日本語がないと使えないと思ってしまう
    • さとうなおきさんとぶちぞうさんがハードワークで何とかする
  • アナライザーの結果を確認したい
    • Text Analyzer API で多少は解決できるかも*1
    • Lucene の Explain API が使いたい
  • カスタムアナライザーが難しすぎる
    • Azure Portal で使えるようにしたい
  • 読み仮名を形態素解析から自動的にインデックス化してほしい
    • 読みを伝えるのに非常に苦戦
    • なのは問題を伝えよう(ぶちぞう談)
  • Free と Basic の間のスケールが欲しい
    • 価格はいくらぐらいがいい?
    • Basic の半分でキャパシティも半分で良いです
  • データの暗号化、アクセスコントロールが欲しい
    • ジャパニーズトラディショナルカンパニーでは必要なんだ(ぶちぞう談)
    • 理解してる
  • 東日本リージョンにデプロイしてほしい
    • 個人的には西日本で良いと思うけど、日本の会社的には東日本が必要と伝える

3 時間ほど話していたので他にもいろいろとトピックはあったのですが、英語に脳の処理能力の 8 割を使っていたのと、メモを取っていなかったので覚えてるのはこのくらいでした。

Thank you Eugene, have a nice trip! I’m looking forward to meeting you :)

Azure Web Apps と Application Insights でパフォーマンスカウンターのような値を利用する

Azure Web Apps Application Insights

これまで Application Insights を Azure Web Apps で使った場合には Servers の値が表示されないので非常に残念でしたが、SDK Labs 扱いの AggregateMetrics を使うと一部取れるようになりました。

公式ブログを見るとパフォーマンスカウンターを扱えるようになったように取れますが、実際には読み取り権限はないので罠っぽいなと思った次第です。

折角 GitHub でソースが公開されているので、直接確認した方が早いです。

ちなみに GitHub などの CI 連携でビルドをしている場合、nuget.config に Application Insights SDK Labs のフィード URL を追加しないとパッケージ復元で失敗します。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AppInsights Labs" value="https://www.myget.org/F/applicationinsights-sdk-labs/api/v2" />
  </packageSources>
</configuration>

最新のビルドをインストールすると、Process CPU の値が % ではなく Processor Time になっているみたいで、非常に残念ながらグラフが壊れます。デフォルト設定のままなのでバグのようです。

f:id:shiba-yan:20160906220158p:plain

残念な感じなので、正式リリースまでには CPU 使用率ぐらい出てほしい感じがあります。CPU の User Time と Kernel Time が取れるので、分毎の差分で何とかならないかなと考えていたりします。

New Relic では普通に出ていた気がするんですが、やはり機能的には残念な感じがします。

仕組みを調べてみた

実際のところ Azure Web Apps に与えられている権限ではパフォーマンスカウンタを読み取ることは出来ないので、App Service のランタイムがパフォーマンスカウンタの値を環境変数経由で渡しているみたいです。

用意されている環境変数は以下の 4 つです。Kudu の環境変数一覧では出ていないです。

  • WEBSITE_COUNTERS_ASPNET
  • WEBSITE_COUNTERS_APP
  • WEBSITE_COUNTERS_CLR
  • WEBSITE_COUNTERS_ALL

CLR 系の値が取れるのは便利な気がします。標準で対応しててほしい機能 No.1 ですが。

Debug Console から echo させてみると、JSON が簡単に取れました。AggregateMetrics ではこの値を読み取って、Application Insights に送信しているだけでした。

f:id:shiba-yan:20160906221229p:plain

使える値は CounterFactory.cs に定義されているので、ここを見るのが手っ取り早いです。パフォーマンスカウンター名と Web Apps のメトリックとのマッピングを行っています。

実際のところ読み取れる値は App Service Plan のスコープではなく、アプリケーション単位のようなので CPU 時間やメモリ使用量など絶対的な値しか取れないです。CPU 使用率や空きメモリ量は無理です。

デフォルトで設定されているパフォーマンスカウンター名に対応していない気がしますが、あまり考えないようにしておいた方が良いかなと思い始めました。