Surface Bookを買った(注文編)

日本発売は2016年初頭という煮え切らない状態だし、USキーボードモデルが出るか分からなかったのでSurface Bookをポチった。

大して稼ぎもないがRAM 16GBである。 来月の請求に頭を悩ませることになるだろう。

注文日は日本時間で言うと11/3の18時頃。 USのMSストアでないのはPayPalの本人認証を済ませていなかったため10万以上の決済が通らなかった。 たまたまAmazon.comを見ていたら、Amazon発送の在庫がある状態だったので勢いは大事。

転送サービス

Amazon.comから直接日本には送ることができないので転送サービスを利用する。 検討したのは以下の3つ

USAでお買い物.comの発送についてスピアネットの発送についてを見ると、どちらもヤマト運輸もしくは郵便局であり1梱包あたりの上限金額をSurface Bookが上回っているため断念。

1WorldShopping.comに関してはDHLが利用でき、そのような注意書きがなかったため、1ShopMobile.comの姉妹サービスということで日本語への不安感はあるものの採用した。

発送~到着まで(更新中)

Amazonからの発送状況

Amazon.comの2 Days Shippingを利用した。

DHLからの発送状況

費用

  • 334880円(2717.66ドル) Surface Book本体+Amazonの送料
    • うち18.66ドルが送料(2-3営業日到着)
  • 13213円(104.ほげほげドル) DHLの送料+保険料
  • 22180円 関税+消費税

計369273円

USキーボード料金と捉えておくのが良さそうですね...

まとめ

ポチるときは勢いが大事。 Surface Book 狂騒曲 - Togetterまとめとか見てるとさらに欲しくなる。

DMM.comの「いろいろレンタル」を利用してみた

皆さん、物は買ってますか? 色々レビューを見たり、評価を見たり、店頭でちょっと触ってみたりとあの手この手で物を調べていると思います。 でも店頭じゃ使い勝手が分からない!という悩みがあったのですが、DMM.comに「いろいろレンタル」というサービスがあったので使ってみました。

そもそも「いろいろレンタル」とは

いろいろレンタルのページを見ていただければわかるように、 バーベキュー用品や旅行、ドレスなどを始め様々なものがレンタルできるようになっています。

