Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

令和弐年振り返りと令和参年抱負など

気付いたら令和2年は終わっていた。残る休みも3日も切ってしまった。 去年は2人目の子供の出生〜育児で1月2月はほとんど記憶が無い。 下の子はミルクをあまり飲まなかった事、子供部屋が上の子と同じだったので、夜中に下の子が泣くと慌てて別の部屋へ連れて行って毛布にくるまっていたくらいしか覚えてない。 3月くらいになって少し夜泣きも落ち着いて外出出来るかな〜と思った矢先にコロナ禍。育休の後半はコロナ禍で外出も何も出来ないまま職場復帰を迎えた。 職場に戻れば仕事がとんでもない事になっていて、仕事と育児でなんやかんやバタバタとしていたらあっという間に12月で、結局何も出来なかった感じで終わってしまった。 まぁ、上の子は会話でコミュニケーションがとれるくらい喋る様になり、下の子はヨチヨチ歩きに離乳食も食べられる様になり、振り返るときちんと成長していて感心したり嬉しく思ったり。

令和2年はほとんど何も出来なかったので、令和3年は色々と自分の事もやっていきたい。

読書

  • 結局本は1年で数冊くらいしか読めてなかったのでは?
  • 小説、技術書の積読は消化したい。

プログラミング

  • GoとDocker,VueのUdemyを最後までやる。
  • Goをもうちょっとマスターしたい。去年は簡単なアプリをちょっとしか書けてないので、もうちょっと規模の大きいプログラムを書きたい。
  • もうちょっと色々出来たと実感できるくらい色々やっていきたい。
  • Perl入学式オンライン、もっとコミットしていきたい。

音楽

  • ヴァン・ヘイレンが亡くなったり、時代の移り変わりが顕著に感じた。
  • ノイキャンヘッドホン買ったおかげで、通勤でポッドキャスト聞いたり、音楽聞いたりはそこそこ出来た。
  • ドラム、ギターの楽器演奏は全く出来なかった。職場近くに音楽スタジオを見つけたので、少しずつ再開したい。
  • Jazzライブは結局1回しか行けなかった。家庭と家計と相談しながら、もう少し行けるかな?

映画

  • 遂にヱヴァンゲリヲン完結。これは劇場で見たい。
  • AWAKEも見たい。上映期間中に映画館に行けるのだろうか。

子供

  • 色々と出来る様に成長してきた。
  • 3歳くらいになると、印象深い出来事は一生の記憶として残ると思うので(自分経験談)、色々楽しい体験をさせてあげたい。
  • 遊園地、歌、ダンス、お絵かき、絵本が好きなので色々体験させたい。が、頑張りすぎると自分の時間ががががが、、、

年明けにお酒を飲みながら思いつくままに色々書いてみた。 まぁ、仕事はそこそこに子供、家族、自分に色々時間を使っていきたい。

vimrcの旅 ~その4~

DAY7

dein vimプラグイン追加

call dein#add('itchyny/lightline.vim')            "ステータスバー
call dein#add('scrooloose/nerdtree')              "ディレクトリツリー表示
call dein#add('fatih/vim-go')                     "Goフォーマッタ
call dein#add('sheerun/vim-polyglot')             "多言語シンタックス・インデント調整
call dein#add('nathanaelkane/vim-indent-guides')  "インデント可視化

"Vim起動時にNERDTreeを起動

autocmd vimenter * NERDTree

" vim立ち上げたときに、自動的にvim-indent-guidesをオンにする

let g:indent_guides_enable_on_vim_startup=1

" ガイドをスタートするインデントの量

let g:indent_guides_start_level=2

" 自動カラーを無効にする

let g:indent_guides_auto_colors=0

" 奇数インデントのカラー

autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd  guibg=#262626 ctermbg=gray

" 偶数インデントのカラー

autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=#3c3c3c ctermbg=darkgray

" ハイライト色の変化の幅

let g:indent_guides_color_change_percent=30

" ガイドの幅

let g:indent_guides_guide_size=1

DAY8

"ステータスラインの常時表示&表示内容

set laststatus=2

"### インデント設定

