tech

Thinkpad X1 Carbon gen 1 にArch Linuxをインストールして趣味の開発環境にした

Debian を中古PCにインストールして使っていたが適当にapt update をしたところ can not open access to console the root account is locked というエラーがでてデスクトップが起動しなくなってしまった。 色々調べてみたものの修復できそうになかったのでO…

GitHub Actions の starter-workflow をNext.js 14 で利用するには注意がいる

Next.jsを利用して作ったページをGitHub Pages にデプロイしようとしたところ、starter-workflow がまだNext.js 14に正式に対応していないらしく手こずったのでまとめます。 アプリケーション自体はNext.js のチュートリアルに従い create-next-app コマンド…

Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案

Go言語にFlakyなテストへのサポートを追加する提案が面白かったので紹介します。 概要 Flakyなテストとは、コードに変更がないにもかかわらずテストが成功したり失敗したりと不安定な実行結果になるテストのことです。 テスト結果は本来なら全て成功ならリリ…

私とNeovimの2023年

2023年は大学院を卒業してアプリケーションエンジニアとして就職しました。 そのアプリケーションエンジニアの重要な福利厚生の一つに毎日テキストエディタを使えるというものがあります。 僕が普段利用しているテキストエディタのNeovimはVimLやLuaを使って…

Go Conference mini 2023 Winter IN KYOTO 参加記録

先日開催された Go Conference mini 2023 Winter IN KYOTO に現地で聴講参加してきました。 Go Conference mini は、プログラミング言語Goに関する地域カンファレンスです。 当日の様子は、Xでハッシュタグ #kyotogo で呟かれているので当日の様子を知りたい…

組み込み用途向けのGo言語のサブセットTinyGoによるM5Stack Basicの制御を試す

この記事ははてなエンジニアアドベントカレンダー 2023の6日目の記事です。 はてなエンジニアのカレンダー | Advent Calendar 2023 - Qiita はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog 6日目の記事は、id:tomato3713 が担当します。 今…

1on1で何を話すか考えてる

僕の所属している株式会社はてなでは定期的に1on1を開催していて、そこではメンターと困りごとであったり悩みだったりの課題発見や解決、成長していくにはどうしたら良いかということを話している。 せっかく時間をとっているので、何かしら課題の相談などを…

Goのトップレベルで定義したエラー変数の命名規則をチェックするリンターを作ってみた

Goのトップレベルで定義したエラー変数の命名規則をチェックするリンターを作ってみた トップレベルで宣言されたエラーの名前を正規表現でチェックするtomato3713/go-varErrChecker というカスタムリンターを作成しました。 Go言語ではカスタムエラーを定義…

NeovimでPerlNavigatorを使えるように設定しました

今後Perlを書くようになっていきそうなので、PerlのLanguage Serverの一つであるPerlNavigatorを利用するためにNeovimでLanguage Server Clientの設定を行いました。 perlnavigatorのインストールは、Language Server自体のパッケージマネージャーである wil…

Goの`zero`識別子追加プロポーザルと導入される仕様について

概要 zero 識別子が追加されることが決まったので該当プロポーザルの spec: add untyped builtin zero · Issue #61372 · golang/go を読んで気になったことや実際の導入予定のzero識別子の仕様についてまとめました。1 提案時の仕様 spec: add untyped built…

技術書の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニックを読んだ記録

「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック を読んでよかったこと試みていることを書きます. 本書では、タイトルの通りに自分に必要な技術書の探し方や読み方、情報共有のテクニックについて書かれています. 技術書…

ddu-column-joplin を作りました

Joplin用のddu.vim sourceとkindプラグインを作りました - tomato3713’s blog でJoplin用のddu.vim sourceとkindを用意しました。 このエントリの時はうまく表示できませんでしたが、新しくTODOの完了、未終了、階層構造をうまく表示するためのddu.vimのUIプ…

.NETのクラスライブラリ設計 改訂新版を読んだ記録 その1

.NETのクラスライブラリ設計 改訂新版 (マイクロソフト関連書) | Krzysztof Cwalina、Jeremy Barton、Brad Abrams, 猪股 健太郎、河合 宜文 (監訳), 藤原 雄介 |本 | 通販 | Amazon をここ2、3ヶ月ほどかけて一応読み終わったので、その時に考えたりしたこと…

Neovimでディレクトリを開いた時に任意のファイラープラグインを起動する設定を楽にするプラグインを作った

この記事は、Vim駅伝の2023/07/14の記事です。 Vim/Neovimには、2020秋 Vim のファイラー系プラグイン比較で紹介されているように様々な特徴を持ったファイラープラグインが開発されてきました。 しかし、好みのファイラープラグインを単純にインストールし…

GitHubのパーマリンクと選択範囲をコードスニペットとしてコピーするキーマップを設定した

