ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

coc.vimの補完メニューの色を変える

Vim

coc.vimの補完メニューの選択中の色を変更したかったが苦戦したのでここに記す。 補完メニューの色を変えるには:h CocFloatingによるとPmenuが割り当てられていると書いてあったので、選択中の色を示すPmenuSelを変更したが反映されなかった。 " これは反映…

Vimでステータスラインを自作にしたら起動速度倍になった

Vim

vim(nvim)の起動が遅い。由々しき事態なので対処した。 ステータスラインのプラグインをやめて自作にしたら400ms -> 200msに高速化できた。 起動速度の計測 まずは計測せねばならない。こちらの記事を参考にさせていただいた。 https://zenn.dev/uu64/articl…

zshが遅いのはvcs_infoが原因だったので高速化した

zshの起動が遅い。tmuxでパネル分割したときやls打ったあとがもっさりしてきた。 自分のzsh環境はoh-my-zshやpreztoなどは使っていないプレーンなzsh環境だったが、PROMPT表示に用いるvcs_infoが遅かったので改善した。 vcs_info gitやsubversionなどのバー…

Reactでセグメントコントロール作る

にゅるっとした動きのものがなかったので作った。 Next.jsで動くのを目的に作ったので、styled-jsxを利用している。 SegmentControl.tsx import css from 'styled-jsx/css' import { useState, useEffect } from 'react' const styles = css` .controls { di…

30歳になる所感

明日で30歳になる。なんとなく節目の年だと感じる。フレッシュ、青年、新人、などの初々しいイメージからは離れ、徐々にベテラン、おじさんなどという言葉に近づいていくのだろう。 自分が当初思っていたよりも「えっもう30!?」という感覚はない。やっと来た…

Reactのアニメーションライブラリ「framer motion」がすこぶるいい

Reactでアニメーションコンポーネントをサクッと作れるライブラリ「framer motion」。 非常に簡単にアニメーションをつけることができたので伝えたい。 www.framer.com インストール yarn add framer-motion かんたんアニメーション こんなdiv要素を用意して <div style={{ width: '100px', height: '100px', background: 'blue' }}></div>…

shellだけでリッチなTUIアプリが作れる「gum」がすごい

Shell ScriptだけでリッチなTUIアプリが作れるようになる「gum」がかなり良い感じ。 github.com 入力、書き込み、選択、Fuzzy、ローディングなど、TUIアプリに必要なものがサクッと書けるようになる。 インストール go install github.com/charmbracelet/gum…

slack api curlまとめ

チャンネルのメッセージを取得 スレッド内のメッセージを取得 メッセージ送信 メッセージ送信(スレッドにつなげる場合) メッセージ送信(メンションやコードブロックなど凝った文章の場合) メッセージ削除 ファイル送信 まとめ github.com チャンネルのメッセ…

Azure FunctionsでGolangを動かす

Go

Azure FunctionsのカスタムハンドラーでGolangを動かしてみた。最終的なリポジトリは下記。 github.com HTTPトリガー Timerトリガー を試してみた。 公式リファレンス docs.microsoft.com docs.microsoft.com 前提 ローカルでの動作確認のため、funcコマンド…

Azure App Service と GitHub Actions で Pull Request のプレビュー環境を自動で作成する

Pull Requestを作成したときにプレビュー用の環境を自動で作成してくれるGithub Actionsを作った。 PR作成時にプレビュー用のURL発行 こんな感じでプレビューURLを発行してくれて実際に動作確認ができるようになっている。 ローカルにブランチをpullしなくて…

10年もののシステムをPHP・Twig・jQuery・BootstrapからNext.jsにリプレイスするときにやったこと

Twig, jQuery, Bootstrap で構成されていたシステムをNext.jsでリプレイスしたときにやったことを書く。 前提 IE対応必須 ディレクトリ設計 github.com を参考にした。 ユニットテスト用の__test__は基本的に作らず、format.tsとformat.test.tsは同じ階層に…

Next.jsでバリデーションするなら「Ajv」がいい感じ

ajvはNode.jsとブラウザ用のバリデーションライブラリ。 Typescriptで利用できるバリデーションライブラリといえば、yup, zod, joiあたりが候補に上がるが、ajvを採用した。 理由はバックエンド・クライアント両方で使えること、スキーマファイルを使えるこ…

tree-sitter導入したメモ

エラーが出る `tree-sitter` executable not found (parser generator, only needed for :TSInstallFromGrammar, not required for :TSInstall) 最新のneovimをインストールすれば直る brew upgrade neovim --fetch-HEAD tree-sitterの設定確認 :checkhealth…

Next.jsのoutputStandalone:trueで、pages/_middleware.ts があるとビルドに失敗するのはnext@12.0.10に上げたら直る

Docker イメージを軽くするための設定でoutputStandalone: trueにしていた。 module.exports = { experimental: { outputStandalone: true, }, しかしpages/_middleware.tsがあると下記のエラーが出てnext buildに失敗する。 > Build error occurred [Error:…

ビットコインがGithubで管理されてるってまじ?エンジニアには圧倒的アドバンテージが仮想通貨にはあった件。

俺は仮想通貨のことを何もわかっていなかったのかもしれない。 今日は仮想通貨について衝撃的だったことを書いていく。 ビットコインはGithubで管理されてるってまじ? マジ。 github.com てかなんならビットコインだけじゃなくてイーサリアムとか他の仮想通…

2021年振り返り

今までの振り返り 2019年振り返り 2020年振り返り ハイライト 転職をした 子供が1歳になった 幸福度が突き抜けて人生アガった。オツカレシタッ!! 今年はどんな年だったか 幸福とはなんなのかを真剣に考え、幸せになるための行動ができた年だった。 幸福論、資本主義…

Floating Windowの変態的な使い方

Vim

これはVim Advent Calendar 2021の14日目の記事です。 NeovimにFloating Windowが実装されて以来、様々なプラグインが開発、リプレイスされてきました。 有名所でいうとgit-messenger.vimでしょうか。Floating Windowの良い使い方だなあと感動した覚えがあり…

今月のコミット一覧を出す

GithubでsinceとuntilをURLにつければ検索できるんだな、知らんかった。 https://github.com/Rasukarusan/dotfiles/commits?author=Rasukarusan&since=2021-11-01&until=2021-11-30 コマンドだとこう git log --after '2021/11/01' --before '2021/11/30' 差…

俺がエンジニアとして作りたかったのは「治療薬」だったがしかし。

「君のプロダクトはビタミン剤か?鎮痛剤か?それとも治療薬か?」という記事を読んだ。 blog.btrax.com 記事で紹介されている「ビタミン剤」「鎮痛剤」「治療薬」のプロダクト例は下記。 ビタミン剤:YouTube, Facebook, Tiktok 鎮痛剤:Slack, Zoom, Sales…

VimでmessagesやhighlightなどのExコマンドの結果を別タブで開く

Vim

:tabe :put = execute('messages') めちゃくちゃシンプル。 今まで下記のようなredirを利用した関数を作って実行していたけど、完全に不要だった。 function! s:show_ex_result(cmd) redir => message silent execute a:cmd redir END if empty(message) ech…

macOSでneovimをbuildするとき「ninja: error: loading 'build.ninja': No such file or directory」のエラーが出る

Vim

.depsファイルが邪魔しているのでそれを削除するとbuildできるようになる。 cd neovim sudo rm -rf .deps sudo rm -rf build # buildも一応消しておく buildし直す sudo make CMAKE_INSTALL_PREFIX=$HOME/neovim/nvim install 環境 macOS BigSur 11.23 neovi…

Voicyに出演した

voicy.jp voicy.jp めちゃくちゃ緊張したし全然思った通りに話せなかったけど、オーナーの圧倒的まとめ力によって救われた。 出演して初めて知ったことは、収録はプレゼンや講演、講義をやるのとはまた全然違う緊張感があるということ。 院生時代は毎週教授…

【Neovim】好きな位置にテキストを埋め込んだりハイライトできる「ExtMark」の使い方

Vim

ExtMarkとは 指定した行、列にマーカーをセットできる。セットしたマーカー(位置)に好きな文字列を表示したり、ハイライトできたりする。 テキストの変更を追跡して表示できるので、インデント幅の表示やスペルミスを表すために使われたりする。 ヘルプは:h …

Mac専用sipsコマンドで、画像に枠線をサクッとつける

Mac標準搭載のコマンドでsipsコマンドがある。画像情報を取得したり付与したりできる。 画像のコマンドといえばimagemagickだが、imagemagickよりも少ないオプションで、かつ直感的に実行できるのがsipsコマンドの良いところ。brew等で別途インストールしな…

Sequel AceをApplescriptで操作する

以前Sequel ProをApplescriptで操作するのはやっていたが、昨今はSequel Aceを使うようになった。 Sequel ProとAceではFavorite.plistのPATHやUIの配置などがいくつか異なっていたため、それをまとめたい。 スクリプト まずどういったスクリプトなのかを載せ…

webpack × SentryでSourceMapが読み込まれないときの解決法

ソースマップが読み込まれなくて困ったときの解決方法を書いていくで。 ・releaseタグをinit時にも書いてないか ・urlPrefixをつけているか ...

カーソル下の関数だけ実行できるVimスクリプトを作った

Vim

vimでshellスクリプトを書いてるとき、ある関数だけ実行したい、ってのがよくある。そのとき毎回コメントアウトしていたのが面倒であった。例えば下記のような場合。 main() { echo 'main' } main2() { echo 'main2' } main # main2 # mainだけ実行したいの…

React, TypescriptでChrome Extensionを開発する(ホットリロード対応)

死ぬほど参考にさせていただいたサイト 基本的には下記のサイトを参考に進めればいけます。(最高の記事ありがとうございます、大感謝祭) code-log.hatenablog.com 本記事では上記で紹介されていたホットリロードがエラーで動かなかったため、別の方法でホッ…

M1MacBook、VimのquickrunでC#の実行環境を整える

知人がC#をやり始めて、教えてくれと言われたのでとりあえず開発環境を整えてみた。 環境 M1 MacBookAir Neovim >= 0.5 brew install monoができない arm版だとダメ的な問題でエラーが出てインストールできないので、Visual Studioから引っ張ってくるやり方…

M1 MacでNeovimをBuildする

Vim

NevimのBuild手順が少しわかりづらかったのでまとめておく。 環境 M1 MacBookAir(Big Sur) 事前準備 brew install cmake 手順 Homebrewでインストールしたnvimを上書きする場合 git clone https://github.com/neovim/neovim.git cd neovim make CMAKE_BUILD_…