set autoindent          "改行時に前の行のインデントを計測
set smartindent         "改行時に入力された行の末尾に合わせて次の行のインデントを増減する 
set smarttab            "新しい行を作った時に高度な自動インデントを行う
set expandtab           "タブ入力を複数の空白に置き換える
set tabstop=4           "タブを含むファイルを開いた際, タブを何文字の空白に変換するか
if has("autocmd")
  "ファイルタイプの検索を有効にする
  filetype plugin on
  "ファイルタイプに合わせたインデントを利用
  filetype indent on
  "sw=softtabstop, sts=shiftwidth, ts=tabstop, et=expandtabの略
  autocmd FileType c           setlocal sw=4 sts=4 ts=4 et
  autocmd FileType html        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType ruby        setlocal sw=2 sts=2 ts=2 et
  autocmd FileType perl        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType js          setlocal sw=4 sts=4 ts=4 et
  autocmd FileType zsh         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType python      setlocal sw=4 sts=4 ts=4 et
  autocmd FileType scala       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType json        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType html        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType css         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType scss        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType sass        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType javascript  setlocal sw=4 sts=4 ts=4 et
  autocmd FileType swift       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType go          setlocal sw=4 sts=4 ts=4 et
endif

vimrcの旅 ~その3~

DAY5

"マウスの無効化(マウス操作でvisualモードにならない様にする)

set mouse-=a

"ダーク系<->ライト系カラースキーマ切替

set background=dark
"set background=light

"シンタックスハイライト

syntax on

"検索文字をハイライトする

set hls

DAY6

"ステータスラインの常時表示&表示内容

set laststatus=2

"Dein.vimを導入

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/Users/tomcha/.cache/dein/repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/Users/tomcha/.cache/dein')
  call dein#begin('/Users/tomcha/.cache/dein')

  " Let dein manage dein
  " Required:
  call dein#add('/Users/tomcha/.cache/dein/repos/github.com/Shougo/dein.vim')
  call dein#load_toml('~/.vim/plugins.toml', {'lazy': 0})
  " Add or remove your plugins here like this:
  "call dein#add('Shougo/neosnippet.vim')
  "call dein#add('Shougo/neosnippet-snippets')

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

" If you want to install not installed plugins on startup.
if dein#check_install()
  call dein#install()
endif

"End dein Scripts-------------------------

vimrcの旅 ~その2~

DAY3

"不可視文字を表示

set list
set listchars=tab:>-,extends:<,trail:-,eol:\

"行末行頭のカーソル移動で前後の行に移動できる様にする

set whichwrap=b,s,h,l,<,>,[,],~

"インサートモードでのカーソルキー形状変化(Macのみ)

let &t_SI = "\e]50;CursorShape=1\x7"
let &t_EI = "\e]50;CursorShape=0\x7"

DAY4

"文字コードUTF-8に指定

set encoding=utf-8

"タブを空白で入力する

set expandtab

"標準タブは4

set tabstop=4
set softtabstop=4

"行末まで移動できるようにする

set virtualedit=onemore

vimrcの旅 ~その1~

DAY1

Vimのテキストエリアに行番号をつける

set number

自動バックアップファイル、自動スワップファイルを作らない

set nobackup
set noswapfile

DAY2

インサートモードで、ctr + jでノーマルモードの戻る

