Humanity

Edit the world by your favorite way

デスクトップ PC のマザボと SSD と OS 入れ替えた

やってしまった。 デスクトップ PC を久々に掃除するかーと思い、昔買ったエアーダスター (缶タイプ) を吹き付けたのがまずかった。 どうやら古くなっていたようで、吹き付けた瞬間にマザーボード (以下 M/B) の表面に泡のようなものが塗布されてしまった。 すぐに揮発したものの、やはりアウトだったようで、電源を入れるとビープ音が鳴り響くのみとなった。 もう二度と缶タイプのエアーダスターは買わない。

仕方なく M/B を注文して、ついでに SSDWindows 10 も買った。 M/B はチップセットが古く *1 近くの PC パーツ店になかったため、それだけ価格.comで買った。 Asus の安いのが一つしかなかったが、逆に選ぶ手間が省けたので良かった (安いし)。 SSD は完全についで、Windows 10 は元の HDD に入ってたのが DSP 版で移すのはライセンス的にアウトだったため。まぁ自分としてもめんどい事したくないし何となく Windows 10 のディスクを手元に持っておきたかったというのもあった (ノート PC も Windows 10 だがこちらもディスク等はない)。

ついディスクと書いてしまったけど、今はディスクじゃなく USB メモリに入っていて「そりゃそうですよね」と思った。 おまけに今は iso 自体が Microsoft のサイトからダウンロードできる。 そりゃシリアルキーさえ販売すればいいんだからそれでいいよな… 時代に取り残されているのを感じる。 「何となくディスクを手元に持っておく」必要なんて今はほぼ無いのだった。 そりゃトラブル時のリカバリディスクとかは手元にあった方がいいけど、自分が手元に持っておきたいのはもっと心理的な理由から。うまく説明できないけどインストールディスクが手元にあると安心感がある。いつでもまっさらにできるぞみたいな。

で、早速 M/B やら SSD を換装した。 時々しか触らないので SSD を置くベイがないことに気付いて頭を抱えたけど、無理矢理 HDD にガムテで SSD を固定することにした。 応急処置だったけどもうこれでいいや。

f:id:tyru:20180527172000j:plain
力で解決する様子

無事換装が終わってケースのネジを留めて USB メモリを指して起動してみたけども、途中でブルースクリーンになる。 なんで?と思いつつ、以前海外のベアボーンWindows 7 をインストールした時に USB 3.0 のポートだとインストーラがドライバーの読み込みに失敗するのを思い出して、何度か USB ポートを変えて差してみたけど変わらない。 うーんと思いながら、とりあえずバックアップ取っておこうと思って、USB メモリを DD for Windows で丸ごとバックアップしようとしてみた。 すると I/O エラーが出た。USB メモリ壊れとるやんけ。 これだから最近のメディアは根性が無くて困る。DVD 先輩を見習ってほしい。若者 (?) の円盤離れ。

仕方なく Microsoft のサイトから Windows 10 の iso (を作成するツール) をダウンロードして来る (時系列的にはここで iso を Microsoft が配布している事を知った)。 8GB 必要らしいが手頃な USB メモリをコンビニに買いに行く。 しかし 8GB ちょうどのはあってもそれ以上のものが無い。できれば 10GB 以上のがほしい。 あれ、USB メモリってこんなにコンビニに売ってないもんなんだっけ… と思って、ふと今は USB メモリなんて PC 用の周辺機器よりも SD カードとかスマホ用の周辺機器が充実している事を知る。 今日一日で三度目の時代の波に取り残された感を味わった後、すごすごと二度目の PC パーツ店への訪問をキメてようやく USB メモリ (16GB) をゲット。 もしかしたら言えば取り替えてくれたかもしれないけど、別にいいや。 手続きめんどいし USB メモリも持っておきたかったってのもあるし… こうやって物を捨てれない自分はどんどん部屋に物が増えてくのねーなるほど? と思いつつようやく Windows 10 のインストールに取り掛かる。 その後はエラーもなくすんなりと進み、無事快適な環境が戻った。

"NO Keyboard Detected! Press F1 to Run SETUP"

デスクトップ PC が壊れてる間はノート PC で作業していたけど、スペックが若干貧弱で、メモリは同じだけど CPU がモバイル用なだけあって、ちょっと負荷がかかるとすぐファンがうるさくなる。 あとバッテリーが切れかかると途端に省電力モードになってもっさりする。 家の中なら繋ぎっぱなしでもいいけど、バッテリーがヘタるんじゃないかと気になるのであんまりやりたくない。 リチウムバッテリーはそういうの強いとか聞いた事あるような気もするけどどうなんだろう。

