ASUS ZenScreen MB16AC

私のPC環境は会社でも自宅でもマルチモニター環境です。
理由は単純、作業効率が上がるからです。

ノートPC用にもGeChic モバイルモニタ On-Lap 1101Pというモバイルモニターを持ってました。
「11インチと小さく持ち運びがしやすそう」というのが理由で購入しましたが、実際にノートPCと一緒に持ち歩くことは殆どありませんでした。
モバイルなので小さければいいと思ってましたが、11インチでフルHDは流石に小さくて字が読めない!
結果拡大して使うと見える範囲は狭くなるわけです。

あと、HDMIと電源の2本のケーブルを接続しなければならないのも微妙に面倒でした。
ちなみにノートPCをHP Spectre 13に買い替えたことにより、HDMI出力すら変換しないと繋ぐことができなくなりました。

ということでOn-Lap 1101Pを売り払いASUS ZenScreen MB16ACに買い換えました。

ASUS ZenScreen MB16AC
ASUS ZenScreen MB16AC

液晶のサイズが15.6インチになりかなり大きくなりましたが、ベゼルが狭いので思ってたよりは大きくなかったです。
(それでも小さいとは思えませんが…)

最大の特徴はUSB-TypeCのケーブル1本でPCとの接続が完了するところです。
映像出力も電源もこれ1本でOKです。

下の画面は標準設定で画面を表示してます。
Spectre13と結構色味が違います。
ASUS ZenScreen MB16AC

下の写真はシーンモードで画面を表示してます。
写真で見ると上の写真とあまり違いないように見えますが、実際に見るとSpectre13の色味にかなり近付きました。

ASUS ZenScreen MB16AC

電球色のライトの下だからかと思い、LEDライトの下でも写真を撮ってみましたが、はやり写真だと違いが分かりませんね…

ASUS ZenScreen MB16AC

Spectre13が13.3インチなので横に並べるとMB16ACの方が少し大きいです。
本当は同じサイズだともっと使いやすいのかもしれませんが、しっかりしたメーカーでTypeC接続で13インチのものがないので、今のところはI-O DATAのLCD-MF161XPか、MB16ACになるのではないかと思います。
(LCD-MF161XPはHDMIの端子も搭載してますが、ベゼルが広めなので画面サイズが同じでも全体は少し大きです)

ASUS ZenScreen MB16AC

ASUS DisplayWidgetというユーティリティを入れると、下の写真のように縦置きにするだけで自動的に表示も縦表示に変わります。
(細かい設定もモニターのボタンでやるよりユーティリティを介して行った方が断然楽です)

ASUS ZenScreen MB16AC

これなら持ち出す機会も増えそうです。
買い換えて正解でした。

\楽天ポイント4倍セール!/
楽天市場

HP Spectre 13の充電について

ノートPCをTransBook 3からHP Spectre 13に買い替えたわけですが、充電器が結構大きい…
そこでTransBook 3の時に使ってた充電器とモバイルバッテリーが使えるかどうか検証しました。
どちらもUSB-TypeC PDを採用しており規格的には問題ないはずですが、PDは規約違反の製品が多く、それが相性という形で表れてちゃんと動かないことがあります。

検証方法は以前記事にしたASUS TransBook 3 T303UAの充電についてと同じくPlugable USB-C 電圧・電流チェッカーを使いました。

検証したのはマイクロソリューションUSB-C USB PD:Power Delivery Specification Portable Power Supply 60WRAVPower USB-C 26800mAh モバイルバッテリー PD対応の2つです。
マイクロソリューションの方は個人的にはいい製品だと思いますが、今は既に販売をやめたようです…

計測中の写真は撮り忘れたのでありませんが、結果だけを書きますと両方とも正常に充電することができました。
RAVPowerのモバイルバッテリーはPCを起動状態でも充電OKでした。
なお、マイクロソリューションのアダプターはしっかり60Wで充電できました。

ちなみに最近のHPのノートPCでは、純正以外のアダプターを使用すると「製品に付属のHP製電源アダプターを使用することをおすすめします。」と警告メッセージが出ます。
充電しようとすると毎回でます。
非常にうざいので何か方法がないか調べたらHPのコミュニティにありました。
USB-C Charging for HP Spectre x360 – 15-ch004na
(rename “C:\Program Files (x86)\HP\HP System Event\USBCMSG.exe” to “C:\Program Files (x86)\HP\HP System Event\USBCMSG_bak.exe”)と書いてあります。

C:\Program Files (x86)\HP\HP System Event\USBCMSG.exe

このプログラムがメッセージを出しているようで、ファイル名をUSBCMSG_bak.exeにリネームすればいいそうです。
(USBCMSG_bak.exeでなくても変わればファイル名はなんでもいいです)