inoremap <C-j> <C-[>

インサートモードで、素早く jj でノーマルモードの戻る

inoremap <silent> jj <C-[>
inoremap <silent> っj <C-[>

OSのクリップボードを使う

set clipboard=unnamed

vimrcの旅 ~出発準備~

所信表明

software design 2020年8月号がVimの特集(VSCodeも)だったので、かねてから気になっていた.vimrcをゼロから作る修行の旅へ出ることにしました。

現在使っている.vimrcは、ネットの記事やら雑誌やら知り合いからのアドバイスなどから色々とコピペ・追加を繰り返し、351行(空白行、コメントアウト行含む)の状態です。コメントを書いたりしているものの綺麗に整理されている訳ではなく、中にはあまりよく分かっていない記述やプラグインなどもちらほらと。

まずは完全に理解したプラグインや設定を1つずつ増やしていき、納得度の高い.vimrcに育てていこうと思います。

旅の出発の準備

とはいったものの、現状のvimrcも使い慣れている部分は多々あり現在の環境を完全に手放すのも色々と支障が出てしまいます。
なので、現行.vimrcと育成用.vimrcを切り替える方法を探してみたのですが見つからず、シェルスクリプトで切り替えるツールを作ってみました。

change vimrcということで、cvrc.shというスクリプトです。実行すると、~/.vimrcエイリアスのリンク先を、dotfilesディレクトリ内にある.vimrc と .vimrc_bringupを交互に切り替える動作をします。

#!/usr/bin/env zsh

oldlink=`readlink ~/.vimrc`
if test $oldlink = "/Users/${USERNAME}/dotfiles/.vimrc"; then
    newlink="/Users/${USERNAME}/dotfiles/.vimrc_bringup"
elif test $oldlink = "/Users/${USERNAME}/dotfiles/.vimrc_bringup"; then
    newlink="/Users/${USERNAME}/dotfiles/.vimrc"
else
fi
ln -sf $newlink ~/.vimrc
echo "changed alias ${oldlink} -> \e[32m${newlink}\e[m"

今日は出発の準備編ということで、これから1つずつ増やして記事も書いていこうと思います。

YAPC::Nagoya::Tiny 2019 に参加しました

2019-11-3に愛知県名古屋市で開催されたYAPC::Nagoya::Tiny 2019に参加してきました。
YAPCとは、プログラミング言語"Perl"を軸とした技術カンファレンスです。 f:id:tomcha0079:20191103102925j:plain:w450

今回は1日だけの縮小版のYAPC。色々な地方のPerlコミュニティを育て、いずれはフルサイズ版YAPCが開催できる様にとのミッションを掲げられて開催とのことです。

名古屋の印象

名古屋は関西からも東京からも新幹線で1時間〜1時間30分あれば到着でき、新幹線の駅が都心部直結なので関西・関東のどちらからも参加しやすい感じでした。
今回は10:30開場、11:00スタートだったので前乗りはせず、朝一番の新幹線で新大阪から名古屋へ向かいました。

本編トーク

技術者ではないので難しいトークは理解して消化までは難したっかです。
その中でazumakuniyukiさんのmakeの話は、makeコマンドを使った事がなかったので色々な自動実行タスク集として使うのが便利そうで、自分もやってみようと思いました。特にgit ammend何やったっけ?は自分でもしょっちゅうあるのでとても共感しました。
また、木本さんのトークの中でも、Linuxコマンドのオプションが覚えられない!との話題もあり、プロのエンジニアの方々も自分と同じ悩み?を持っているのが新鮮でした。
utagawakkさんの多言語使いのPerlについての話は、普段Perl入学式サポーターでは初心者寄りの気持ち担当を自称していながら、「あー、そんなところを疑問に思うのか!」という既に当たり前になっている視点を改めて知ることができてとても刺さりました。

また、ゲストスピーカーの伊奈 林太郎さんの「はてなブックマークの歴史」のトークは、専門知識は分からないながらも、普段使っている巨大サービスも、コツコツと少しずつ改修を積み上げて運用・改修していくんだなーと、サービス改修の歴史の裏側が知ることができ、異業種ながらプロジェクトX的な仕事の話の様でとても面白かったです。

LTでは、八雲アナグラさんのリガ道中記は、なかなか海外カンファレンスと経験する機会はないので、もっともっと長時間でレポート聞きたいLTでした。

ランチタイム

お昼は歩いて名古屋名物味噌煮込みうどんを食べに行きました。熱々で体もホットに温まりました。
f:id:tomcha0079:20191103125106j:plain:w450

懇親会、2次会、3次会

公式の懇親会は焼酎がたくさんある居酒屋さんでした。そして二次会はキャッシュオンのビールのお店、三次会は和民へ。
はてな社の方々や、著名なPerlHackerの方々とご一緒できました。charsbarさんのPerlへの熱い想いがすごく伝わってきてとても印象的でした。微力ながら自分でも出来る事をコミュニティに恩返ししたいなぁと思いました。またhitode909さんご夫妻ともお話もできて楽しかったです。
カンファレンス本編も、その後の懇親会での交流もとても有意義で楽しい1日でした。

名古屋土産

名古屋のお土産は紹介されていたソウルフードを。

これめちゃめちゃ美味しくて、家族からまた名古屋へ行った時に買ってきてと催促されました。寿がきや味噌煮込みうどん、マジおすすめ。

次回YAPC

さて、次のYAPCは2020年3月27日〜28日に開催される京都!

blog.yapcjapan.org

微力ながらお手伝いもさせて頂いております。フルサイズのYAPC、今回Nagoyaへ参加された方も参加できなかった方も一緒に楽しみましょう!今から楽しみですね!

Perl入学式

さて、直近のPerl入学式ですが、2019年11月30日にin大阪は第5回が、in東京は秋開講第1回が開催されます。

perl-entrance-osaka.connpass.com

perl-entrance-tokyo.connpass.com

どちらも興味ある方は参加してみてください!