PCがぶっこわれちまった

開発してたらPCがぶっこわれちまったので、復旧作業を記録しておく。

症状

PCの電源を入れると、ブーン↑ってなってから1秒後にブーン↓となり、電源を遮断するまでそれを繰り返し続ける

1日放置後に電源を入れてみたら正常に動作したが、そのまた1日後に同様の症状が発生した。

対処

  • 使用する電源プラグを変更してみる

友人に勧められて試してみたが、効果がなかった。嘘つき。

→効果がなかった。

→無事に直りました。

f:id:nakamu8510:20210926015256j:plain
そこには元気に隆起するWifi子機の姿が!(通常は有線で通信してます)

一番時間がかかったのは、作業スペースを作成するために部屋を掃除したことでしたね。

ラズパイでいろいろやってみたい(2)

前回までのあらすじ:何もしていない。

nakamu8510.hatenablog.com

作業メモ

物理的な準備

まずはラズパイのセットアップ。

必要な機材は、ラズパイ・電源ケーブルHDMIケーブル・SDカード・キーボードぐらい。

SDカードを買い忘れないように気をつけよう(1敗)

SDカードはmicroSDなので気をつけよう(1敗)

はじめに、SDカードにRaspberry Piの標準のOSであるRaspbianを書き込む。

去年ぐらいにラズパイ公式のインストーラーができたらしいのでそれを利用してみることに。

f:id:nakamu8510:20210919165841p:plain
Raspberry Pi公式 OSインストーラ

書き込み終わったら、それぞれの機材をセットアップする。

SSHの準備

起動したら、コンフィグ画面に則って設定を進める。

その後、ipアドレスデフォルトゲートウェイを設定し、raspi-configからSSHサービスを起動する

VNCを利用したくばVNCも起動しておく。

WinPCからSSH接続ができる形に。

(Win側へのpingが通らない場合は、Win FWもしくはセキュリティソフトの影響の可能性。ネットワークを信用する設定(社内・家庭用ネットワーク)にする)

f:id:nakamu8510:20210919200258p:plain
VNC接続できた!

(コマンドプロンプトに標準でSSHが入ったんですね。初めて知りました。使いませんけど。)

ラズパイでいろいろやってみたい(1)

頭の整理のためにメモを残しておく。

NWの勉強をしないといけないが、手を動かさないとなにも理解した気にならないので自宅で環境を作ってみることに。

2年ぐらい前に買ったラズパイ(Raspberry Pi 3 Model B)を持て余していたのでいろいろやってみたい。

やってみたいこと

  • WebサーバをInternetに公開する
  • Djangoで簡単なWebシステムを作ってみる
  • syslogサーバ構築
  • Zabbix等でNW監視

全部ラズパイで動かすのはスペック的にきついかな?

ざっくり設計

WebサーバをInternetに公開する

私の自宅環境は、S社ISPと契約していてInternet側はNTTのONU(GE-ONU)が終端になっている。

なお、光BBユニットはないのでv6環境は作れません。

まず、ルータではポート開放を行い外部との通信がとれるようにする。

サーバでは、IPアドレスを固定にし、FWの設定で指定のポートでの通信を許可する設定を行う。

これでサーバが建てば外部からのアクセスはできるはず(PC側で検証済み)。

Djangoで簡単なWebシステムを作ってみる

最近プログラミングしなさすぎ問題を解消するためDjangoでシステム作ってみる

何を作るのかは未定だが、RESTfulなAPIを作らないと行けない縛りで。

後述のNW監視を自作してもいいかも。

開発はデスクトップPCでやりたいので、流行りのDockerで移行をスムーズにしたい。

でも、PCのプロセッサはx86なのに対して、ラズパイはarmなので色々大変らしい qiita.com

どうしたもんかね。

syslogサーバ構築

ルータにsyslog転送機能があるので、せっかくなので。

アラートとか上げれるようにしてもいいかも?

Zabbix等でNW監視

よくわからないけど、商用環境でNW監視してない環境はないと思うので。

しかし、自宅ルータはSNMPに対応していないため、他の方法を取らねばならない

さいごに

設計を考えるのは楽しいけど実際に手を動かすのはツライのでやらないかもしれない。

あとSDカード買い忘れた。

Next↓

nakamu8510.hatenablog.com

wordとWORDの違い

VimのwordとWORDの違いについて説明します.

wはword単位,WはWORD単位で,どちらも単語を表現しているのですが,例えば

cnoremap <C-P> <Up>

という文があったとき,wなら9回で次の行に行くのに対し,Wの場合3回で次の行に行きます.何が違うのかというとwはスペースなどの区切り文字で区切り,アルファベットや数字などの連続が途切れた場合も区切ります.Wの場合はスペースなどの区切り文字のみで区切ります.なので,wの場合はcnoremap |<|C|-|P|> |<|Up|>と区切られ,Wではcnoremap |<C-P> |<Up>と区切られます.また,区切り文字はiskeywordオプションで指定できます.