まぁぶっちゃけ騒音以外はそんなに (ピーク時の) スペックは変わらん気がするんだけど、それでもデスクトップ PC の方が快適なのは、モニターアームのおかげと、音を切替機で PS3 と切替可能にしてるおかげ。 2台あるモニタの片方しか HDMI が差せないので、ノート PC を使っている間は torne が見れない。 HDMI ケーブル差し替えてヘッドンホホを取り替えて… がめんどい。 めんどいし、作業中に片方のモニタで torne が見れないのが一番不便だった。 タモリ倶楽部とか水曜どうでしょうとかアニメ流しながら作業するのめっちゃ捗らない??? いや正直今回デスクトップ壊れてそうでもないなと思ったけども、まぁ見たいものは見たい。 人類は一度便利みを享受すると不便に甘んじる事は難しい。

切替器とボリューム調整用コントローラーの図。音量調整は OS のよりも、確実に音量を調整できる安心感とぐるぐる回す感覚が個人的に好き。これで怪しいサイトを見ていきなり音が流れても安心!

*1:なるべく同じチップセット (H81) にしたかった

Webpack + Vue(SFC) + TypeScript ハマりどころ (2018/05 版)

サクッと Webpack + Vue(SFC) + TypeScript でアプリ作ってみようと思うたび Webpack の設定に時間を溶かしてやる気を無くすシリーズ。今回はこちら!!!

// webpack.config.js
const path = require('path')
const VueLoaderPlugin = require('vue-loader/lib/plugin')

module.exports = {
  mode: 'development',
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      },
      // この設定は .js ファイルと .vue ファイルの <script> ブロック両方に適用される
      // (JS で書くならこっち)
      // {
      //   test: /\.js$/,
      //   loader: 'babel-loader'
      // },
      // この設定は .ts ファイル、.tsx ファイルと .vue ファイルの <script lang='ts'> ブロック両方に適用される
      {
        test: /\.tsx?$/,
        loader: 'ts-loader',
        exclude: /node_modules/,
        options: {
          appendTsSuffixTo: [/\.vue$/],
        }
      },
      // この設定は .css ファイルと .vue ファイルの <style> ブロック両方に適用される
      {
        test: /\.css$/,
        use: [
          'vue-style-loader',
          'css-loader'
        ]
      }
    ]
  },
  plugins: [
    // 必須
    new VueLoaderPlugin()
  ]
}

github.com

基本はこの手順通りに進めていけば大丈夫だと思ってたけど、上記でハマったので PR 投げよう…と思ったら投げる直前に同じ PR 投げてる人がいたのを見つけた。ぐぬぬ

github.com

VSCodeVim に次送ろうと思ってる PR リスト

tyru.hatenablog.com

送ったものはマージされたものの、まだやり残した事がいくつかあって、

  1. p コマンドのリファクタリング
  2. パフォーマンス改善
  3. 漢字仮名交じり文の上で w, b, e, ge を押した時に漢字、ひらがな、カタカナの区切りで止まるようにする

1 はすでにブランチを作成中だけどテストが通らない状態 2 は Vim の lazyredraw 見たく描画を必要な時にのみ行えばいいんじゃないかと計画中 3 はすでに文字のクラス (種類) を判定する処理を Vimソースコードからちまちまと JavaScript に移植したものをすでに作った (以下参照) ので、あとはこのライブラリを npmjs に publish して、VSCodeVim で使うような PR を送れば OK

github.com

(適当な日本語の文章として一番に思い付いたルイズコピペをノリで選んだけど、割と本気で良いデータだったんじゃないかという気がする…)

もちろん Vimソースコードをそのまま移植した訳じゃない。 例えば Vim は様々な文字コードをサポートしているけど、 今回は JavaScript なので文字クラスの情報を取得する対象として Unicode コードポイント (str.codePointAt(0)) だけを対象とすればいい。 そのため必要なさそうな if 文はざっくり無視したけどまだ何か見落としているんじゃないかという気はする… (テストまだ書いてない) 正直ここら辺は自分一人じゃ日本語と英語しかデータセットがなくてチェックしきれないので、とりあえず日本語で上手くいくことを確認したら VSCodeVim に PR 出して、 各国の人にそれぞれの言語で試してもらうという乱暴な解決策にしようかと思っている (もちろん既存の VSCodeVim のテストコードは全て pass した上で)。

あともう一つ重要なのが、ライセンスの問題。 Vimソースコードをそのまま移植したので、とりあえず今は Vim license をそのまま選択している。 けど Node ライブラリで Vim license はよく分からんって事で回避されそうな気がする… 正直自分も分かってない。とりあえず Vim license 同士なら確実に互換性があるだろうって事で Vim license にしてるだけ。 自分としてもライセンスが曖昧なコードを PR として送るつもりはないので、 できれば Node ライブラリでよく使われてる ISC や GitHub に多い MIT にしたい。 ただ Vim license と互換性があるのかが分からない… これは vim_dev とかで Bram に直接聞くしかない気がする (もし互換性ないって言われたらどうしよう…)。

追記:聞いてみたら、返信返ってきて大丈夫そうです。