なんか書いていこうぜー.com

Let's write something good

Kanazawa.rb #96 に参加した

2020-08-23
  • Share on Facebook
  • Tweet
  • Add to Pocket

LT 大会ということで 2 本準備して発表した。

一本目は、ActiveRecord インスタンスのメモリ使用量について。 二本目は、最近思いつきではじめた自作 PC の話をした。

自作 PC はまだ全然落ち着いてなくて、配線の見直しや空気の流れ、ファンの音等気になるところはいろいろあって、気になったところには何かしら手を入れている。場所をとらない程度に小さな散財が続いている。

懇親会だか本編だったか覚えていないが、Udemy への言及があり、みたらなんか安かったので安いものの中から興味ありそうなものをいくつか購入した。

トータルでみると結構長いので、倍速で聴いてる。さらっと知らないことが語られていることがあるので聴かざるをえないけど、合わない動画が厳しい(けど、知らないこと語ってるので頑張って聴いてる。)

初めて PC を組み立てた その後

2020-07-30
  • Share on Facebook
  • Tweet
  • Add to Pocket

初めて PC を組み立てた で今後の課題を書いたが、対応してみたので、その後を書く。

1. ディスプレイとキーボードをどう共有するか

電源不要の HDMI 切替機 https://www.amazon.co.jp/gp/product/B07LFRVQR2/ を、それぞれのディスプレイに接続した HDMI ケーブルに接続し、分岐させて、ボタン押して切り替えている。

ディスプレイ毎に切替機の色を変えて、それとなくわかりやすくしている。1 個がそれほど高くないので、ダメで元々できたらいいやくらいでやったらうまく動いたので、これでいった。

既存の切替器自体を接続数の多いものに置き換える、でもよかったけど、相性問題で苦労したくなかったので、安く済ませてしまった。

キーボードは USB ハブのケーブルが元々長かったので、単純に “挿し替える” で解決するようにした。

2. バックアップ用 HDD の設定

外付けだと、手元の裸族のお立ち台を使うことになるのだが、ケースの上に置くとちょっと高さが出てしまうのでケース内に設置することにした。

ケースに 3.5 インチ HDD 用のマウンタが用意されていたので、3.5 インチ HDD と SATA ケーブルを追加で買って電源ケーブルをかき分けてがんばってケース内に設置した。

ディスクをフォーマットして、timeshift と cronie を導入し、/home に対して定期バックアップを設定した。/home はパーティションわけずに、壊れたらバックアップから戻すスタイルにしている。

3. HDMI を DisplayPort に変換して接続する

ケーブルのない変換口だけのもの https://www.amazon.co.jp/gp/product/B01M1KJ7UP/ を買って、背面のグラボにある DisplayPort に挿してその口に HDMI ケーブルを挿す。切替は 1 でも使っている切替器を利用している。

無事に解像度が落ちることもなく接続できているので、これでいく。以前変換できないものがあったので、あまり期待してなかったが、無駄にならなくてよかった。

グラボのファン

ディスプレイを 2 つ接続したらグラボのファンが回りました。グラボのファンがもしかしたら一番音が大きいかも。直径が一番小さいので仕方ない。

グラボはチップセットにしか注目してなかったため、メーカーごとの特徴についてはノーチェックだった。メーカーでどれくらい変わるのか試したい気持ちがあるが、グラボは高いねん。。。

初めて PC を組み立てた

2020-07-26
  • Share on Facebook
  • Tweet
  • Add to Pocket

ノート PC が壊れたことをきっかけに自作 PC に対する関心が高まったので、行動に移してみた。

今回組み立てた部品リストと購入品

用意したパーツは以下のとおり。 購入サイトで CPU を選択したときにおすすめされたパーツを基本として、ケースはなんか検索でひっかかった大きいやつ。大きいもの(ATX)を選んだのは、単純に配置しやすいかなと思っただけ。

