みくにまるのブログ

意識低い系ブロガー、みくにまるが送るブログ。

Arch Linuxでモバイルブロードバンド(LTE)を有効化する方法

一部のノートパソコンなどで  

モバイルブロードバンドを扱いたい場合の設定。  

すでに通常の無線LANには繋がる状態であることをそうていしています。  

  

まずは必要パッケージを引っ張る  

sudo pacman -S modemmanager

サービスを有効にする

systemctl enable ModemManager

あとは再起動すれば完了。
即座に有効化したい場合には、systemctl startで起動してください。

Linux (Arch Linux) での日本語入力やキーボードレイアウトの問題の解決策を一挙に列挙、これでLinuxの日本語環境の構築の不具合は解決

Linux楽しんでいますか?
Lisuxでは通常、問題解決の時間というのは、ある意味知識が得られる楽しい時間帯でもありますよね。

しかし!!!

日本語入力関連に手間取っている時間だけは別です。

何の生産性もないだけでなく、不具合が環境特有過ぎて応用も効きにくいと、いいことなしです。

そこでArch Linuxのインストールを繰り返して溜めた日本語関連の不具合解決の知見を皆さんに共有したいと思います。

これの一覧を片っ端から試して一気に問題解決へと進めて時間を有意義に使ってください。

大原則、下流から原因を探っていく。

まず重要となるのが、原因を探る場合には下流から探っていくということです。

そう言わてもいまいちピンと来ないと思うので言い換えると
入力メソッド→デスクトップ環境設定(ローカル)→xorg,wayland設定 → グローバルのデスクトップ環境設定 → グローバルのxorg,wayland設定 → システム設定
という順番で原因を探っていきます。

このように下流から順に原因を探っていかないと 上流で試行錯誤している間に変な設定変更をしてしまい
下流で本来の問題が解決したあとで、再び上流由来の不具合が発生してしまいます。

設定の優先度の高い最下流から順番に問題がないかさぐっていきましょう。

主にどういうときに不具合が発生するのか(Arch Linuxあるある)

Arch Linuxでよくある不具合の原因は
インストールの際に横着して言語を英語にしたままでインストールしてしまうこと。

どうせUIは英語でもわかるしいいやーと余裕綽々でインストールするのですが
肝心のキーボードレイアウトが日本語なので、その部分だけ日本語化するのに後で苦労することになります。

余談ですが、Arch Linuxのインストール時に最初に実行する

loadkeys jp106  

という呪文はコンソール用なので
あとから英語設定のまま入力メソッドやらデスクトップ環境やらをインストールすると
お節介なことに丁寧にキーボードレイアウトまで英語で上書きしてくれてえらい目に逢います。

Archのインストール時に英語のまま進行する理由というのは
ホームディレクトリのフォルダ名に日本語が混ざるのが鬱陶しいからだと思いますが
面倒でも日本語にしっかりと設定してインストールしたあとでフォルダ名を変更していったほうがいいです。
キーボードレイアウトや日本語入力に手間取るほうがよっぽど面倒くさいので。

今回は、日本語入力ができない場合の解決策と
日本語キーボードレイアウトにならない場合の解決策に分けて解説します。
大半の人は日本語入力自体ができない悩みでしょうが
Arch Linuxの場合はキーボードレイアウトでつまずくことが多いのですが情報がないので後者はメモ代わりに。

入力メソッドが表示されるのにJavaアプリ上で入力が効かない場合

ブラウザなどでは文字が入力できるのに
Javaアプリ上では入力した文字が反映されない場合があります。

もしかして?:KDE

これは恐らくQT関連のパッケージや
pam_environmentファイル設定の不足が原因です。
もう一度パッケージなどを見直してみてください。

全角・半角ボタンを押してもMozcが出てこない

これは初心者が落ちるケースの場合は
入力メソッドにMozcが追加されていないのが原因です。
fcitx設定やibas設定を開いてMozcを追加しましょう。

他に、Arch Linuxを英語でインストールしてしまった
一部のパワーユーザーが陥る別パターンの問題が原因の場合もありますが
それは大半の人には該当しないと思うので後述のキーボードレイアウトに関する解決策の章で同時に説明します。

入力メソッドをインストールしたのにログイン時に有効にならない

設定ファイルの記述が必要となります。
ディストーションによっては自動で設定してくれたりしますが
一部のディストリビューションでは手動での設定が必要となります。

~/.pam_environment
LANG DEFAULT=ja_JP.UTF-8
GTK_IM_MODULE DEFAULT=fcitx5
QT_IM_MODULE  DEFAULT=fcitx5
XMODIFIERS    DEFAULT="@im=fcitx5"

上記のようなファイルを作成して再ログインしてみてください。
ログイン時に自動的に有効になります。

問題解決したいのに入力メソッドの設定画面がテキストで開いてしまって難しい

これはArch Linuxで設定用のパッケージをインストールし忘れた場合に発生する不具合です。
Arch Linuxは入力メソッドをインストールしても設定用のツールまでは自動でインストールしてくれません。

fcitx-configtool  

上記のパッケージか、自分の入力メソッドに合わせた似たようなパッケージをインストールして解決してください。

fcitxやibasをインストールしたのに日本語入力ができない

これも初心者が陥るパターン
fcitxやibasは、それ自体では日本語入力できないので
fcitx-mozcやibas-mozcをインストールしましょう。
というか素のfcitxやibasは上記のインストール時に依存関係でついてくるパッケージなので
手動でのインストールは基本的にしないものと思ってください。