実際にリネームして試したところ、メッセージも表示されなくなり快適に充電ができてます。

モバイルPCをASUS TransBook 3 T303UAからHP Spectre 13へ買い替え

先日までノートPCはASUS TransBook 3 T303UAを使用していました。

正確にはノートPCではなく2-in-1モデルでキーボードを外すことができ、タブレットとしても利用することができます。
便利かなと思って2-in-1スタイルを選択してみましたが、私のモバイルPCの使い方だと全くタブレット運用がありませんでした。
逆に膝の上に置いて作業ができないなど、普通のノートPCの方が使いやすいと感じることも多々。

あと、3kのモニターも私の使い方だと正直なところ不必要でした。
12.6インチのモニターに3kで表示できても文字が小さすぎて読めません…
結果Windowsの拡大機能を使って拡大するわけで、多少は文字のジャギーが目立たないとかはあるかもしれませんが、プログラムによっては正しく拡大表示されなかったりとデメリットもあるので、小型のモニターではFullHDで十分だと感じます。
(高画質の動画を再生するような使い方だと3kを生かせるのかもしれません)

ダラダラと書きましたが、要は「私の使い方にTransBook3はマッチしていない」ということです。

更にモバイルCPUも時代は第8世代に突入し、今まで2CORE2スレッドだったのが4CORE8スレッドになり、大幅に処理能力が上がりました。
TransBook3は第6世代のCore i5で当時としては非力ではありませんでしたが、プログラムのコンパイルなども行う私にとっては多少イライラするスペックでした。
(ノートPCだから…という諦めでなんとか我慢してました)
第7世代までは多少の世代差は気になりませんでしたが、第7世代と第8世代では超えられない壁があります。

ということで、前から気になってたHPのノートPCに買い替えることにしました。
最初はSpectre x360が第一候補でした。
見た目の美しさ、そして360度キーボードを開くことでタブレットのように使うこともできる!

ん?待てよ
タブレット的な使い方は必要なかったんじゃ?
スタイラスペンなんてSurfaceペンまで買い増ししたのにTransBook3で使ったことあったか?
などと自問自答した結果、同じSpectreシリーズでスタイラスペン非対応になって360度回転をなくすかわりに、より軽く・より薄くしたSpectre 13が候補に上がり、最終的にSpectre 13を買うことにしました。
Spectre 13も非常に美しい見た目をしています。

HP Spectre 13

セラミックホワイトのパフォーマンスモデル
インテル® Core™ i7-8550U
16GB メモリ
NVMe M.2接続の512GB SSD
顔認証対応(Transbook3も顔認証対応で非常に便利でした)

この薄さで4CORE8スレッドです。

実際に使用してもTransbook3の時のようなもっさり感がほとんどありません。
プログラムのコンパイル中も他の作業ができる快適さです。
もちろんコンパイルも断然早いです。
ここまで来ると少し前のデスクトップの性能ですね…

はっきり言って買い替えて正解でした。
ノートPCにある程度のスペックを求める人は、絶対に第8世代以降のものを購入してください。
そこには完全に超えられない壁が存在します。

Spectre 13に一つだけ難点があるとすれば、外部接続用の端子がUSB-TypeCのみということでしょうか。
たたUSB-TypeCを3つ搭載していますので、変換アダプターを使えば特に難点とは言えないかもしれません。
これからはUSB-TypeCが主流になっていくでしょうし、過去の遺産を気にしなければ、逆に割り切っててスッキリしてます。

HP Spectre 13お勧めです。

PHP7.0からPHP7.2に変更したらSyntax Highlighter ComPressでエラー発生

PHPの最新化のためにPHP7.0からPHP7.2へ変更しました。
7.2にするとプラグインでエラーが出るという話がありましたが、利用しているプラグインであるSyntax Highlighter ComPressで以下のエラーが発生しました。

Deprecated: Function create_function() is deprecated in /wp-content/plugins/syntax-highlighter-compress/syntax-highlighter-compress.php on line 418

調べてみるとPHP7.2ではcreate_function()という関数が使えなくなっているようです。
早速エラーが出ている個所を修正します。

変更前

/**
 * Actions
 */
add_action('plugins_loaded', create_function( '', 'global $wp_shc; $wp_shc = new wp_shc();' ) );

変更後

/**
 * Actions
 */
add_action('plugins_loaded', function() {global $wp_shc; $wp_shc = new wp_shc();} );

これでエラーはでなくなりました。

カテゴリー別全投稿タイトル一覧の固定ページを追加

全記事のタイトルを見ることができるサイトマップみたいなものが欲しかったのですが、単にタイトルを全部並べただけでは非常に見難い。
希望を満たせるものがないか少し探してみましたが、作った方が早いんじゃないかと思い作りました。
今回はタグではなくカテゴリーを使った投稿タイトル一覧にしました。