パーツ メーカー 型番 備考
CPU AMD Ryzen 9 3900X 100-100000023BOX
メモリ CFD W4U3200CM-16G
ケース NZXT H710 CA-H710B-B1
CPU水冷クーラー CORSAIR H150i RGB PRO XT
グラフィックボード GIGABYTE GV-R56XTWF2OC-6GD RADEON RX 5600 XT 内蔵
電源 CORSAIR RM850x White 2018 黒がなかったので
SSD Western Degital WD Blue 3D NAND SATA WDS500G2B0A Windows 用
M2.SSD Intel SSD 660p Series SSDPEKNW512G8XT Linux 用
マザーボード ASUS ROG STRIX X570-F GAMING
グリス 親和産業 SMZ-01R /OC Master
工具 Ainex TL-020

自作PCバイブル2020-2021 というムック本を参考に、初めての組み立てを進めてみた。

付属の説明書と、ムック本と、同じメーカーのケースを使った組み立て動画を参考に組み立てた。 孤独のグルメシーズン8 を流しながらの作業で、シーズン終わるまでには OS インストールまで進んだ。

苦しんだ・時間がかかったポイント

組み立て自体が初見なのにかなり大きい CPU クーラーを用意したため、ケースの特性、CPUクーラーのケース内での配置、配線どれもわからずに一旦心が折れたemoji-cryので、代わりに一時しのぎでリテールクーラーを設置するという遠回りをしたため時間がかかった。

Ryzen 9 3900X は GPU 機能を内蔵していないため、マザーボードにくっついている HDMI や DisplayPort コネクタが機能しない、という点に気がつくのにも時間がかかった。この HDMI に接続、PC 起動して、マザーボードの警告ランプがつきっぱなしになったので焦ったが、マザーボードの設置レポート等ググって気がついた。

つけたグラボは機能しているがファンが回らないので「大丈夫か?」となったが、負荷がかからないと回らないらしいので静観している。

あるといいなと思ったもの

照明位置emoji-bulbの関係で作業する際手元が暗かった。スマホのライト機能を使っていたが、初心者なので静電気防止手袋して作業しているものだから、手袋しているとスマホが操作できない。「あ”ー」ってなって手袋外す、というのを何回かやったので、手元を照らすライトemoji-flashlightがあるとよかったなと思った。

組み立てての感想

思ったより静か。今のところ快適。

ケース重要。もうちょっとわかりやすい単純なケースにしてもよかったかも。

CPU に GPU 内蔵しているかどうかは確認しておこう。グラボ一緒に買っておいて助かった。

配線には魔物が棲んでいる。ケースに付いているファン、クーラーのファンが多ければ多いほど追加の配線が増えるので複雑度が増す。

今後の課題

  1. ディスプレイやキーボードをどう他の PC と共有するか。電源不要の HDMI 切替器を利用しようと考えている。USB ハブでまとめて、ハブは差し替えるかぁ…というところ。
  2. バックアップ用の HDD を、ケース内のマウンタに HDD 入れて管理するか、USB で外からつないで管理するか。SATAケーブル取り回すの面倒だから今のところ、外付けが優勢。
  3. 2 枚目の外部ディスプレイを DisplayPort で接続する必要があるが、HDMI to DisplayPort がうまく動くか試す。

xf86-input-synaptic から xf86-input-libinput に乗り換えた

2020-07-04
  • Share on Facebook
  • Tweet
  • Add to Pocket

https://wiki.archlinux.org/index.php/Touchpad_Synaptics をみると、メンテナンスモードに移行したようなので、synaptics から libinput に乗り換えてみた。

xf86-input-synaptics の削除する

/etc/X11/xorg.conf.d/70-synaptics.conf と、パッケージを削除する。

$ yay -Rs xf86-input-synaptics

xf86-input-libinput を導入する

パッケージをインストールし、/usr/share/X11/xorg.conf.d/40-libinput.conf/etc/X11/xorg.conf.d/40-libinput.conf へコピーしてこれを編集する。(シンボリックリンク作成でいいと思う)

$ yay xf86-input-libinput

ArchWiki: libinput xinput を使う を参考にデバイスを調べる。 今回の対象は id=13 のタッチパッドを調整する。

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]
⎜   ↳ TPPS/2 Elan TrackPoint                    id=15   [slave  pointer  (2)]