開発時のメモを取ったりコードリーディングをする際に該当箇所へのパーマリンクだけではなく関心のある範囲のコードをノートに貼りたい時がありました。 そのための設定をgitlinker.nvimというプラグインと組み合わせて書いてみました。 gitlinker.nvimは、…

Joplin用のddu.vim sourceとkindプラグインを作りました

まとめ ノートアプリであるJoplinのノートやフォルダをVim/NeoVimから操作できるようにするためのddu.vimのsource/kindプラグインを作りました。 github.com github.com 経緯と今後 普段、僕は技術的なメモや記録をJoplinというノートアプリに書いて保存して…

wiki.jsで特定ロケールのページを纏めて消すスクリプトを作った

wiki.jsに他のwikiからデータを移行した時に 日本語以外のロケールのページが大量に作られてしまった。 基本的に日本語のページだけで他の言語のページはあっても検索の邪魔になるだけなので纏めて削除したかった。 都合がいいことに、wiki.jsではGraphQL AP…

個人プロジェクトの失敗と反省

昨年度からインターネットの仲間と進めていた同人ゲーム制作が予定期限を大幅に超えたうえで 製作を中断することになった。 お互い様々な理由から取り組む時間が思うように取れていなかったり、開発に関する知識や経験の不足による作業の進捗が埋められなか…

最近勉強したいと思っていること

最近はまた勉強するやる気がでてきたので今学んでいきたいと思っていることを羅列しておきます. 数年後に,ここに書いた内容の理解を少しでも深められていたいです. 機械学習に代表される学習系 何かプログラムに判断させようと思った時に自分にはまだ決定…

最近作った音声再生コマンドgomuについて

最近作った音声再生コマンドgomuについて この記事は、Go Advent Calendar 2021のカレンダー2の3日目の記事です。 Windowsで音声ファイルを再生しようと思った時にLinuxなら,aplay something.mp3のような感じで雑にターミナル上で再生できますが,Windowsで…

カメラの赤外線コントローラを作った

Nikonのカメラには,赤外線を使ってシャッターを切る機能があります. ML-L3という製品を使用するのが一般的ですが,手元に赤外線LEDが内臓されたM5StickCがあったので,これを使って赤外線コントローラを作ってみました. 赤外線コントローラを作るには,リ…

func Println(a ...interface{}) (n int, err error)の処理を追う

少し前に,Goの標準パッケージにあるfmt.Println()の処理を追った時のメモ.気が向いたら,もっと深くまで読む. wiki.neko-tomato.top

Go言語を選ぶ理由

Go言語を選ぶ理由 最近,Go言語のここが好きだとかここが嫌いだとかいう記事をたくさんみたので,自分の思うGo言語の好きなところを思いつくだけ挙げてみました. エラー処理の流れが追いやすい. エラー発生個所がコードのみから明確に読み取れる.iferrやi…

context.vim

github.com Vimのプラグインに何か面白そうなのないか眺めていてときに見つけたプラグインの紹介です. GitHubのリポジトリにはってあるこのgifのように1画面に収まらない長めのifブロックだったり関数をVimで開いたときに, その冒頭部分をバッファの上部に…

C#でWebDAVサーバとやり取りする方法について

サークルで使用しているソフトウェアで今までは,GoogleDriveからいろんなファイルをダウンロード,アップロードしていましたが,WebDAVサーバからインストーラーを落としてくるようにするために修正をしていました. その時に学習した内容について書きます…

Go言語のEchoで正しいMIMEタイプが設定されない問題の解消方法

LinuxやMacOSでは,問題は起こりませんが, Windows上で,下記のようなコードを実行して,javascriptファイルを返すようにするとブラウザでMIMEタイプがtext/plainに設定されてしまいエラーが発生します. e := echo.New() // assets/js: javascriptファイル…

NyagosをNeoVimのシェルとして設定する

先日のリリースでNyagosがコマンドプロンプトとほぼ互換な-k, -cオプションが実装されました. github.com これにより,nyagos -k "ls -l" のように引用符付きでオプション有のコマンドを実行できるようになりました. (これまでも,nyagos -k ls -l のよう…

WebRadioの改造をしてた

卒論がひと段落したので,M5StickCとSpeakerHatを使ったWebRadioを動かして改造していました. 改造といっても,既存のライブラリなんかであったものを組み合わせただけですが... ESP32でWiFiを利用するコードを見ると,基本的にSSIDとパスワードの組み合…

Nyagosの補完まとめ

Nyagosが公式で提供している補完機能について探した限り纏まったページがなかったため,纏めました. 自前で補完機能をカスタマイズしたい場合には,下記のドキュメントにカスタマイズ用の関数が用意されています. nyagos/07-LuaFunctions_en.md at master …

自作PCをした

最近,UnityやらVisual Studioといった比較的,GPUやCPUの性能が要求されるプログラムを実行することが多くなってきたため,ある程度性能が高いPCが欲しくなった. ちょうどよいことに,以前人からいただいたPCケースや未使用のHDDがある. BTOなどでPCを購…