ただし,特殊なケースとして,cwとdwの挙動が少し違うことも気をつけなければなりません.カーソルが,

cnorema|p <C-P> <Up>

の場所のとき,dwではcnorema|<C-P> <Up>となりますが,cwだとcnorema| <C-P> <Up>と空白が残ります. cwでは単語を削除するのに対し,dwでは移動した場所まで削除するという違いに気をつけましょう.

Vimrc晒し

vimrc晒し

この記事は静大情報LT大会(IT) Advent Calendar 2018 11日の記事である

vimとは

使ってると女の子にモテるエディタ

使い始めて1年ちょっとぐらいになる

.vimrcとは

vimの設定ファイルのこと.なお,nvimではinit.vimになる

僕の.vimrcは250行を超えているのでここではすべてを紹介することはしない

環境

Windows10 GUIVIM 8.0

option

set winaltkeys=no " ALTキー押下時にメニューにフォーカスしないようにする

僕はaltキーにいろいろマッピングしているので必須

しかしaltキーを二回押すとようやくメニューバーにフォーカスが移るようになっている

set splitright " vsplitで右にウィンドウ生成
set splitbelow " splitで下にウィンドウ生成

好みだけどこっちのほうが自然だと思う


set shiftwidth=4 " space4つでインデント

スペース4つ派はモテるらしいので

colorscheme

colorschemeとはエディタの色使いのこと

視認性やモチベーションにかかわるので結構重要だと思う

有名どころだとmolokaiとかtenderとかある

colorscheme evening

evening使ってますけどもっといいのないかなあ

コメントが見やすいのでとりあえずこれを使う

keymap

マッピングは他の人が僕のキーボードで作業することなどを考えるとあまり変えないほうがいいかもしれないが,僕はある程度の互換性を保ちつつ誰も使っていないようなキーから変えていく.例えばスペースキーやエンターキーなどをマッピングする

" コマンドモードをBash風にする
cnoremap <C-P> <Up> 
cnoremap <C-N> <Down>
cnoremap <C-B> <Left>
cnoremap <C-F> <Right>
cnoremap <C-D> <Delete>
cnoremap <C-A> <Home>
cnoremap <C-E> <End>

:を押したあとのコマンド入力時のキーバインドBash風にする

" altキーを利用してインサート時にカーソル移動を容易にする
inoremap <M-k> <UP>
inoremap <M-j> <Down>
inoremap <M-l> <Right>
inoremap <M-h> <Left>
inoremap <M-a> <Home>
inoremap <M-e> <End>
inoremap <M-b> <C-o>b
inoremap <M-w> <C-o>w
inoremap <M-u> <C-o><C-u>
inoremap <M-d> <Delete>

inoremapでインサートモード時のキーバインドを変更する. <C-o>は1コマンドのみノーマルモードに戻るという意味なので,<M-w>はaltキー+wで1単語前にカーソルを移動させていることになる

nnoremap <space>1 :b1<CR>
nnoremap <space>2 :b2<CR>
nnoremap <space>3 :b3<CR>
nnoremap <space>4 :b4<CR>
nnoremap <space>5 :b5<CR>
nnoremap <space>6 :b6<CR>
nnoremap <space>7 :b7<CR>
nnoremap <space>8 :b8<CR>
nnoremap <space>9 :b9<CR>
nnoremap <space><space> :b#<CR>
nnoremap <space>l :bnext<CR>
nnoremap <space>h :bprevious<CR>
nnoremap <space>d :bd<CR>

バッファー間移動を簡単にしている

<space><space>で直前のバッファーへ移動できたり,<space>lで次のバッファーへ移動など結構便利

noremap <S-y> y$

VimではDで行末まで削除,Cで行末まで削除して挿入モードといったコマンドが用意されているが,Yは歴史的な経緯からyyと同じように行全体をヤンクする動作になっているので行末までヤンクに変更する

プラグイン

プラグインマネージャー

Vimは標準でも素晴らしいエディタだが,プラグインを導入することで生産性がさらに向上する

なお,プラグインマネージャーにはVimPlugを使用する

noremap <f2> :PlugUpdate<CR>

また,F2キーでプラグインすべてのアップデートを行うようにした

peekaboo

https://github.com/junegunn/vim-peekaboo

レジスタやマクロの中身を可視化するプラグイン

lexima

https://github.com/cohama/lexima.vim

開き括弧を入力したら閉じ括弧を自動で入力してくれたり改行したらいい感じにしてくれたりする

yankround

https://github.com/LeafCage/yankround.vim

ヤンクする時に前の無名レジスタにさかのぼってペーストすることができる

さいごに

僕の.vimrcはコチラ

なお,このページはVisual Studio Code で書きました

VSCodeもいいぞ