2023-01-01から1年間の記事一覧
ずっとgit logの内容を検索するときに-Sオプションを使っていたが、実は近いオプションに-Gオプションもあり、探したい内容によっては使い分けないとダメということを初めて知った... 詳しくはhttps://git-scm.com/docs/git-logの-Sと-Gのドキュメントを見て…
あるファイルが最近どの程度の頻度で更新されたのか、マージコミット単位(≒PullRequest単位)で調べたいことがあった。git logのコマンドを使ったら簡単に調べられたのでメモ。 たとえば1年以内に https://github.com/x-motemen/ghq のレポジトリで .github/ …
エッセンシャル思考 最少の時間で成果を最大にする作者:グレッグ・マキューンかんき出版Amazon 自分がなんでもやりたいタイプなので、この本に書いてあることは中々刺さった。幸福になるには「より少なく、しかしより良く」を追求すべきという本。プライベー…
会社の振り返りで「エンジニアリングの作業タスクがうまく分割できていそうだったが、その知見を共有してほしい」と言われたので、自分がどう考えてタスク分割をしているかをこの記事で共有したい。 この記事のスコープとすること・しないこと タスク分割を…
Goでどのパッケージが再コンパイル予定か確認する - $shibayu36->blog;の続き。前回は大体のコンパイル計画を知る形だったが、今度は実際にどのpackageがコンパイルされたかを確認する方法についてメモ。 まずgoのコマンドは-xオプションを使うことで実行さ…
build cacheがうまく使えているかを調べる必要があり、どのパッケージが再コンパイル予定かを確認するコマンドを調べたのでメモ。ちょっと自信がない部分もあるので間違っているところがあったら教えてください。 先に結論から言うと、go listを使った以下の…
あるディレクトリ以下で特定のパターンにヒットする行を全て削除する - $shibayu36->blog;に引き続き、やり方を模索してみた。 たとえばgolangを使っていて、ある処理をt.Cleanupに寄せたので対応するdeferを全部消したい時がある。 // StartHogeHelperの中…
良いテストケースの作成手法を学ぶ - 「はじめて学ぶソフトウェアのテスト技法」を読んだ - $shibayu36->blog;に引き続き、ソフトウェアテストの知識について言語化を進めたいと考え、「単体テストの考え方、使い方」を読んだ。 単体テストの考え方/使い方作…
ソフトウェアテストに関する知識をもう少し言語化したいなと思い、「はじめて学ぶソフトウェアのテスト技法」を読んだ。 はじめて学ぶソフトウェアのテスト技法作者:リー コープランド日経BPAmazon この本では主に良いテストケースの作成手法について学べた…
PRです。妻が書いた「めんどくさがりやの自分の機嫌を取る暮らし」が本日発売されました。 めんどくさがりやの自分の機嫌を取る暮らし (BAMBOO ESSAY SELECTION)作者:てらい まき竹書房Amazon 僕から見ても、妻はめんどくさがりやなのに「こんな生活がしたい…
あるstruct構造の中のdbというタグの内容に何が含まれているかをすべて取得したい時があったため。 たとえばこういう構造があったとして type Timestamp struct { CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` } type Json…
最近趣味でMQTTブローカーの実装をしてみている。その中でトライ木を使うとトピックフィルターによる購読の実装を簡単に行えるというのが面白かったのでブログにしておく。 なおトライ木はHTTP Routerの実装にも使われることがあり、そういう点でも一度実装…
clusterのリアルタイム通信サーバーの漸進的な進化 - Cluster Tech Blogを見て、リアルタイム通信の仕組みに興味を持った。しかし、MQTTプロトコルは使ったことがなく、どのようなプロトコルなのか、何がそんなに効率的なのか、なぜIoTなどでよく使われるの…
GitHub Copilotについて調べていたときに見た Research: quantifying GitHub Copilot’s impact on developer productivity and happiness - The GitHub Blog の記事の中で、開発生産性を測るSPACEフレームワークを使って計測しているのを見かけた。SPACEフレ…
MySQL即効クエリチューニング ThinkIT Books作者:yoku0825インプレスAmazon 最近クエリチューニングの仕事があったので、少し深めに知ろうと読んだ。 MySQLの内部構造がどうなっているかは置いておいて、どうすればクエリの問題を把握できるかが素早く知れる…
タイムライン的なものをSELECTだけで実装しようと思った時に、Nested LoopなクエリでUsing temporary; Using filesortが出るようなそこそこ遅いクエリになる。その時にMySQLがインデックスをどう辿っているかを知りたかったので調べてみた。MySQLバージョン…
A Tour of Goが終わり、もう少しGo自体の深掘りをしたいためGoの書籍をいくつか読んでみたのでメモ。今回読んだ書籍は以下の三冊。 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス作者:渋川 よしき,辻 大志郎,真野 隼記オライリージャパンAmazo…
例えばgolangを使っていて、ある処理をt.Cleanupに寄せたので対応するdeferを全部消したい時がある。 defer hogeHelper.Close() 単純に上のように特定のパターンにヒットする行を全て削除したいということであれば、findとsedを使うだけで出来る。Macの場合…
2023/07/01よりクラスター株式会社に入社しました。 corp.cluster.mu 今回もいくつかオファーをもらったが、次の理由からクラスター株式会社へ決めた。 とにかくクリエイターを応援したい 社内にもクリエイター気質の人が多そうだ リアルタイム通信サーバー…
Gitで開発していて、あるサブディレクトリ以下を別のレポジトリに移行したいと思うことがある。今回はそういうことをしてみたのでメモ。 まずGitHubにそのようなやり方の指南がある(Splitting a subfolder out into a new repository - GitHub Docs)。大体…
最近やっている健康維持活動(身体面・精神面両方)で、「寝る前に今日出来たこと3つを頭の中で考える」ということをしている。これが結構良いので共有してみる。 まず大前提として、自分は物事を悲観的に捉えることが多い性格である。悲観的に捉える性格は…
OpenAI APIで英会話LINE Botを作る with Hono + Cloudflare Workers + Queues + D1 - $shibayu36->blog; を書いたら、id:mechairoi さんからwaitUntilが使えるんではと教えてもらった。確かにwaitUntilで書き直せればQueues依存がなくせるため、コンポーネン…
Cloudflare Worker + D1 + Hono + OpenAIでLINE Botを作るを見て、Cloudflare Workersに興味を持った。そこでLINEで英会話や添削ができるbotを作ってみた。 作ったもの こんな形で英会話をしたり、英作文テーマを作ってくれたり、添削をしてくれたりする。 …
LLM、GPT界隈を追いかけていて、GPTの仕組みと限界についての考察(2.1) - conceptualizationという記事を見かけた。これを見たとき、「どういうことか全然理解できない」という気持ちになった。また、その他LLMの解説記事を理解できないことが多く、自分の…
長い文章を読むときに一旦要約を読んでから中身を深く読みたい時がある。そのような時にChatGPTを使って要約できると便利だ。しかしGPT-3.5を利用しているとトークン数上限は4096であり、大体4000文字を超えた文章を要約しようとするとエラーとなってしまう…
いろんな人がサンプルコードを上げているけど自分も理解するためにお試しした。 動作の雰囲気 コード chat_example.py from functools import reduce import os import openai import tiktoken openai.api_key = os.environ["OPENAI_API_KEY"] encoding = ti…
chat-hatenablogをpip installでインストール可能にした - $shibayu36->blog; にて、pip installで直接CLIツールをインストールできるようにした。 pip install git+https://github.com/shibayu36/chat-hatenablog.git この時に調べたことをメモしておく。 …
chat-hatenablogをpip installでインストール可能にした - $shibayu36->blog;にてchat-hatenablogをpip installできるようにするとき、ユーザー設定ファイルやデータをどこに配置するかに迷った。このツールでは、環境変数の設定として.envファイルを、ブロ…
https://github.com/shibayu36/chat-hatenablog/releases/tag/v0.3.0 chat-hatenablog v0.3.0にてchat-hatenablogをpip installできるようにした。以下のようにすれば、GitHubから直接コマンドをインストールできる。 pip install git+https://github.com/sh…
ChatGPTを使って自分のはてなブログとチャットするツールを作った - $shibayu36->blog;で紹介したchat-hatenablogのv0.2.1をリリースした。 リリース内容 https://github.com/shibayu36/chat-hatenablog/releases/tag/v0.2.0 https://github.com/shibayu36/c…