GCPUG Kyoto#2 でLTしてきた
GCPUG Kyoto#2 でLTをさせていただきました.
タイトルは「GKE 安さの限界へ挑む」ということで,GCP登録時にもらえる300ドルを使ってどうやって安くGKEで遊ぶかという内容で発表してきました.
もともと,このネタは先輩からいただいたもので,個人的にも興味深い内容だったのでこの機会を生かして検証を行いLTとしてまとめてみました.
L7ロードバランサを実現することができず残念でしたが,300ドル以内でKubernetesクラスタを一年間運用できることがわかり,よかったのではないかと思います.
スライド
ところでこのLTの本題の前にあくあたん工房の紹介をさせていただいたのですが,あとで他の参加者の方から「あくあたん工房,知ってるよ」と声をかけていただきうれしかったです.
これからもイベントなどで知名度を上げながら,メンバーの活躍の機会につながればいいなと思いましたまる.
neovimを入れてみた
きっかけ
neovimはvimより良い(諸説あり)と耳にしたのでとりあえず試してみようと思いました.
ちなみに普段使ってるのはIntelliJ(Ultimateも学生はタダ!学生最高!!).
環境
参考
こちらの記事を参考にさせていただきました.感謝.
neovimをインストールする
公式ページを見ながらやっていきます.
sudo apt update sudo apt-get install software-properties-common sudo add-apt-repository ppa:neovim-ppa/stable sudo apt-get update sudo apt-get install neovim
シェルを再読込してnvim --version
がうまく機能すれば成功です.
python用ライブラリを入れる
普段利用している,pyenvを利用してpythonの任意のバージョンのインストールします(ここでは2.7.15と3.7.1).
pyenv isntall 2.7.15 3.7.1
pyenv global 2.7.15 3.7.1
# pyenv-virtualenvを利用する場合
pyenv isntall 2.7.15 3.7.1
pyenv virtualenv 2.7.15 neovim2
pyenv virtualenv 3.7.1 neovim3
pyenv global neovim2 neovim3
neovimのpython用ライブラリをインストールします.
pip install --upgrade neovim pip3 install --upgrade neovim
設定ファイルをつくる
環境変数を設定します.自分はfish使いなのでconfig.fish
に以下を追加します.
set -x XDG_CONFIG_HOME $HOME/.config set -x XDG_CACHE_HOME $HOME/.cache
設定ファイルを作成します.
mkdir ~/.config/nvim touch ~/.config/nvim/init.vim
aliasを設定する.
config.fish
に追加します
alias vi 'nvim' alias vim 'nvim'
プラグインを管理する
プラグイン管理はdein.vim
一択のようなのでそれを使っていきたいと思います.
我に暗黒の力を!!!
インストール
READMEを見ながらやっていきます.インストール先はREADMEの記述通り,~./cache
にしました.
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh sh ./installer.sh ~/.cache/dein # install.shを消しとく rm installer.sh
tomlに記述していく
init.vimに設定を追記
さっき手に入れた暗黒の力を解放するためにinit.vim
に設定を記述します.
" ============== dein ================= " Pythonインタプリタへのパスを指定 let g:python3_host_prog = '/home/shanpu/.anyenv/envs/pyenv/shims/python3' let g:python_host_prog = '/home/shanpu/.anyenv/envs/pyenv/shims/python' " 各種ファイルへのパス let s:dein_cache_dir = $XDG_CACHE_HOME . '/dein' let s:dein_config_dir = $XDG_CONFIG_HOME . '/nvim' let s:dein_repo_dir = s:dein_cache_dir . '/repos/github.com/Shougo/dein.vim' let s:toml = s:dein_config_dir . '/dein.toml' let s:toml_lazy = s:dein_config_dir . '/dein_lazy.toml' "dein Scripts----------------------------- if &compatible set nocompatible endif " Required: let &runtimepath = s:dein_repo_dir .",". &runtimepath " Required: if dein#load_state(s:dein_cache_dir) call dein#begin(s:dein_cache_dir) " Let dein manage dein " Required: call dein#add(s:dein_repo_dir) " tomlファイルからプラグインのリストをロードしキャッシュする call dein#load_toml(s:toml, {'lazy': 0}) call dein#load_toml(s:toml_lazy, {'lazy': 1}) " 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-------------------------
dein.tomlを編集
~/.config/nvim/dein.toml
に管理するプラグインを記述,インサートモード時に使うなど遅延して読み込むプラグインを~/.config/nvim/dein_lazy.toml
に記述していきます.
どんなプラグインを入れるかは選択肢は無限大ですが,ここでは試しにdein.toml
に適当に記述した例を紹介します.dein_lazy.toml
の内容は割愛しますが(そのうちプラグインの特集記事を書くかもしれない)記法はdein.toml
同様です.
[[plugins]] repo = 'Shougo/dein.vim' [[plugins]] repo = 'Shougo/vimproc.vim' hook_post_update = ''' if dein#util#_is_windows() let cmd = 'tools\\update-dll-mingw' elseif dein#util#_is_cygwin() let cmd = 'make -f make_cygwin.mak' elseif executable('gmake') let cmd = 'gmake' else let cmd = 'make' endif let g:dein#plugin.build = cmd '''
カラースキーム
スキーム探しに以下のサイトが役に立ちます.今回はhybrid
を使ってみることにしました.
さいごに
適当にプラグイン入れたりしたら見た目も使い心地も良くなりました.プラグインの設定が固まってきたら,また記事でも書こうと思います(書くとは言ってない).
なお設定ファイルはGithubで管理しているのでよければ活用してください.
KansaiLTに登壇した
今日はさくらインターネットさんの大阪オフィスで行われたKansaiLTにてLT発表者として登壇させていただきました.
KansaiLT 2nd @さくらインターネット - connpass
LTでは何をテーマに話そうか悩んだのですが,2018年ももう少しで終わるということで,今年ハッカソン等で多く取り組んだチーム開発をテーマにしました.
趣味のチーム開発においてGitHubのルールはどの程度厳しく設定すべきなのか,自分の経験に基づいた独断と偏見で自由に語らさせていただきました.笑
スライド↓
最後の結果発表ではなんと「ベスト オブ プレゼンター賞」をいただきました!
驚きすぎて,前に出たときに何も面白いことを言えませんでした...
KansaiLTは今回が初めての参加でしたが,運営の方が親切で雰囲気もよく,とてもよいイベントでした.また日程が合えば参加させていただきたいなと思います.
Kubernetesを勉強してきた
先日,CyberAgentさん主催のインターンイベントで,Kubernetes完全ガイドの著者である青山さんによるk8sハンズオンを受けてきました.k8sは前々から気になっていたもののなかなか手を出せずにいたので,このような機会に恵まれてとてもうれしかったです.
当日はGKE上のクラスタをもらって,CKAD(Certified Kubernetes Application Developer)の問題を解けるレベルを目標に始まりました.
ハンズオン中分からないことがあればアドテク本部のエンジニアの方がサポートしてくださり,とても分かりやすかったです.
講義の最後にはCKAD模擬試験があり(問題はこちら),優秀者にはCKADの受験料を全額補助していただける,というなんとも太っ腹な特典がありました(自分は残念ながらその特典を得られず…).
同年代のエンジニアとも,いろいろ話すことができ,とても刺激的で充実した二日間でした.
今度はkubernetesのラズパイ包みに挑戦したい…
AdventなCalendarに記事を載せていただいた
自分の所属しているあくあたん工房のアドベントカレンダーに記事を載せていただきました.
タイトルは「ハッカソンを攻略する」ということでハッカソンについて書きました. 参加経験のある人だけでなく,ハッカソンて実際何をするのかわからない,なんかつらそうという理由でためらっている人も一度読んでいただけたらなと思います.
周りのハッカソン人口を増やしたい
自作キーボードの沼に突っ込んだ
きっかけ
先輩の使っていたMint60というキーボードに一目ぼれして気が付いたらポチっていました.
Mint60とは
ゆかりさんという方が販売されている左右分離型のキーボードです.詳しくは以下のリンク先の記事を見ていただければと思います.自分は普段電子工作をしないド素人なのですが,販売されているスターターセットはとても組み立てやすく非常に良かったです.
自分はBlue&Blackを選んだのですが,とてつもなくかっこいい…
組み立てについて
基本的にはゆかりさんの記事に従って組み立てれば完成しますが,個人的に注意するところとしては
- ProMicro用ピンヘッダが少しずれるだけでProMicroがはまりにくくなる
- スタビライザのカチャカチャ音がわりと気になる
というところです.
一つ目については公式記事ではブレッドボードを使用した方法が紹介されていますが,僕は持っていなかったのでマスキングテープで固定したところ少しずれてしまいあとで苦労しました… はんだ付けする前にきちんとProMicroがはまるのか確認することをお勧めします.
二つ目のカチャカチャ音についてはsuper lube(こちら)をスタビライザを組み立てるときにパーツの接着面塗ったところ,音も打感もとてもよくなったのでお勧めです.
キーマップを変更したい
Mint60ではあらかじめデフォルトのファームウェアが焼かれているためにそのままでも使えるのですが,せっかくなのでキーマップも自分好みに変えてみたいと思います.
環境
- Windows 10pro ver.1803
- Docker version 18.06.1-ce, build e68fc7a
- qmk_toolbox 0.0.9
実際にやってみる
今回は以下の記事を参考にさせていただきながら,dockerでビルドする方法でいこうと思います(windowsは何かと環境の問題でつまづきがちなので環境依存を減らしたい…).
流れとしては以下のようになります.
QMK Firmwareの公式ページはこちらです.
QMK Firmwareのリポジトリをクローンする
自分の場合は変更したあとリモートリポジトリにも保存しておきたかったのでフォークしました.
git clone https://github.com/qmk/qmk_firmware
自分好みにキーマップを変更する
cd qmk_firmware # {{ KEYMAP_NAME }}のところは好きな名前を入力してください. cp -r keyboards/mint60/keymaps/default keyboards/mint60/keymaps/{{ KEYMAP_NAME }}
キーマップについて主に変更するのはkeymap.c
の38行目からのconst uint16_t PROGMEM keymaps
の部分です.添え字の[0]や[1]はレイヤー番号で[1]の部分はMO(1)キー(Fnキーの場所)を押しながら押したときのキーマップです.
キーコードは公式サイトのキーコードのページ(こちら)にまとめられているので確認してみてください.
ビルドする
dockerを使ってビルドします.公式サイトにも書いてありますがWindows Dockerでは$('pwd')
が使えないようなので完全パスで記述します.なお完了したあとコンテナを削除しておいてほしいので--rm
オプションを付けています.
# 通常 docker run --rm -e keymap={{ KEYMAP_NAME }} -e keyboard=mint60 -v $('pwd'):/qmk edasque/qmk_firmware # Windowsはこちら docker run --rm -e keymap={{ KEYMAP_NAME }} -e keyboard=mint60 -v D:/Users/Sacapuces/Documents/Repositories/qmk_firmware:/qmk edasque/qmk_firmware
実行するとビルドが始まります.そこそこ時間がかかるのでコーヒーでも淹れながら待ちましょう.
完了すると.build
ディレクトリ以下にビルドされたファイルが生成されます.
ファームウェアに焼く
qmk_toolboxを使いました.以下のページから任意のバージョンのqmk_toolbox.exe
をインストールします.
qmk_toolbox.exe
実行したあとLocal file
に.hex
ファイルの場所を指定します.
最後にキーボード裏のリセットボタンを押した後にtoolbox内のflash
を押すと書き込まれます.
最後に
肩が開いて楽になった気がする.