他にも、キーボードレイアウトの関係で
半角、全角ボタンが無効なボタンとして割り振られている場合もあります。
その場合には下記の手順で正しい日本語キーボードに設定し直す必要があります。

キーボードレイアウトが切り替わらない

いよいよ一部の人にとっての本題です。
この問題に直面するのは、英語のままでインストール作業をした場合なので
上級者がぶち当たるケースも多いかと思います。
以下は特に初心者には配慮しない解説となっていますので
用語などがわからない方は適宜ググってください。

Step0 下準備(Arch Linuxユーザー向け)

Arch Linuxを英語設定のままでインストールしてしまった人は
場合によっては不幸なことに変更するレイアウトすら入っていなかったりします。
とりあえず下準備としてレイアウトを増やしておきましょう。

sudo pacman -S kbd  

他のディストリの人は多分この手順は不要だと思います。

step1 入力メソッドを疑おう

冒頭に書いた、下流から攻めるの鉄則で
下流の入力メソッドから疑っていきます。
直前まで日本語キーボードレイアウトだったのに
急に英語キーボードレイアウトになった場合は大抵これ。

メゾット側のキーボードレイアウト設定を開いてみてください。
ここで日本語入力には成功したけども、jp106キーボードレイアウトではない場合
キーボードの種類を選び間違えてる場合があります。

Arch Linux環境の場合は
sun_type7_jp_usb
というキーボードmodelがあると思いますが
それに設定することで、「ろ」の入力などが可能になります。(物理的なキーボードの種類によります)

sun_type7のpcしか表示されない場合など
微妙にキーの数が足りなくなる場合があります。
その場合にはキーボード項目自体を削除して、Mozcのみが表示される状態にしておいてください。
他の設定項目で直接正しいキーボードレイアウトを設定すればそちらが反映されるので
日本語の場合には実は入力メソッド側での指定というのはそもそも必要なかったりします。

ただし、キーボードを削除した場合の欠点として
Mozcなどをオンオフした際のフローティングでの切り替えのお知らせポップアップが表示されなくなります。

step2 ローカルのデスクトップ環境を疑おう

デスクトップ環境用の言語設定が原因な場合もあります。
素直に設定メニューなどから、キーボードレイアウトというDE特有の設定項目があると思いますので
そこが英語キーボードレイアウトになっていないか確認してみてください。
sun_type7_jp_usbとkana86の組み合わせが存在した場合にはそれを選択してみましょう。

他のキーボードを使う予定がない場合には、システムのデフォルトを使用という項目を選択します。
これによりシステムを正しく設定できればこの項目も正しくなるので問題が単純化されます。

step3 xorgを疑おう

下記のコマンドを入力してみてください。

setxkbmap -query  

現在のxorgのキーボード設定です。
ここがおかしな場合は、後述する00-keyboarの設定を行ってください。

ただし、繰り返しますが下流の問題を全て解決するのが先です。

step4 そもそも言語を設定しているのか (英語なら"en_US.UTF-8"と明記しているか)

これは結構盲点なのですが、何も設定してない場合には自動的にen_US.UTF-8になるわけではないので
結構英語ネイティブの人もそこ由来の不具合にハマっていたりします。

❯ locale                                                                                       
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

英語でインストールした人は
上記のように空欄の言語設定がないか確認しておくこと

エラーが出ていた場合には下記のようなコードで修正をする。

sudo localectl set-locale LC_MESSAGES=en_US.UTF-8

step5 /etc/X11/xorg.conf.d/00-keyboard.conf に変な設定を打ち込んでいないか?

Archを使っているとありがちなのですが
試行錯誤でググった対処方法を片っ端から試している間に、おかしな設定が残ったままになっている場合があります。

❯ setxkbmap -query                                                           ─╯
rules:      evdev
model:      sun_type7_jp_usb
layout:     jp,jp
variant:    sun_type7

ここが英語や怪しい他の文字列になっている場合には修正しておきましょう

step6 設定ファイルのスペルをミスっている

新規作成するタイプの設定ファイルが必要な場合
制作の際にスペルミスをしている可能性があります。
筆者がやらかした例ですと

.pam_enviroment # 誤
.pam_environment # 正

こんなパターンがありましたorz

設定ファイルをゼロから作る機会の多いArchLinuxではやりがちなミスなので気をつけましょう。

.pam_environmentの書式を間違えている

.xinitrcなどとは違って、構文中にexportの文字は必要ないので気をつけましょう。
コピペでexportを付与したまま作成していませんか?

そもそもDMが.pam_environmentに対応していない。

Arch Wikiではさも万能なようにかかれている上記設定ファイルですが
実際のところはDMによっては初期設定では読み込まないので無意味な設定となっている場合があります。

素直に.xinitrcと.xprofileに

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"

と打ち込んで再起動しましょう
(fcitx5)の部分は適宜書き換えること。

番外編

日本語入力関連のあるあるのハマりポイントもついでに解決しておきましょう。

日本語入力が即座に反映されない、毎回エンターを押す必要がある

拡張機能のon the topスタイルを有効化する

日本語入力のポップアップが常に左下に表示されてしまう

モジュールのインストールがされていないのが原因なのでインストールしましょう
(fcitx5-gtkやfcitx5-qtのこと)
Arch Linux以外の方にも似たようなパッケージがあるはずなので探してください。

