たいちょーの雑記

ぼくが3日に一度くらい雑記をかくところ

雑記 2020-04-09

雑記

書こうと思った出来事をまとめていると、書くほどでもないなとなって更新しなくなる。あらあらまあまあ

レシート

目の前にレシートがたくさんある。この四月から家計簿でもつけようと思って、4月1日以降の買い物でもらったレシートをとってあるのだ。レシートたちは小箱に入っており、処理したものから順に別の小箱へ移すようにした。眺めてみると、ああ色々買ったなぁと思う。近くのパン屋、野菜、家具、振り込み、いろいろある。1/4はクレジットカード決済だから来月の引き落としになっている。今から割とこわい。
まぁそんなことはどうでもよくて、今問題なのはすべてのレシートが未処理の箱に入ってるってこと。準備だけしても意味ないよなぁ…

カメラ

リモートワークって仕事部屋が別に用意できる人向けなんじゃないかと思った。寝床とかキッチンとか見られるのも嫌だし。いえ、私が対策すればいいだけですけどね。

おわり

MacにWin配列のキーボードぶっさしてCtrl+V,Ctrl+Cでコピペできるようにしたけど、Chrome上では動作しないしマジ意味不明って感じ。

雑記 2020-04-05

雑記

つかれる

座椅子

作業机にはこたつを使ってる。だから胡坐とか女の子座りしたりしてたけど、これが腰によくなさ過ぎた。なので座椅子を買ったヘッド部分と腿の部分の角度が変わるやつを選んだ。居心地が良いから、フラットにしてこの上で寝たりしてる。でもそのうち作業机はデスクにしたいね。

社会性フィルター

最近社会性フィルターについてよく考えることがある。
社会性フィルターって言っても、ここではどの情報を外に出すかのフィルター。例えば住んでいる地域を公開したくない場合、周りのお店の情報はもちろん天気の情報とか気温も話さない方がいいのかな?まぁこれはさすがに考えすぎなわけだけど。
ともかく様々なことを考えるとツイートすることがなくなってしまったって話。

おわり

おわわ

パッケージマネージャをほとんどzinitにした

しました

github.com

OSごとにbrewだとかaptだとかpacmanだとか、その都度使い分けるのはいいんですが、インストールスクリプトを書くのが難しすぎるんですよね。
というわけでzinitに任せられるところは任せました。

使い心地は結構いいなぁという印象です。

zinit ice

zinit icezinitプラグインをロードするzinit loadzinit lightを修飾する機能を持ちます。ここではcdxzinitで管理することを例にします。

zinit ice has"go" atclone"go install" atpull"%atclone" atload'eval "$(go-cdx --init)"'
zinit light xztaityozx/go-cdx
  • has
    • あとに続くコマンドが実行できるときのみロードする。
  • atclone
    • cloneした後に実行するコマンドを指定できる。
  • atpull
    • pullした後に実行するコマンドを指定できる。%atcloneと書くとatcloneで書いたコマンドが実行できる。
  • atload
    • プラグインを読み込んだ後に実行するコマンドを指定できる。

というわけで、上記のzinitは、「xztaityozx/go-cdxgoが使えるときにのみロードする。これをcloneとpullしたときにはgo installを実行して、ロード時にはeval "$(go-cdx --init)"を実行する。」という意味になるわけです。

github releaseから拾ってくる

zinitのいいなぁポイントの一つにzinit icefrom"gh-r"を指定すると、GitHub ReleasesからLatestを拾ってこられるというのがあります。
例としてchoosenimGitHub Releasesから拾ってくるようにしてみます。

ENV_OS="linux" # ENV_OS="(macos|darwin)"
zinit ice as"program" from"gh-r" bpick"*$ENV_OS*_amd64"
zinit light dom96/choosenim

fromgh-rを指定して、GitHub Releasesから拾ってくるようにします。このとき、Releasesにアップロードされているアーカイブからどれかを選ばないといけません。ここでbpickを使うと、引数に渡したパターンに最初にマッチしたものをダウンロードしてきます。ここでは*linux*_amd64にマッチするものですね。

.zinit以下以外に配置したい

vim-plugzinitで管理したいのですが、配置場所はドキュメント通りに~/.local/share/nvim/site/autoload/plug.vimにしたいとします。こういうときはcloneonlycp/mvを使えばうまくできそうです。

zinit ice cloneonly cp"plug.vim -> ~/.local/share/nvim/site/autoload/plug.vim"
zinit light junegunn/vim-plug

cloneonlyはそのままダウンロードのみを行うオプションです。cp"{src} -> {dst}"srcdstcpする…。そのままなんですけどこれ以外に何も説明できない

最終的なzshrc

# set environments
ENV_OS="linux"
ENV_FONT_DIR="$HOME/.local/share/fonts"
ENV_DOT_CONFIG="$HOME/.config"
## for macos
which sw_vers &> /dev/null && {
  ENV_OS="(macos|darwin)"
  ENV_FONT_DIR="$HOME/Library/Fonts"
}

true

# zinit
source "$ZDOTDIR/.zinit/bin/zplugin.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit

zinit for \
    light-mode zsh-users/zsh-autosuggestions \
    light-mode zdharma/fast-syntax-highlighting \
    light-mode zsh-users/zsh-completions

# fzf
zinit ice from"gh-r" as"program"
zinit load junegunn/fzf-bin

# plenv
zinit ice as"program" pick"bin/plenv" atload'eval "$(plenv init - zsh)"' \
  atclone"git clone git://github.com/tokuhirom/Perl-Build.git ./plugins/perl-build/" atpull"%atclone"
zinit load tokuhirom/plenv

