ECサイト運営開発記

PHPフレームワーク Laravelの使い方を中心とした通販サイトの開発日記

買うとキメていたはずのZenbook3ががっかりな値段

ASUSの日本法人がZenbook3を発表。6月に台湾で発表されてから、4ヶ月近く経過し、いつ日本で発売されるのか待ちに待って、ようやく、9月28日に日本国内での発売が正式に発表された。

しかし、その内容はZenfone3の価格と同様に少々残念な結果となった。一体、どこが残念なのか?

12インチMacbookの対抗馬として

まずは簡単なスペック

  • OS:Windows 10 Home 64ビット
  • CPU:Intel Core i5-7200U / Core i7-7500U
  • メモリ:8GB/16GB
  • ストレージ:SSD256GB/512GB
  • ディスプレイ:1,920×1,080ドット (フルHD) /グレア液晶 /12.5型ワイドTFTカラースクリーン ワイドビュー液晶
  • グラフィックチップ:Intel  HD グラフィックス 620
  • 重量:910g
  • バッテリー駆動時間:8.7時間
  • 接続端子:USBポートとイヤフォンジャックが一つずつ
  • その他:指紋センサ搭載

 

f:id:nohohon_x:20160929173757j:plain

 Zenbook3は12インチの筐体でありながら910gと軽量かつ薄型のノートパソコン。ライバル機種はもちろん、アップルの12インチのMacbookだ。しかし、12インチMacbookがCPUにCore mプロセッサを採用しているのに、対して、ASUSはCore i 5/7 シリーズというパワフルなCPUを採用。メモリはMacbookが8GBで統一されているのに対して、Zenbook3は8GBと16GBのどちらかを選択でき、こちらも素晴らしい点。こうした基本スペック以外にも、指紋センサを使用して指一本でロックを解除できたり、急速充電ができる点などASUSの本気度が感じ取れるノートパソコンになっている。

 

しかし、問題は発売時期と価格。

 

日本国内で展開されるモデルは2種類で、下位モデルは139,800円(税別)。これはMacbookの下位モデルが148,800円(税別)だという事を考えると、一見お安く感じる。おまけにMacbookはCore mなのに対して、Zenbook3Core i 5なのだから、性能も上。そう考えれば確かにお安いかもしれないが、いくら性能がいいとはいえ、139,800円(税別)という表記は買うのを躊躇させる値段。税込み価格だと15万円を超えてしまうわけだから。

 

また、シンプルに軽量ノートパソコンを欲しい身としては、12インチのサブマシンにそこまで求めていない。なんなら、同じCore Mを搭載して静音ファンレス設計にした上で、890gという超軽量級のマシンにした上で価格を110,000円(税別)くらいにしてくれた方が、こちらとしては有難かったくらいだ。おまけに現状、バッテリー駆動時間は9時間持たないが、Core Mにしてしまえば10時間は超えるするはず。

 

また、発売のタイミングも若干遅すぎた感が否めない。アップルは年内(一部報道では10月中)にMacbook AirMacbook Proを刷新する可能性があり、この内容によってはZenbook3は一気に忘れ去られてしまう可能性すらある。だったら、そうなる前にさっさと発表してさっさと売ってしまった方がASUS的には得だったのではないか?

 

Macbook Air/Proの新型の噂が燻ってる現在の状況を考えると、昨日の発表内容は「まだ様子を見ておこう」「即買いはやめておこう」という客に思わせてしまったのではないだろうか?なんというか客が一気に引いていった感じ。とっても魅力的な製品なだけに残念な発表内容だった。

 

www.asus.com

では、今回のZenbook3の価格にがっかりした人で軽量ノートパソコンを探している人はどうすればいいか?

選択肢1 .HP EliteBook Folio G1

pc.watch.impress.co.jp

HP EliteBook Folio G1 製品詳細・スペック - ノートパソコン・PC通販 | 日本HP

Zenbook3と同じ12.5インチのディスプレイでフルHD液晶のHPのノートパソコン。重量はZenbook3よりやや重めの980g。Zenbook3よりやや重いとはいえ、1kg切ってるのは素晴らしい。それに加えて、180度開閉できるヒンジを採用していて、膝の上やうつ伏せでながらパソコンも可能。CPUはCore Mシリーズを搭載した静音PC。価格は99,800円(税別)から。ただし、HP直販で購入する必要がある。

選択肢2.Yogabook Windows

http://shopap.lenovo.com/jp/tablets/lenovo/yoga/yoga-book/

www.itmedia.co.jp