動きとしては、まず親カテゴリーを取得し、親カテゴリーに属している投稿のタイトル一覧を作成します。
但し親カテゴリーの子カテゴリーに属していた場合は一覧に含みません。
更に親カテゴリの下には属する子カテゴリを表示し、その子カテゴリに属する投稿のタイトル一覧を作成します。
(今回は対象の子カテゴリーは親カテゴリーの1階層下までとしました)
文章で書くと分かりにくいですが、私の固定ページを見て頂ければ直ぐに分かるかと思います。
コンテンツ一覧

まずwp-content/themes/all_contents.phpというファイルを作成して以下の内容を記述して保存します。

	.all_contents_sub_category {
		padding-left: 1em;
	}

<?php
// 親カテゴリーを取得
$top_categories = get_categories(array('parent' => 0, 'orderby' => 'term_order'));
// 親カテゴリー分ループ
foreach($top_categories as $top_category) :
	// 親カテゴリーのリンク作成 ?>
	<?php endforeach; ?>
<?php endforeach; ?>

これだけでは固定ページから呼び出せませんので、テーマのfunction.phpに以下の内容を追記します。

/*
* コンテンツ一覧のphpファイルを読み込むショートコード
*/
function include_all_contents_php( $atts ){
	ob_start();
	get_template_part('../all_contents'); // ../all_contents.phpを読みこみ
	return ob_get_clean();
}
add_shortcode( 'include_all_contents', 'include_all_contents_php' );

これはショートコードと呼ばれる方法で、PHPを投稿や固定ページから呼び出せるようにするものです。
投稿や固定ページには基本的にPHPを記述することはできませんが、このショートコードを利用することで簡単に呼び出せるようになります。

あとは固定ページで[include_all_contents]と書けば呼び出せます。
※そのまま書いてしまうと呼び出されてしまうため、上では[]を全角文字で書いてますので半角に置き換えてください。

尚、「Category Order and Taxonomy Terms Order」プラグインを使用してカテゴリーを並び替えている場合は、その並び替えた順番でカテゴリーが生成されます。

ブログのURLを変更した場合のリダイレクト処理

ブログのアプリをblognplusからWordPressに変更した際にURLもhttps://hiro7216.mydns.jp/blognplusからhttps://hiro7216.mydns.jp/blogへと変更しました。
当然ながらGoogleやYahooなどの検索エンジンでは以前のURLが表示されますし、ブックマークなどでURL指定でお越しになられる方も以前のURLでのアクセスになります。
URLの変更はこちらの都合なので、以前のURLでアクセスしても可能な限り目的のページを表示できるようにしました。

今回はblognplus/index.php?e=xxxxをblog/?p=xxxxにするケースと
blognplus/xxxxをblog/xxxxにするケースの2種類だけの対応となります。

使用するのはApacheのRewriteEngineです。
サーバーが対応していない場合は使えませんので、その点だけは注意が必要です。
またApacheではなくnginxでもこの方法は使用できません。
nginxの場合は書き方を少し変えてnginx.confに記載する必要があります。

最初に結論から書きます。
設置してるwebのトップに.htaccessを置いて以下の内容を記述します。
(blognplusの部分は以前のURL、blogの部分は新しいURLとなります)

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{QUERY_STRING} e=(.+)
    RewriteRule ^blognplus/(.*)$ /blog/?p=%1 [R=301,L]
    RewriteRule ^blognplus/(.*)$ /blog/$1 [R=301,L]
</IfModule>

RewriteEngineを細かく説明すると色々と難しいので簡単な説明にします。

まず1行目の<IfModule mod_rewrite.c>ですが、これはRewriteEngineモジュールが使用できる場合という意味です。
RewriteEngineモジュールが使用不可の場合は今回の設定は全て無視されます。
2行目はRewriteEngineを使用する、です。

3行目と4行目は関連しています。
3行目はクエリ文字列(URLの?の後ろに付く文字列です)がe=xxxxになってた場合に変数に保存します。
(xxxxの部分は任意の文字列です)
4行目はURLがblognplus/~~~~だった場合に/blog/?p=%1にリダイレクトします。
%1の部分は3行目で保存していたxxxxの部分に置き換えられます。

5行目はblognplus/xxxxにアクセスがあった場合に/blog/xxxxにリダイレクトします。
($1がxxxxに置き換えられるだけです)

[R=301,L]の部分のR=301はリダイレクトなので、消して[L]だけにするとリダイレクトせずに昔のURLのまま、新しいURLの内容が表示されます。
Lの部分は条件に一致したらその次のルールは使わずに終了という意味です。

RewriteEngineを上手に使うとドメインを転送することもできますし、もっと細かくURLを変換することも可能です。
Webを扱う人は覚えておくと色々便利に使えます。