届くまでのタイムラグと返却する手間はあるのですが「なんかこれ買ったけど部屋の肥やしになってるな」というような物を借りるにはうってつけではないでしょうか。 旅行用のスーツケースとかとても邪魔ですよね(

今回借りたもの

GoPro HERO 4 シルバーエディション サーフ

GoPro HERO 4 シルバーエディション サーフを借りてみました。 海に行く予定だったので、せっかくならアクションカムを体験してみたいという目的でした。

借りてから返すまで

借りる際には10日間のプランを選択しました。 使うまでに少し慣れたかったのと、返す時に余裕を持ちたかったからです。

  • 8/24に到着(佐川急便)
  • 8/29-30に利用
  • 9/2に返却

という流れでした。 返却の際には記載済みの伝票がついてくるので、元の箱に入れ直して、集荷を頼むだけです。

メリット・デメリット

メリット

  • 今回しか使わないだろう、というものを気軽に借りられる、もしくは試すことができる
  • 1日から、ということも可能であり、今回のように10日間借りてもコスパは良い

デメリット

  • 今回はうまく借りられたが、前回スキースノボシーズンに借りようとしたら埋まっていた
  • 借りられる商品は物にもよるが扱っていない場合もある
  • 佐川急便というのが面倒くさい

まとめ

メリット・デメリットはありますが、借りられるのはなかなか便利なので試しに使ってみてはどうでしょうか。

自分もXamarinのライセンスを申請してみた

Windows Phoneのアプリを作ったことがある人向けにライセンスを提供してくれるらしい(しかもBusinessライセンス)。 ytabuchi.hatenablog.com

他にも申し込んでいる人がいるので書き方とかそういうのは割愛。 blog.ch3cooh.jp

kazuakix.hatenablog.jp

de:codeでライセンスもらったのにあまり使いこなせずに終わってすみませんすみませんって感じと、昔トライアスロンでこんな微妙なアプリ作ってたわーって気持ちになりました。

Windows 10 Build 10240でMicrosoft Edgeのパフォーマンスが上がったらしい

試しに以下のパフォーマンス測定ツールを使ってみた。 Octane, SunSpider, Kraken

一応Build 10166からアップデートを行う前にも実行し

環境

対象ブラウザ

結果の画像は以下の順に掲載する。

環境の端末にFirefoxを入れ忘れてましたが入れるのが面倒なので除外しました。 普段はFirefoxを使ってます。

結果

Octane

Microsoft Edge (Build 10166)

Microsoft Edge (Build 10240)

Google Chrome (43.0.2357.134m)

SunSpider

SunspiderはURLを生成できるのでそちらを掲載します。

Kraken

まとめ

Octane SunSpider Kraken
Microsoft Edge (Build 10166) 6629 507.7ms 5561.8ms
Microsoft Edge (Build 10240) 7156 435.1ms 5603.2ms
Google Chrome (43.0.2357.134m) 6587 735.2ms 5275.8ms

OctaneとSunSpiderを見ると性能が良くなっているのが分かります。 逆にKrakenでは遅くなっているのが気になるところです。

ベンチがすべてというわけではないですが、UWPになったことで継続的なアップデートも期待できるので今後次第というところでしょうか。

Windows 10 TP環境でVagrantと自作Hyper-V boxの扱いにハマっていた

先に結論を知りたい人のために書くと

Windows 10 TPとHyper-Vの組み合わせで既存のVagrant boxを使うことはできる。 が、現状Windows 10 TP上で自分で作ったboxは使うことができない。

エラー環境

自作のHyper-V向けVagrant boxを作っていたら vagrant upでエラーが出ていたから色々調査した。 最初はCore OSのboxの作りが悪いのかと思っていたら、既存のboxをカスタマイズ後エクスポートしてもエラーが出ていたので怪しいと踏んだ。

Vagrantのエラーメッセージ

$ vagrant up
Bringing machine 'default' up with 'hyperv' provider...
==> default: Verifying Hyper-V is enabled...
c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/config.rb:83:in `block in missing_interpolation_argument_handler': missing interpolation argument :name in "The box you're using with the Hyper-V provider ('%{name}')\nis invalid. A Hyper-V box should contain both a\n\"Virtual Machines\" and a \"Virtual Hard Disks\" folder that are\ncreated as part of exporting a Hyper-V machine.\n\nWithin these directories, Vagrant expects to find the\nvirtual machine configuration as well as the root hard disk.\n\nThe box you're attempting to use is missing one or both of\nthese directories or does not contain the files expected. Verify\nthat you added the correct box. If this problem persists,\nplease contact the creator of the box for assistance." ({:_key=>:box_invalid, :_namespace=>"vagrant_hyperv.errors"} given) (I18n::MissingInterpolationArgument)
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/interpolate/ruby.rb:29:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/interpolate/ruby.rb:29:in `block in interpolate_hash'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/interpolate/ruby.rb:21:in `gsub'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/interpolate/ruby.rb:21:in `interpolate_hash'

        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/interpolate/ruby.rb:17:in `interpolate'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/backend/base.rb:153:in `interpolate'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n/backend/base.rb:41:in `translate'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n.rb:157:in `block in translate'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n.rb:153:in `catch'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/i18n-0.6.11/lib/i18n.rb:153:in `translate'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/errors.rb:103:in `translate_error'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/errors.rb:72:in `initialize'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/providers/hyperv/action/import.rb:41:in `exception'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/providers/hyperv/action/import.rb:41:in `raise'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/providers/hyperv/action/import.rb:41:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builder.rb:116:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `block in run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/busy.rb:19:in `busy'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builtin/call.rb:53:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/providers/hyperv/action/check_enabled.rb:18:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builder.rb:116:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `block in run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/busy.rb:19:in `busy'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:214:in `action_raw'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:191:in `block in action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:516:in `lock'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:178:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:178:in `action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

調査

  • Windows 8.1ではどうか
    • 既存のboxカスタマイズは問題なく動作

なので違う部分が何かあるということ。

boxのディレクトリ構造

hashicorp/precise64

/path/to/hashicorp-VAGRANTSLASH-precise64/1.1.0/hyperv
|--Vagrantfile
|--Virtual Hard Disks
|  |--precise64.vhdx
|--Virtual Machines
|  |--6C85D451-6B8B-410B-927C-8DE28E84DAD6.XML
|--metadata.json

自作box

/path/to/my-VAGRANTSLASH-trusty64/0/hyperv
|--Virtual Hard Disks
|  |--trusty64.vhdx
|--Virtual Machines
|  |--E8B4D4CB-B77A-40C9-8AEF-C2D72A92B807.VMRS
|  |--E8B4D4CB-B77A-40C9-8AEF-C2D72A92B807.vmcx
|--metadata.json

OSをアップデートしたとか仮想マシン名が違うということを除くと、違いは Virtual Machines 内の構成が変わっていること。

Windows 10でのHyper-Vの変更点

What's New in Hyper-V in Technical Preview

Virtual machines now have a new configuration file format which is designed to increase the efficiency of reading and writing virtual machine configuration data. It is also designed to reduce the potential for data corruption in the event of a storage failure. The new configuration files use the .VMCX extension for virtual machine configuration data and the .VMRS extension for runtime state data. 

The .VMCX file is a binary format, directly editing the .VMCX or .VMRS file is not supported.

Technical PreviewではHyper-Vの設定データが入っているファイルフォーマットを変更したようです。 VMCXファイルが仮想マシンの設定で、VMRSファイルが実行時の状態のデータフォーマットになっているみたいですね。

推測

VagrantではHyper-Vのboxファイルを登録する際にチェックしているのはVirtual Hard Disks、Virtual Machinesのディレクトリとmetadata.jsonがあるかのみ。 vagrant up時に現状ではXMLファイルを読みだして仮想マシンを設定していると思われる。 で、Windows 10 TPではファイルはopenしたけどバイナリだから必要なキーを読めずにエラーを出してるという感じかな。

まとめ

今のところWindows 10 TPでHyper-V用のbox作るのは無理な気がする。 どうしてもWindows 10 TP環境なんだけど自作のHyper-Vのboxを使いたいならWindows 8.1で作ってくること。 もしくはHyper-Vを諦めて、VirtualBoxとかにする。

VMCX, VMRSファイルの直接編集はサポートしてないとあるが読み出しはできるのだろうか。 Issue投げるのが良さそう。

#Galaxyアンバサダー Galaxy S5 Activeをお借りしています。 その3 アプリ

たぶんこういう記事は2回目あたりに書くものじゃないかなと思いつつ、Galaxy S5 Activeの初期アプリと、この機種の特徴であるActivity Zoneについて見ていきましょう。

初期アプリ

sc1 sc2 sc3 sc4

初期アプリは3ページ+いくつかといったところで、今回お借りしたものがドコモのものなので3ページ目のほとんどがドコモのアプリで埋まっていますね。 なのでGalaxy S5 Activeのアプリとしては3ページほど、ドコモで追加されたものが1ページ分といったところでしょうか。

GalaxyシリーズはGalaxy Nexusしか持ったことがないのですが、思ったほど独自のアプリはなく素の状態でもスマホを活かせるアプリが揃っているのではないかと思います。 ところでTwitterは入っているのにFacebookがないのが気になりますね...

Activity Zone

そしてGalaxy S5 ActiveならではといったアプリがこちらのActivity Zoneアプリ。 sc5 主にアウトドアで使いそうな機能が揃っております。

気圧計

sc6

気圧計はiPhone 6/6 Plusでも搭載されていますが、天気の変化やヘルスケアなどにも利用されています。 一応Activity ZoneアプリではAccuWeatherへのリンクがあることから、アウトドア中の天気のチェックに利用されるのでしょう。

またS Healthというヘルスケアアプリにも気圧計自体は利用されるのではないかと思います。

コンパス

sc7

コンパスもアウトドアでよく利用されそうな機能です。 モバイルネットワークもしくはWi-Fiが掴めた場合には住所も表示されますが、ネットワークがなくてもコンパスとしての機能は利用できます。

これで遭難しても大丈夫!

トーチライト

sc8

トーチライトの機能を提供しているアプリは様々ありますが、Activity Zoneに統合されているのはいいですね。 点滅速度や明るさを変えられるので夜でも安心です。 ただちょっとスライダーが使いづらいかなという感じ。

ストップウオッチ

sc9

これについてはコメントは要らないですね...

メニュー

sc10

気圧計、コンパス、トーチライト、ストップウオッチはスワイプで切り替えられますが、メニューから直接アクセスもできます。 またヘルスケアや省電力モードや、防災アプリへのショートカットが初期状態であるのも良いですし、自分で他のアプリを追加できるのもアウトドア向けともいえるかもしれません。

まとめ

タフネススマホを触ったことがなかったため、アウトドアを意識したActivity Zoneは面白いアプリでした。 他の機種でもこのようなアプリがあるのでしょうか、気になります。

時間がなく気圧計とS Healthの連携を見られなかったのは残念ですが、Galaxy S5 Activeを借りれたのはとても良かったと思います。