10月に日本国内でも発売予定のLenovoのYogabookのWindows版は量販店でも購入可能。RAMは4GBでSSDも64GB、CPUはAtom搭載で性能的には完全にタブレット。しかし、ながら、フラットな板に美しく浮き上がるキーボード「Haloキーボード」を搭載し、360度開閉も可能。10.1インチで重さ690gで持ち運びにもかなり便利。価格も52,800円(税別)でお求めやすい上に、もう7000円足せばLTEモデルも購入可能。SuperFishなどのネガティブなイメージに目を瞑むる事ができれば、意外と良い製品かもしれない。

選択肢3.Macbook AirとProの新型を待つ

www.itmedia.co.jp

まだ噂レベルで、そもそも出るのか出ないのかさっぱりわからない。ただ、Macbook Proに関してはタッチパーが搭載されるという具体的な情報も出てきているので、年内に発売されるのを期待しつつ、新情報を待つほかない。

 

GMOのVPSサービスConoHaが素晴らしい

GMOのConoHaを使ってみてると、これが以外と使い勝手がいい。

www.conoha.jp

以下、ConoHaオススメのポイント

  • シンプルで簡単な管理画面。もちろん日本語。
  • 仮想サーバーをすぐに立ち上げられる。
  • データ転送量の課金がない。無制限。
  • 負荷分散も簡単。
  • メールサーバーも簡単に立ち上げられ、利用料金も安い。月額500円から。
  • メールアドレスの作成も簡単。
  • MongoDBやRedisなどのキャッシュサーバーやbaseCMSやconcreteのようなCMSHadoop、Dockerなども管理画面から簡単に立ち上げられる。
  • クレジットカードがなくても利用できる。料金をチャージして、毎月そこから支払われる。
  • 明瞭会計で使いすぎの不安がない。
  • オブジェクトストレージも用意されている
  • APIも公開

等など、素晴らしい点が多数。しかしながら、以前電源トラブルか何かで大規模障害を起こしたというのも事実。この辺は二度とないようにしていただきたいです。

とはいえ、AWSで小規模サイトを運営している人は乗り換えてみても、損することはないと思います。

Surface Pro3/4で3本指仮想デスクトップの切り替えが可能に。

Windows 10 Anniversary updateで待望の3本指による仮想デスクトップの切り替えが可能になった。ブラウザ←→エディタ間をスムーズに切り替える事が可能になるので、これによって、作業効率がアップするはず。

設定方法は 「設定」→「タッチパッドで検索」→「マウスとタッチパッド」の下の方のある項目群で設定が可能に。他のノートPCで設定可能かどうかは不明だが、Surface Pro3/4では変更が可能。

f:id:nohohon_x:20160809020605j:plain

AngularJS のng-optionsのvalue値でデータ型が表示されてしまったら

AngulrJSでng-optionsを使ってると、value値にデータ型も一緒に表示されてしまい、期待通りの動きになってくれなかった。

  • http requestで取得したJSONデータ
    • 取得したJSONデータは$scope.itemListにセット。
[
  {"item_id":"ITM000000001","item_name":"バタークリームサンド"},
  {"item_id":"ITM000000002","item_name":"ワッフルクッキー"},
  {"item_id":"ITM000000003","item_name":"マカロン"},
  {"item_id":"ITM000000004","item_name":"ココナッツ クッキー"}
]
<select ng-model="selectedItem" ng-options="item.item_name for item in itemList"></select>

しかし、このコードだと出力されるHTMLは以下の様に、データ型も一緒に表示される上、空のデータに対してselectedが割り当てられてしまう。

<select ng-model="selectedItem" ng-options="item.item_name for item in itemList">
<option value="?" selected="selected"></option>
<option value="string:ITM000000001" label="バタークリームサンド" selected="selected">バタークリームサンド</option>
<option value="string:ITM000000002" label="ワッフルクッキー">ワッフルクッキー</option>
<option value="string:ITM000000003" label="マカロン">マカロン</option>
<option value="string:ITM000000004" label="ココナッツ クッキー">ココナッツ クッキー</option>
</select>

しかし、string:というデータ型が邪魔である。
これをどうやって解決するのか?

  • 解決策その1
    • ng-optionsをやめて、ng-repeatを使う。
<select ng-model="selectedItem">
<option ng-repeat="item.item_name for item in itemList" value="{{item.item_id}}">{{item.item_name}}</li>
</select>
  • 解決策その2
    • track by句を使う
      • 重複した配列を出力する際に使われるキーワードらしいですが、この句を使うと、データ型を省略した文字列で表示されます。どういう理屈かはわかりません。
<select ng-model="selectedItem" ng-options="item.item_name for item in itemList track by item.item_id"></select>
  • 空のselectedの解決策
    • JSONを取得した段階でselectedItemにitemList[0]を指定しておく。またはng-initにて、初期値を指定。