# Cica
zinit ice from"gh-r" cloneonly bpick"*_with_emoji.zip" atclone" \
  mkdir -p $ENV_FONT_DIR/Cica &> /dev/null
  cp ./* $ENV_FONT_DIR/Cica
" atpull"%atclone"
zinit load miiton/Cica

# vim-plug
zinit ice cloneonly cp"plug.vim -> ~/.local/share/nvim/site/autoload/plug.vim"
zinit light junegunn/vim-plug

# choosenim
zinit ice as"program" from"gh-r" bpick"*$ENV_OS*_amd64"
zinit light dom96/choosenim

# cdx
zinit ice has"go" atclone"go install" atpull"%atclone" atload'eval "$(go-cdx --init)"' pick"/dev/null"
zinit light xztaityozx/go-cdx

# powerline-go
zinit ice has"go" atclone"go install" atpull"%atclone" atload"source $ZDOTDIR/powerline.zsh" pick"/dev/null"
zinit light justjanne/powerline-go

# tilix-theme
zinit ice has"tilix" cloneonly atclone"mkdir -p $ENV_DOT_CONFIG/tilix/schemes; cp ./*/*.json $ENV_DOT_CONFIG/tilix/schemes" pick"/dev/null"
zinit light storm119/Tilix-Themes

# exa
zinit ice from"gh-r" as"program" bpick"*$ENV_OS*" cp"exa* -> exa"  atclone" \
  curl -fLo $ZDOTDIR/.zinit/completions/_exa https://raw.githubusercontent.com/ogham/exa/master/contrib/completions.zsh" \
  atpull"%atclone"
zinit light ogham/exa

# ghq
zinit ice has"go" atclone"go install" atpull'%atclone' pick"/dev/null"
zinit light x-motemen/ghq

# pynvim
zinit ice has"pip3" atclone"pip3 install ." atpull"%atclone" pick"/dev/null"
zinit light neovim/pynvim

# neovim
zinit ice from"gh-r" bpick"*$ENV_OS*" pick"./*/*/nvim" as"program"
zinit light neovim/neovim

# hub
zinit ice from"gh-r" bpick"*$ENV_OS*" pick"./*/*/hub" cp"./*/etc/hub.zsh_completion -> $ZDOTDIR/.zinit/completions/_hub" as"program"
zinit load github/hub

# bat
zinit ice from"gh-r" bpick"*x86_64*$ENV_OS*" as"program" pick"./*/bat"
zinit light sharkdp/bat

# enable completions
autoload -U compinit && compinit

# load
ls $ZDOTDIR/*.zsh | while read L; do source $L; done

zinit iceをこねくり回すことで、neovimやpynvimなんかもzinitで管理できるようになりました。できればpython3やgoなんかも管理させたいですね。goenvとかpyenv使えば行けるかなぁ。

おわり

どうでもいいけど、こういう文章書くの久しぶりすぎてどうやって書くのか忘れたよね。

雑記 2020-03-25

雑記

頻度が落ちている

限界オタク

いままで限界オタクになるほど推せるようなものってなかった。あえて挙げるならロックマンエグゼプリキュアだけど、限界化するほどかというとそうでもない。もちろん大好きな作品ではあるけれどね。
ところが最近ガン推しできる存在を見つけた。できればもっと早く見つけたかった。きっかけは某所、その時は「へーこんなのがあるのか」というぐらいで実際に触れはしなかった。
それから2か月後ぐらいにグンと伸びた。よく見かけるようになったので気になって作品に触れてみたら、これがまぁ超よかった。2か月前に触れておけばよかったなと思った。
これからの活躍も楽しみである。

おわり

お腹減ったなぁ

卒業しました

しました

いつの間にか大人になっていた。いつそうなったんだろう。

不安だ。世間の人はどうこの不安に耐えているんだろう。今日は人前では笑えるけど、一人でいると胸と鼻の奥が痛い感じがした。
やっぱりまだ子供なんだろうなぁ

でも、まぁ、なんとかやっていきます。ご声援のほどよろしくお願いいたします。

雑記 2020-03-18

雑記

むずい

ssh-add

ssh-agentよくわからないのでgithubに公開鍵を登録してもsshtdできなかったのでなんとかした

eval "$(ssh-agent -s | grep -v echo)"
ls -1 | xargs file | grep "OpenSSH private key" | awk -F: '{print $1}' | xargs ssh-add

これを $ZDOTDIR/.zprofile とかに書いておけばOKかな。

hugo

hugoを使ってドット絵投稿用のブログを作り直した。いままではhexoを使ってた

xztaityozx.github.io

たいしたこと全然やってないので埋め込みも微妙な感じになってるなあ

おわり

終わりたい気持ちと終わりたくない気持ち

雑記 2020-03-13

雑記

プログラミングできねぇ

DFS

func dfs(base, p string, recursive bool, action func(string, os.FileInfo) error) error {
  path := filepath.Join(base, p)
  fi, err := os.Stat(path)
  if err != nil{return err}

  if fi.IsDir() {
    entries, err := ioutil.ReadDir(path)
    if err != nil{return err}
    for _, entry := range entries {
      item := filepath.Join(p, entry.Name())
      if entry.IsDir() && recursive {
        if err := dfs(base, item, recursive, action); err != nil{return err}
      } else {
        if err := action(item, entry); err != nil {return err}
      } 
  } else {
    if err := action(p, fi); err != nil{return err}
  }
  return nil
}

こういう感じで、 base に渡したパス以下のファイルやディレクトリへのパスを base からの距離でリストアップする奴が欲しいんだ…。できればGlobにも対応したい。 filepath.Walk絶対パス返してくるのでダメだった。これ適当に描いたけどあってるのかな

おわり

プログラミングはエディタでやろうな