ArchWiki: libinput Xorg 設定ファイルを使う にあるように、先程コピーしたファイルを編集する。

設定内容は ArchWiki: libinput 一般的なオプション をもとにして設定する。

タップでクリック、2本指クリックで右クリック、ナチュラルスクロールを有効にしている。

$ sudo vim /etc/X11/xorg.conf.d/40-libinput.conf
Section "InputClass"
        Identifier "SynPS/2 Synaptics TouchPad"
        Driver "libinput"
        MatchIsTouchpad "on"
        Option "Tapping" "on"
        Option "ClickMethod" "clickfinger"
        Option "NaturalScrolling" "true"
EndSection

タッチパッドの操作感度の調整

ArchWiki: マウスのアクセラレーション 速度を変更する を参考に調整する。

以下のコマンドで調整しつつ、ポインタの移動速度をみて設定する数値を変更する。

$ xinput --set-props 13 'libinput Accel Speed' 0.8

好みの感度になったら、/etc/X11/xorg.conf.d/40-libinput.conf に反映する

$ sudo vim /etc/X11/xorg.conf.d/40-libinput.conf
Section "InputClass"
        Identifier "SynPS/2 Synaptics TouchPad"
        Driver "libinput"
        MatchIsTouchpad "on"
        Option "Tapping" "on"
        Option "ClickMethod" "clickfinger"
        Option "NaturalScrolling" "true"
        Option "AccelSpeed" "0.8"
EndSection

まとめ

xf86-input-synaptics とその設定を削除して、xf86-input-libinput を導入し、設定ファイルを作成した。 感度はコマンドで設定した後、設定ファイルに反映した。 実は他の設定もコマンドで設定して確認した後に反映することもできるが、ArchWiki の一般的な設定内容と目的が一致していたので、そちらについては直接設定ファイルに記載した。

gatsby-plugin-sharp と gatsby-plugin-manifest のアップデートでつまずいた

2020-03-21
  • Share on Facebook
  • Tweet
  • Add to Pocket

gatsby-plugin-sharp と gatsby-plugin-manifest のアップデートの際にエラーが発生したが、なんとか解消できたので emoji-memo として残しておく。

発生した問題

gatsby-plugin-sharp のアップデートPR( Bump gatsby-plugin-manifest from 2.2.47 to 2.3.1 ) と、gatsby-plugin-manifest のアップデート PR (Bump gatsby-plugin-sharp from 2.4.11 to 2.5.1) で以下のようなエラーが出た。

error "gatsby-plugin-manifest" threw an error while running the onPostBootstrap lifecycle:

Input file contains unsupported image format


  Error: Input file contains unsupported image format

not finished onPostBootstrap - 0.014s

エラーの issue を追いかけた

エラーメッセージでググると、https://github.com/gatsbyjs/gatsby/issues/22303 にあたった。その中のコメントで、libvips/libvips#1539 のリンクに言及されていたのでそちらを確認した。

その中で、lovell/sharp#2062 のリンクに言及しており、コメント で breaking change があったことがわかる。v0.24.0 以上の sharp が必要とな?

taniarascia/taniarascia.com#103 からこの issue が参照されていて、その中のコメント に解決策が提示されていた。

この解決策のコメントの中にあった、resolutions の設定を package.json に追記したところ、エラーが解消され、ビルドがうまくいくようになった。emoji-tada

package.json の resolutions について

pacakge.json の resolutions を使ったことがなかったのでぐぐってみたら、 https://classic.yarnpkg.com/ja/docs/selective-version-resolutions/ がわかりやすかった。

依存パッケージのバージョンを横から指定できるのか。依存パッケージの一部に脆弱性が見つかったりした場合に、これを使って強引にパッチのあたったバージョンにアップデートさせる、というような使い方できるっぽい。これは勉強になった emoji-memo

結論

今回は package.json の resolutions に sharpt のバージョンを "^0.24.1" として指定することでエラーを回避した。 resolutions については、https://classic.yarnpkg.com/ja/docs/selective-version-resolutions/ を参照のこと。