出力されるHTML。

<select ng-model="selectedItem" ng-options="item.item_name for item in itemList track by item.item_id">
<option value="ITM000000001" label="バタークリームサンド" selected="selected">バタークリームサンド</option>
<option value="ITM000000002" label="ワッフルクッキー">ワッフルクッキー</option>
<option value="ITM000000003" label="マカロン">マカロン</option>
<option value="ITM000000004" label="ココナッツ クッキー">ココナッツ クッキー</option>
</select>

AngularJSは高機能なだけに、使いこなすのが難しいです。

それはついてくる 映画「イットフォローズ」 ややネタバレあり

キネカ大森にて、怖いと評判のホラー映画「イット フォローズ(原題:It follows)」を見てきた。「それはついてくる」というタイトル通りの映画だったが、「それ」とは一体何なのか?

「イット フォローズ」 の簡単な説明

大学生に通う主人公の女性ジェイが好意を抱いているボーイフレンドとデートをするところから始まります。デートを重ね、いい雰囲気になり車の中で体を重ね、ジェイが幸せな気分に浸っていると、クロロホルムらしき物を嗅がされて、気絶させられます。目覚めたジェイはなぜか車いすに乗せられ手は拘束された状態。状況が理解できないジェイに対して、ボーイフレンドが事情を説明します。すると、意外な事実を告げられます。要約すると以下の通り。

  1. 君にあるものを移した
  2. 移された人間は「それ」に付きまとわれるようになる。
  3. 「それ」は移された人間と移した人間にしか見えない。
  4. 「それ」は人間のように見えるが人間ではない。
  5. 「それ」はその時々で姿を変える。
  6. 「それ」は走って追いかけてはこない。
  7. 「それは」ゆっくりと歩いてくる。だから、出来るだけ車で移動して時間を稼げ。
  8. 「それ」に捕まったら死ぬ。
  9. 誰かとセックスすれば、「それ」を移すことができる。
  10. もし、移した人間が「それ」に殺されてしまったら、1つ前の人間に戻ってくる。
  11. だから、逃げて。超逃げて。

こうして「それ」を移す事に成功したボーイフレンドはジェイの元から姿を消し、ジェイは状況を完全には把握できずに、自分についてくる「それ」に怯える日々を過ごします。やがて、自身の置かれた状況を完全に理解した彼女は生き残るために一体どんな行動を取るのか?

といった具合で、呪いのビデオ「リング」のセックス版といったところ。ただし、誰かに「それ」を移した後も全く安心できないというのがリングとは違う点。なので、移す相手に事前または事後にきちんと説明しておかなければならないのもポイント。じゃないと、すぐに死なれてしまって、また戻ってきてしまうという理不尽な設定。こうして設定だけ箇条書きで書くと非常にバカバカしく思うかもしれないが、この映画見てみると結構怖い。昨今のゾンビ映画のように全速力で追いかけてくることもなければ、怖い顔の殺人鬼が刃物で追い回してくることもない。ただ、一見普通の人間が無言でこっちに向かって歩いくるだけの映像が上記の設定と恐怖を煽るBGMが加わるだけでえらく不気味になってしまう不思議な映画。 

90分の映画でしたが、なかなか緊張感のある映画でDVD買ってもいいかなって思えるような内容でしたし、もう一度、改めて見なおしてみたいです。

結末は書きません。気になる人はいずれレンタルされるであろうDVD等で確認して下さい。もしくは、都内ではキネカ大森で4/15日金曜日まで上映していますので、時間がある方はぜひどうぞ。

Laravel5でAWSのSQSを使う 複数のキューを処理する方法

Laravel5でAWSのQueueサービスであるSQSに2つのキューを作成して、処理を実行させる。

[下準備]

  • AWSの管理画面にログイン
    • SQSに移動して、2つのキューを作成する
      • 注文メールの送信処理をするORDER_MAIL_QUEUEというキューを作成。
      • 商品在庫が少ないことを管理者に警告するALERT_MAIL_QUEUEを作成。
        • ユーザーにアクセス権を与えて終了


[Laravel]

  • .envファイルを編集
    • QUEUE_DRIVERの値をsqsに変更
  • config/queue.phpを編集
    • connectionsの項目に、sqsドライバーを使用したコネクションを2つ定義する
      • コネクション名は自由
      • keyとsecretはIAMのアクセスキーを指定。
      • queueにはキューのプロパティの項目に表示されているURLを指定。
      • regionは使用しているリュージョン。
<?php