日本語入力がめっちゃバグる

pam_environmentファイルでfcitx5と書くところを間違えてfcitxと書くと入力がバグるので修正しましょう。

以上です!!!!!!!!!!!

これでもうArch Linuxの日本語入力環境の整備も怖くないですね!!

Linuxで接続したBluetooth機器がログインのたびに切断されたうえにペアリングが解除される問題の対策

シンプルなので結論だけを書くと  

接続だけをしてペアリングをしていないのが原意です。  

  

マウスですとペアリングなしでも接続自体は可能なので  

ペアリングをせずに接続だけで済ませてしまっていると

再接続のたびに最初から設定し直しになるので気をつけましょう。

Linuxで"luks"を使ってホームフォルダを暗号化する方法

ホームフォルダの暗号化、してますか?

Mintなどのインスール時にチェックしたから安心?
実は既存のディストリで使われているecryptfsでの暗号化はあまりセキュリティ上よくない(ログアウトしても丸見えなまま)
パフォーマンスも最悪です。

f:id:mikunimaru:20210605075223p:plain

The Cost Of Home Directory Encryption & LUKS Full Disk Encryption On Ubuntu 18.04 - Phoronix

 

そこでluksを使ってユーザーのホームディレクトリ用の暗号化パーティションを作成して
ログイン時にマウントさせましょう。

この方法なら万が一の故障の場合でも救出が容易でパフォーマンス上もメリットがあります。

 

早速ホームディレクトリの暗号化用のパーティションを作っていく

まずは適当にパーティションを作ってください。
どうせluksでフォーマットするのでファイルシステムは何でもいいです。

今回は仮に作ったパーティション/dev/sda4とします

 

パーティションを暗号化しておく

先程作ったパーティションを暗号化します。

ディストリビューションによってはパッケージが足りない場合があるので適宜インストールしてください。

作業はほぼrootで行うため、sudo suでルート化しておきましょう。

 

暗号化しながらフォーマットします

 cryptsetup luksFormat /dev/sda4

 この際に、パスフレーズはログイン用のパスワードと同一にしてください。

 

暗号化したパーティションを開きます

cryptsetup open /dev/sda4 user

 

暗号化したパーティションをフォーマットします

mkfs.btrfs /dev/mapper/user

今回の例ではBtrfsにしていますが、ファイルシステムは自由に設定してください

 

一旦アンマウントします

umount /mnt/user

 

ここからは対象となるユーザーとは別のユーザーで実行してください

 

既存のホームフォルダを退避させます(ここでは仮にuserとします)

mv  /home/user /home/user.bk

 

新たなホームフォルダを作ります

mkdir /home/user && chown -R user:user /home/user

 

一旦、上記のホームフォルダに暗号化パーティションをマウントしておきます

mount -t btrfs -o compress=zstd /dev/mapper/user /home/user

 

 念の為フォルダの権限を再度変更します

chown -R user:user /home/user

 

バックアップしたフォルダからデータをコピーします

sudo -u user rsync -ar /home/user.bk/ /home/user/

 

ログイン時に自動的にマウントするように設定しておく(ついでにログアウト時のアンマウントも設定する)

余談ですが、Arch wikiの情報が古いのでArch wikiを参考にすると失敗しました。(執筆時点)
以下は改良済みの方法です。

 

/etc/pam.d/system-loginを編集する

auth       include    system-auth
auth       optional   pam_exec.so expose_authtok /etc/pam_cryptsetup.sh

 

/etc/pam_cryptsetup.shに以下のスクリプトを作成

#!/usr/bin/env bash

CRYPT_USER="ユーザー名"
PARTITION="/dev/sda4" # 暗号化したパーティション
NAME="home-$CRYPT_USER"

if [[ "$PAM_USER" == "$CRYPT_USER" && ! -e "/dev/mapper/$NAME" ]]; then
/usr/bin/cryptsetup open "$PARTITION" "$NAME"
fi

 

上記のスクリプトに実行権限を付与

chmod +x /etc/pam_cryptsetup.sh

 

ユーザーのidを確認します

id user


今回はユーザー名に特殊文字があると失敗するので
念の為文字が問題ないか確認してエスケープしてください。

systemd-escape -p ユーザー名


/etc/systemd/home-ユーザー名.mountにサービスを作成(今回はユーザーのidが1000としています)
[Unit]
Requires=user@1000.service
Before=user@1000.service

[Mount]
Where=/home/ユーザー名
What=/dev/mapper/home-ユーザー名
Type=btrfs
Options=defaults,relatime,compress=zstd

[Install]
RequiredBy=user@1000.service

 

サービスを有効化します

systemctl enable /etc/systemd/home-ユーザー名.mount

 

/etc/systemd/system/cryptsetup-ユーザー名.serviceに以下を作成
[Unit]
DefaultDependencies=no
BindsTo=dev-暗号化したパーティション.device
After=dev-暗号化したパーティション.device
BindsTo=dev-mapper-home\x2dユーザー名.device
Requires=home-ユーザー名.mount
Before=home-ユーザー名.mount
Conflicts=umount.target
Before=umount.target