return [

    // .envファイル内でQUEUE_DRIVERの値をsqsに変更していれば、無編集でOK。
    'default' => env('QUEUE_DRIVER', 'sync'),


    'connections' => [

        /* 省略 */

        'order_mail_queue' => [
            'driver' => 'sqs',
            'key'    => '******************',
            'secret' => '***********************',
            'queue'  => 'https://sqs.ap-northeast-1.amazonaws.com/hogehoge/ORDER_MAIL_QUEUE',
            'region' => 'ap-northeast-1',
        ],

        'alert_mail_queue' => [
            'driver' => 'sqs',
            'key'    => '******************',
            'secret' => '***********************',
            'queue'  => 'https://sqs.ap-northeast-1.amazonaws.com/hogehoge/ALERT_MAIL_QUEUE',
            'region' => 'ap-northeast-1',
        ],


    ],


]
  • コマンドラインから2つのキューに処理させるジョブを作成する
    • php artisan make:job OrderMailJob
    • php artisan make:job AlertMailJob
  • app/Jobs/ディレクトリに2つのジョブが作成されていることを確認して、各ジョブに処理内容を記述する
<?php

    /** OrderMailJob **/

    protected $order;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($orderNumber)
    {
        $this->order=Order::find($orderNumber);
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {

        // 注文メールを送信
        echo $this->order->order_name."さん あなたに注文メールを送りました!";

        // 以下送信処理省略

    }
<?php

    /** AlertMailJob **/

    protected $item;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($itemId)
    {
        $this->item=Item::find($itemId);
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {

        // 在庫警告メールを送信
        echo "店長" .$item->item_name."の在庫がやばいです!補充して下さい!";

        // 以下送信処理省略

    }
  • ジョブをキューの最後尾に追加する。
    • 今回はサンプルとして、route.phpに記述。
    • localhost/job/にアクセスして、それぞれのキューにジョブを追加する。
      • コンストラクタの引数に注文番号と商品IDを渡したインスタンス作成して、第3引数にコネクション名を指定すればいいだけ。
        • 第2引数は配列でパラメータを渡すことができるが、第一引数にオブジェクトを渡した場合は無視される仕様
<?php


Route::get("/job",function(){

  \Queue::push(new \App\Jobs\OrderMailJob("ORDER_0001"),null,"order_mail_queue");
  \Queue::push(new \App\Jobs\AlertMailJob("ITM_0001"),null,"alert_mail_queue");

});
    • キューに並んでいるジョブを処理してみる
      • php artisan queue:listen コネクション名 で指定したコネクションでキューに溜まったジョブを処理することができる。
        • php artisan queue:listen order_mail_queue
        • php artisan queue:listen alert_mail_queue
    • コンソールに文字列が表示されていれば成功。

ASUS JapanがVivoBookの新型を発表するも、EeeBookとの違いがわからない

ASUS日本法人がVivoBookの新型を3月に発売すると発表。Windows10搭載モデルのVivoBookはたぶん初めてなので「どんな物か?」GBと期待して、ニュースを読んでみると、落胆の内容。

現在、発売中のEeeBook X205TAとほとんど変わらないものだった。

そもそも、前モデルまでのVivoBookの特徴は以下の様な具合。

  • 11.6インチ / 約1.3kg
  • 1,366×768ドットのマルチタッチ液晶
  • HDD500GB
  • CPU Intel Core i3 / i5
  • メモリ4GB
  • バッテリー駆動 約5時間

といった内容で、価格は5万円台。価格にしてはなかなかいい商品だと思っている。そんなVivoBookの新型の発表なだけにどんな物を出してくるかとおもいきや、現在、量販店でも売られている格安ノートパソコンEeeBook X205TAとほぼ一緒の内容で出してきた。

 VivoBook E200HAEeeBook X205TA
OS Windows 10 Home Windows 10 Home
液晶 11.6型1,366×768ドット液晶ディスプレイ(非タッチパネル) 11.6型1,366×768ドット液晶ディスプレイ(非タッチパネル)
CPU Atom x5-Z8300 Atom Z3735F
RAM DDR3L-1600 2GB DDR3L-1333 2GB
ストレージ 32GB eMMC + microSD32GB付 32GB eMMC + microSD32GB付
バッテリー駆動時間 約12時間 約12時間
重量 980g 980g
ダークブルー/ホワイト/ゴールド ダークブルー/ホワイト/レッド

ASUSさん、もう少し違いVivoBook、EeeBook、ZenBookモデルの違いを明確にしないといけないと思います。Atom搭載の静音PCでも、RAM4GBとSSD(eMMC)64GB or 128GBのモデルがあっていいと思うんです。

 

pc.watch.impress.co.jp