[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStop=/usr/bin/cryptsetup close home-ユーザー名

[Install]
RequiredBy=dev-mapper-home\x2dユーザー名.device

 

サービスを有効化します

 systemctl enable cryptsetup-ユーザー名.service

 

 

あとは再起動すれば完了!!!!

Pythonで機械学習を始めるのに役に立ちそうな日本語サイト10選

これからPythonで機械学習を始めてみようという際に

役立ちそうなサイトをまとめてみます。

 

発表されたばかりの最先端の機械学習関係の論文が1行にまとめられているサイト

 

データセットのリンク集

もの凄い種類のデータセットを網羅している。

 

機械学習に役立つPythonのライブラリがワンセットになったパッケージ

使い方 Anaconda で Python 環境をインストールする

関連 TensorFlowをWindowsにインストール Python初心者でも簡単だった件

 

エンジニア特化型Q&Aサイト

Pythonでの機械学習に関連したQ&Aも多数

 

NumPyの使い方が大量に掲載されているサイト

 

サンプルコードをたくさん紹介しているページ

 

株価予想のコードを惜しみなく公開してくれているブログ記事

 

TensorFlowを使って

じゃんけんの勝ち方を学習させるコードを紹介してくれているブログ記事

 

なんとディープラーニングを将棋に応用した上に

50記事以上に渡って強化する過程を紹介してくれているブログ

 

様々な機械学習アルゴリズムの比較をサンプルコード付きで行っている記事

 

 

藤井聡太七段の真のレーティングを算出!!羽生善治七冠に匹敵していたことが判明!!

藤井聡太七段は果たしてどれくらい強いのか?

快進撃の止まらない藤井聡太七段ですが

果たしてどのくらいの強さなのでしょうか?

七段という段位が現在の実力を正確に表していない事は

名人や羽生善治竜王を撃破した実績からも明らかですが

実際にどこまで強いのかは不明です。

レーティングという基準

棋士の実力を表すのに段位以外でよく引用されるのはレーティングと呼ばれる数値です。

これは実際の勝敗から確率的に確からしい強さを数字で表すという方法なのですが

如何せん、非公式な数値なので基準はバラバラです。

一番多く引用をされる最大手の棋士のレーティング算出サイトによると

藤井聡太七段のレーティングは5位という事になっています。

 


棋士名 レート 今年度
増減
前年
同月比
個人別
推移
1 豊島将之八段 1890 11 20 推移
2 久保利明王将 1841 9 -7 推移
3 広瀬章人八段 1839 5 60 推移
4 永瀬拓矢七段 1830 -22 18 推移
5 藤井聡太七段 1821 25 121 推移

 将棋連盟 棋士別成績一覧(レーティング)より引用

 

 ところが、このレーティングという基準も

現在の藤井聡太七段の強さを表すには一つ問題があります

まだまだレーティングが収束していない

このレーティングというのはなかなか優秀な指標なのですが

藤井聡太七段の場合には、成長速度が早すぎるために

未だ数値が安定していないのです。

 

そこで実際に安定した場合の数値はいくつになるのか計算してみました。

 

今回の計算では下記の記事を参考にしています。(感謝)

連勝の止まった藤井四段の強さはどれくらいか。:suda_k0のブロマガ - ブロマガ

藤井聡太七段の安定レートを計算してみる

早速、表計算ソフトを使って

実際に藤井聡太七段の戦績を繰り返した場合に

どのくらいの数値でレーティングが安定するのかを計測してみます。

計測に利用したのは無料のオフィスソフト、LibreOfficeです。

算出方法

今回の方法は至ってシンプル。

想定した仮レートを出発点として

藤井聡太七段の全対局と同じ勝敗結果を追体験させて

最終的なレーティングが上がりも下がりもしない均衡点を求めていきます。

現在のレーティングでシミュレーション

説明をしてもピンと来ないと思いますので

早速現在の藤井聡太七段のレーティング

1821を使ってシミュレーションをしてみようと思います。

 

f:id:mikunimaru:20180605054555j:plain

 

 上記の画像のように

出発レーティングを1821とした上で

対局後のレーティングの変動数値を計算していきます

対戦相手のレーティングは大手のレーティング算出サイトから引用しました。

藤井聡太七段が対局した時点での対戦相手のレーティングを元に計算をしています。

 

レーティングが1905にまで上昇!!

早速直近の対局までの全対局でシミュレーションをしてみます。 

 

f:id:mikunimaru:20180605054654j:plain

 

・・・なんと!!

レーティングが1900を超えてしまいました!!

 出発点を1900にしてみる

どうやら現在のレーティングである1821では出発点としては低すぎたようです。

先ほどの最終レーティング付近の1900から再出発してみます。

 

f:id:mikunimaru:20180605055905j:plain

レーティング1900から再出発

まだまだ収束せず

 

f:id:mikunimaru:20180605061206j:plain

 

出発レーティングを1900に設定した二度目のシミュレーションの結果

今度はレーティング1933にまで到達してしまいました!!

 

全く収束する様子が見られません。

思い切って1950から出発!!

このまま刻んでいっても仕方がないので

思い切って1950から再出発してみます。

この1950というレーティング

名人クラスの棋士にしか到達不可能な数値です。

 

高すぎる数値を入力しておいて

徐々に下げながら均衡点を探っていく作戦をとる事にしました。

その方が効率がいいですからね。

 
早速数値を入力をしてシミュレーションを行ってみます。

1950を出発レーティングにすると

最後にはどの程度レーティングが低下するのでしょうか。

 

 

 

 

・・・

 

 

 

 

f:id:mikunimaru:20180605063215j:plain

 

 

 

!!!!?????

 

 

えっ!!?

なんと1950という名人クラスのレーティングでも

藤井聡太七段の戦績を再現するには不足しているようです

 

驚異の安定レート

最終的に数値を変えてシミュレーションをしてみたところ

レーティング1955という数値が藤井聡太七段の全戦績を元にした安定レーティングでした。

f:id:mikunimaru:20180605071145j:plain

レーティング1955でようやく安定

 

いやはや、驚異的な数値です。

 

 

直近30局での安定レートを算出してみる

今回も全戦績という公平な期間でのシミュレーションではあるのですが

もう少し最近の戦績に絞った安定レーティングを算出した場合にはどうなるのでしょうか?

 

そこで直近30局で同じように安定レーティングを算出してみることにしました。

デビュー以来の29連勝が省かれてしまうなど

先ほどの計算とは大きく条件が異なります。

 

先ほどの1955というレーティングを初期値にシミュレーションをしてみます。

 

f:id:mikunimaru:20180605073736j:plain

直近30局には大橋四段への連敗も含まれている

 

 

果たして最終的にはどのように数値が変化するのでしょうか・・・? 

 

 

f:id:mikunimaru:20180605080949j:plain

 

 

!!!!?????(二回目)



なんと、更にレーティングが上昇してしまいました!!

藤井聡太七段の直近の安定レーティングが判明!!

その後も数値を変えてシミュレーションをしてみたところ

最終的な安定レーティングの算出に成功しました。

 

f:id:mikunimaru:20180605082825j:plain

 

 その安定レーティングは驚異の1995!!

 

これは伝説の羽生善治七冠の当時のレーティングに迫る数値です。

他の棋士はどうなのか?

今回のシミュレーションを他の棋士に適用してみるとどうなるのでしょうか?

そもそも検証方法がおかしいのでは?という疑問は誰もが抱くと思います。

私自身気になったので他のトップ棋士でも同様のシミュレーションを行ってみました

シミュレーション対象は直近30局です。

豊島将之八段

f:id:mikunimaru:20180605091017j:plain

 

現在R1890 → 安定R1891

誤差は僅かに+1です。

久保利明王将

f:id:mikunimaru:20180605140516j:plain

 

現在R1841 → 安定R1838

誤差は-3

菅井竜也王位

f:id:mikunimaru:20180605092228j:plain

 

現在R1816 → 安定R1811

誤差は-5

羽生善治竜王

f:id:mikunimaru:20180605093401j:plain

 

現在R1815 → 安定R1825

誤差は+10

 

想像以上に現在のレーティングに近い数値で安定しています。

結論

デビューしたばかりの新人棋士ではありますが

既に史上最強クラスの棋力を保有しているというのがシミュレーションの結果でした。

 

藤井聡太七段の快進撃を誰にも止められなくなる日は近いのかもしれません。

追記:石田直裕 五段との対局後の30局安定レーティング

6月5日に石田直裕 五段との対局が行われ

藤井聡太七段が勝利しました。

これによって直近30局に大橋四段への敗戦が1局弾かれるため

安定レーティングも大きく揺れる事になりました。

 

f:id:mikunimaru:20180605210319j:plain

 

・・・このデータをどう解釈するかはあなた次第です。

サイトのオンライン速度計測サービスまとめ。自分のブログの表示速度も計測してみた

Webページ速度計測は様々ですが

実際に定番と言われるサービスは3種類です。

今回はこの3種類のサービスを紹介します。

 

このサイトのトップページのスコアも掲載しておきますので

体感と結果の比較用に参考にしてみて下さい。

gmetrix

ど定番のサイト

http://gtmetrix.com/

f:id:mikunimaru:20180530095639g:plain

google PageSpeed Insights

 ここも定番サイト

googleのサービスなのでSEOで考えるとある意味公式結果とも言えそう。

圧縮済みのcssファイルやjavascriptファイルも受け取ることが出来る。

個人的には甘めに評価される印象を受けるのであまり参考にはしていない。

https://developers.google.com/speed/pagespeed/insights/

f:id:mikunimaru:20180601122230g:plain

 google Testmysite

モバイル向けの計測サイト

低速の3G回線でアクセスした時の表示速度を計測してくれる。

https://testmysite.withgoogle.com/intl/ja-jp

f:id:mikunimaru:20180601124753g:plain

同種サイトとの相対的な表示速度の立ち位置も教えてくれる

Web担当者Forum版 ページ速度分析ツール

ブックマークレット形式で

実際にブラウザが実際にサイト表示にかかった内部データを表示してくれる。

動作がサックサクなので手軽な計測がしたいときにはかなり便利。

https://webtan.impress.co.jp/e/2013/01/29/14562

f:id:mikunimaru:20180601125655g:plain

 

以上です!!

4種類になってしまいましたが

自身のサイトの高速化に是非ともご活用ください。

はてなブログを最速に仕上げる史上最強の高速化カスタマイズ設定!!

f:id:mikunimaru:20180530095639g:plain

読み込み3.2秒!!

 

f:id:mikunimaru:20180530100617g:plain

googleタグマネージャー有効!!

jqueryも有効!!

 

f:id:mikunimaru:20180530102341g:plain

記事数表示は最大値である15記事!!

 

実用性 + 爆速 = 最強

シンプルな図式です。

 

元々の設定を高速化していまえば

記事の中で多少の文字色の変更や文字サイズの変更をしたところで

高速な描画は維持できます。

 

記事内での高速化は頑張らなくてもいいんです!!

 

サクッと高速化をして自由な執筆活動に勤しみましょう!!

 

早速設定方法を紹介

設定は大きく分けて

一般的な設定編黒魔術編に分かれます。

細かい説明は省いて先に進めます。

一般的な設定編

いわゆる有名どころの高速化設定です。
解説記事は豊富ですし

このページを訪れる方なら既に適用済みの事も多いでしょうから簡潔に箇条書きします。

 はてなスターの無効化

重いので外します。

はてブコメントの無効化

はてなブックマークのコメント表示は

かなり重くなるので高速化をするなら無効化必須。

jQueryの取得先を統一

jQueryを使っているなら必須ですね。

 

参考記事

はてなブログでjQueryの読み込み時間をゼロにする方法(はてなブログの高速化) – naenote.net

有料プラン向けの高速化設定

  • キーワードリンクの無効化(pro)
  • 公式の広告を非表示(pro)
  • ヘッダとフッタを非表示(pro)

これらも全て行っておきます。

更にスピードを突き詰めるなら

  • コメント欄の無効化

コメント欄そのものが重い上に

コメントされると更に重くなります、撤去しましょう。

  • プロフィールの非表示

検索から流入してきた人にとって

これを表示させる為の遅延は無駄なので排除します。

 

 

意外としなくてもいい高速化設定

全ての高速化設定が効果的という訳ではありません

筆者の試してみた中で特にそこまでする必要はないかなという設定もあります。

標準ソーシャルボタンの完全無効化

Twitterのみ有効にしていますが

付属のソーシャルボタンで特に問題は感じていません。

結構軽くていい感じです。

パンくずリストの無効化

これもオフにして計測したところ誤差の範疇でした。

パンくずリストは実際にクリックされる事は滅多にないので無効化しても構わないのですが

google検索の結果に良い影響を与えるという説もあるので有効のままにしてあります。

黒魔術編

 いよいよ黒魔術編です。

CSSファイルの圧縮&インライン化

まずは自分のサイトのトップページから

ページのソースコードを表示してcssファイルの中身を取得します。

f:id:mikunimaru:20180531171055g:plain

 ※必ずバックアップを取ってください

 

 取得したccsの中身を下記のサイトで圧縮します

CSS Minifier

f:id:mikunimaru:20180531171427g:plain

理解不能な文字列に変換されたcss


ここから先は、テーマにレスポンシブデザインを採用しているかどうかで

対応が分かれます。

 レスポンシブデザインを採用している場合

先ほど圧縮したたcss文字列をコピーして
<style>

(文字列)

</style>

という形式でheadに貼り付けます

f:id:mikunimaru:20180531175631g:plain

 

こうする事でスタイルやデザインcssの情報は

圧縮された状態で全てhead内に記述されました。

従来のデザインcssは不要なので削除します。

この時に/* Responsive:yes */という文字列を残しておいて下さい。

f:id:mikunimaru:20180601115401g:plain

 

これでレスポンシブデザインを維持した状態で

cssの圧縮が可能となります。

ただし、記事の執筆時と

はてなブログ側の設定が変わっている可能性もあるので

しっかり適用されているかの確認を忘れないようにしてください。

レスポンシブデザインを採用していない場合

レスポンシブデザインを採用していない場合には

headに貼り付けるとスマホ用のページでも無駄にcssを読み込んでしまうので

proの場合にはPCデザインのタイトル下に貼り付けたうえで

「スマートフォン用にHTMLを設定する」にチェックを入れましょう。

 

無料アカウントの場合にはデザインcssに圧縮したcssを貼り付けます。

 

 

f:id:mikunimaru:20180531180338g:plain


proの場合、デザインcssの欄はこのようになる。

そもそもjpeg画像を使わない

実は編集で事前に色を落とした場合には

圧縮率を高めたjpg形式よりもgif形式の方が画像のサイズが落ちる場合があります。

特に元々色の少ないPC画面のスクショ画像の場合には違いが出やすいので

選択肢の一つとして貼り付け前にサイズを比較してみましょう。

遅いスクリプトを先に読み込む

ベンチマークを取っていると

時々https://platform.twitter.com/widgets.jsがボトルネックになっている事が判明しました。

効果は不明(というか効果はない)ですが速度アップへの祈祷の意味を込めてこれもheadに持っていきます。

f:id:mikunimaru:20180531192158g:plain

(この項目はプラセボ効果しか無いのでマネしなくていいです)

 

まあこんな所ですかね。

cssのインライン化はベンチマークよりも体感速度に対する影響が大きい印象です。

皆さんも様々な方法を駆使してブログをサクサクに仕上げてみて下さい。

f:id:mikunimaru:20180601122230g:plain

おまけ:他のサービスでも当然good評価(タグマネージャー、jQueryは共に有効)

 

WindowsのMSYS2 / MinGWでclang / LLVMをビルドする

clangをコンパイルする記事が少なかったので苦労しましたが

何とか成功。割と簡単だったのでメモ代わりという感じで

参考 

Getting Started with the LLVM System — LLVM 7 documentation

 Checkout LLVM:

cd where-you-want-llvm-to-live
git clone https://github.com/llvm-mirror/llvm.git


Checkout Clang:

cd where-you-want-llvm-to-live
cd llvm/tools
git clone https://github.com/llvm-mirror/clang.git
Checkout Extra Clang Tools [Optional]:

cd where-you-want-llvm-to-live
cd llvm/tools/clang/tools
git clone https://github.com/llvm-mirror/clang-tools-extra.git extra
Checkout LLD linker [Optional]:

cd where-you-want-llvm-to-live
cd llvm/tools
git clone https://github.com/llvm-mirror/lld.git lld
Checkout Polly Loop Optimizer [Optional]: // これを含めるとコンパイルエラー

cd where-you-want-llvm-to-live
cd llvm/tools
git clone https://github.com/llvm-mirror/polly.git polly
Checkout Compiler-RT (required to build the sanitizers) [Optional]: // これを含めるとコンパイルエラーになった

cd where-you-want-llvm-to-live
cd llvm/projects
git clone https://github.com/llvm-mirror/compiler-rt.git compiler-rt
Checkout Libomp (required for OpenMP support) [Optional]:

cd where-you-want-llvm-to-live
cd llvm/projects
git clone https://github.com/llvm-mirror/openmp.git openmp
Checkout libcxx and libcxxabi [Optional]: // これを含めるとコンパイルエラーになった

cd where-you-want-llvm-to-live
cd llvm/projects
git clone https://github.com/llvm-mirror/libcxx.git libcxx
git clone https://github.com/llvm-mirror/libcxxabi.git libcxxabi
Get the Test Suite Source Code [Optional]

cd where-you-want-llvm-to-live
cd llvm/projects
git clone https://github.com/llvm-mirror/test-suite.git test-suite

あとはコンパイルしたいフォルダに移行して

 cmake -G "MSYS Makefiles" -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=X86  ~/llvm※先ほどのソースをダウンロードしたフォルダ

 上記のように打ち込めばMakefileが作成されるので

makeすれば出来上がりです。

藤井聡太七段のレーティングが分かるサイトを紹介 対局予定日の一覧も

最年少棋士の藤井聡太七段ですが

中学生ではなくなった今となってもその人気と実力は引き続き上昇中。

今回は藤井聡太七段の強さを知る為の指標の一つであるレーティングの分かるサイトをいくつか紹介します。

 

 

 対局日程も分かるレーティングサイト [将棋 棋士別成績一覧]

 藤井聡太七段のレーティング&対局日程のページ

http://kishi.a.la9.jp/2018R/1307.html

 

藤井聡太七段のレーティングの推移ページ

http://kishi.a.la9.jp/rankingP/1307.html

 

よくレーティングを比較する際に

一番引用をされることが多いのがこの棋士別成績一覧というサイトです。

レーティングだけではなく棋士の今後の対局日程もひとめで分かるようになっており

迅速な更新が特徴です、藤井聡太七段の将棋に至っては対局日に更新される日も。

棋士の採用した戦型も分かるサイト [将棋棋士レーティングランキング]

藤井聡太七段の戦型とレーティングの推移ページ

http://shogidata.info/personal/fujiisota.html

 

今度は棋士の戦型も分かるレーティングサイトです

藤井聡太七段だけではなく、対戦相手の棋士が一体どんな戦法を得意としているのかを調べる際に便利です。

 

このサイトは大型新人が現れた時のことを想定して

デビュー初期にはレーティングの変動が激しくなるように計算されています。

f:id:mikunimaru:20180529082127g:plain

15歳にして全棋士でランク2位につける藤井聡太七段

 

 

用途に分けて是非とも使い分けて

藤井聡太七段の将棋の観戦を更に楽しんでもらえると幸いです。

 

関連記事

藤井聡太七段の真のレーティングを算出!!羽生善治七冠に匹敵していたことが判明!!

 


将棋世界 2018年7月号

MSYS2/MinGW-w64 のclangで "omp.h" file not found と言われた時の対処法

結論から言うとMinGWのLLVM5.0.1には一部のファイルが足りないので

Windows用のLLVMインストーラーからそれらを引っ張ってくれば動きます。

 

1.LLVM5.0.2をダウンロード

LLVM6.0.0のインストーラーにはOpenMP用のDLLが同梱されていないので

LLVM5.0.2から引っ張って来ます

LLVM Download Page

上記のサイトのLLVM-5.0.2-win64.exeをダウンロードして下さい。

 

2.中身を開く

今回はDLL等が欲しいだけなのでわざわざインストールする必要はありません。

(MinGW64には既にclangが入っている事を前提に話を進めます)

解凍ソフトなどでインストーラーを解凍しておきましょう。

 

3.Mingw64側に中身をぶち込む

ここからはガンガン足りないファイルをぶち込んでいきます。

基本的には上書きはしないでください

あくまで足りないファイルを補うだけなので、変な挙動のリスクを負う必要はありません。

作業1

LLVM-5.0.2-win64.exe\lib\clang\5.0.2\include

中身をごっそり移行omp.h」も上記のフォルダに含まれている

mingw64\lib\clang\5.0.1\include

作業2

LLVM-5.0.2-win64.exe\bin

libomp.dll、libomp5md.dllを移行

mingw64\bin

作業3 ※重要

LLVM-5.0.2-win64.exe\lib

↓libomp.libをlibomp.aにリネームして移行

mingw64\lib

 

以上です!!

作業3とか普通に考えてかる訳がない(笑)

とりあえずはこれでコンパイルには成功するはずです。

WSL(Windows Subsystem for Linux)の使い方まとめ

リポジトリのサーバーをjaistに変更

 

WSL上で

sudo sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list

参考

apt-getの利用リポジトリを日本サーバーに変更する

Windows上のフォルダに移動する

/mnt/c/ がWindowsのcドライブになっているので

bash上でそこに移動すればWindows上のフォルダに入る事が出来ます

cd /mnt/c/

Windows上のフォルダをLinux上に同期させる(シンボリックリンク)

ln -s /mnt/c/(リンクさせたいWindow上のフォルダのパス) (作成するフォルダ名)

 

追記予定

 

将棋ソフト、クジラちゃん(godwhale_child)のダウンロードと設定方法

6第28回世界コンピュータ将棋選手権も終了し

有力ソフトが続々と公開されました。

 

公開されているソフトの検証が進むにつれて

一般の将棋ファンが利用する上での最強ソフトも徐々に明らかになっています。

 

ズバリ「godwhale_child探索部 + qzlila9評価関数」の組み合わせです。

 

※最強ソフトの座は「NNUE」に移りました。

 早速別ページで紹介をしています。

2018年最強ソフト NNUE (TNK (たぬき))のダウンロードと使い方 - みくにまるのブログ

なにそれ

godwhaleとは今回のコンピュータ将棋選手権で6位に入賞した

大合神クジラちゃんというソフトです。

コンピュータ将棋選手権は様々なスペックのPCで争われる上に

定跡による強さの底上げなどもあるため、順位の高いソフトが必ずしも検討でも最強とは限りません。

公開された様々なソフトを比較検証して初めて検討向きのソフトが判明するのです。

 

godwhaleはその検証の結果

2017年の最強ソフトだったaperypaqをも上回る強さであることが明らかになりました。

f:id:mikunimaru:20180530005908g:plain

導入方法

クジラちゃんは探索部と評価関数に分かれているので

別々にダウンロードしてインストールをする必要があります。

将棋ソフトに慣れていない人にはかなり難解な作業です。

そこでまとめてダウンロード可能なページを用意しました。

https://www.axfc.net/u/3908980

上記のリンクからダウンロードが可能となっています。

(元々のファイルのリンクはこちらです→評価関数 探索部) 

1.展開

ファイルのダウンロードが終わったら

ダウンロードしたファイルを展開します。

右クリックをして「すべて展開」を選択しましょう。

展開が終わったファイルは好きな場所においてください。

2.エンジン登録

ShogiGUIを開き、エンジン設定をクリックします。

f:id:mikunimaru:20180223010544j:plain

 

エンジン設定の画面が出てくるので「追加」をクリック

 先ほど展開をしたフォルダの中から

「godwhale_child-tournament」を選択してください。

古いPCを使っている場合には動作しない可能性がありますが

その場合には「godwhale_child-tournament-sse42」の方を選択してください。

3.設定

初期設定のままですと

読み筋が途切れるなど、やや検討向きではない部分があります。

おすすめの設定を載せておくので活用してください。

f:id:mikunimaru:20180223011544j:plain

画像ではyaneuraouになっていますが肝の部分の設定項目は共通です


ポイントはConsiderationModeです。

ここをonにしないと、検討をしていても読み筋が表示されない場合が多くなってしまいます。

Hashの数値も、少ない状態ですと検討の際に読み筋が途切れる事があるので適宜調整してください。

 

以上で設定は終了です。

 

その他詳しい使い方は

ShogiGUIの公式サイトをご覧ください。

Linux版のVivaldiやOperaで動画が見られない(H.264/MP4)時の対策(Ubuntu/Debian編)

最強ブラウザのVivaldiですが

Linux環境で利用をすると、そのままではTwitter等の動画が再生できないという問題があります。

Twitter等の動画が見られない、再生出来ない、というのは不便なので解決方法を紹介します。

 

まずはH.264/MP4の動画が閲覧出来ない事をチェック

http://www.quirksmode.org/html5/tests/video.html

このページの中のH.264/MP4が閲覧出来ないのならこの方法で対処します

 

1.chromium用のコーデックを取り出す。

http://security.ubuntu.com/ubuntu/pool/universe/c/chromium-browser/

上記のページから

chromium-codecs-ffmpeg-extra_xxxxxxxxx-0ubuntu1_amd64.deb

というファイルをクリックしてダウロードします

「xxxxxxxxx」の部分はその時の最新版の数値なので一番大きいものを選んで下さい。

 

2.解凍してlibffmpeg.soを取り出す

アーカイブマネージャーで

先程ダウンロードしたファイルを解凍し

中からlibffmpeg.soというファイルを取り出します。

 

3.Vivaldi・Operaにインストール

libffmpeg.soを取り出したら

その場で端末を開き

Vivaldi

 sudo install libffmpeg.so /opt/vivaldi/lib/libffmpeg.so

 Vivaldi開発版

sudo install libffmpeg.so /opt/vivaldi-snapshot/lib/libffmpeg.so 

 Opera開発版

 sudo install libffmpeg.so /usr/lib/x86_64-linux-gnu/opera-developer/lib_extra/libffmpeg.so

 それぞれ自分の利用しているブラウザに合ったコマンドを利用してインストールしましょう。

4.実際に閲覧出来るかチェック

再びテスト用のページを開きましょう

HTML5 tests - video

H.264/MP4の動画が再生できていれば成功です。

失敗する場合にはコーデックではなく別の原因があるかもしれません。

 

以上です!!

この記事がVivaldiユーザーの方のお役に立てれば幸いです。