サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆議院選挙2026
blog.inorinrinrin.com
Devinの新たな機能として Devin Reviewというレビュー機能がリリースされた。 cognition.ai 上記のブログを読んでみると、Public リポジトリのPRの場合であれば、URLをhttps://github.com/org/repo/pull/123 からhttps://devinreview.com/org/repo/pull/123のように書き換えるだけで利用できるらしい。 というわけでちょうどOSSに出していたPRを使って色々と試してみたことをメモする。 いろいろ試してみる レビュー開始 URLを書き換えてDevin Reviewへ飛んでいく。基本的にファーストビューではDevin Reviewの情報が表示される。タブを切り替えることでGitHub上でのコメントなどを確認することも可能。 1,2分待つとレビューが終わり、いろいろと確認できるようになる。 PRの概
タイトルの通り。ライトテーマとダークテーマの2種類をはてなテーマストアに公開した。 blog.hatena.ne.jp blog.hatena.ne.jp テーマストアにはデモページを掲載している。が、このブログのスタイル自体が「Git Style」のライトテーマなので、このブログを見るのが一番いいと思う。ちなみにライトもダークもレスポンシブに対応している。 元ネタ git-scm.com Gitの公式サイト。フォントと背景色、フォントカラーなどを参考にしている。ページのレイアウト自体など左記以外は、はてなさんが公開してくださっているboilerplateからほぼ変えていない。 モチベーション 元々は公式テーマのSmoothを使っていた。Smoothは洗練されていてすごくいいテーマだと思うんだけど、細かいところで自分好みに変えたいということと、Gitの公式サイトがかっこいいのでそれに寄せた
この記事はHono Advent Calendar 2025 最終日の記事です。今回は自分が作ったeslint-pluginについて書く。とりあえず作ったものを見て!!そしてLGTMならStarください!!! github.com きっかけ Honoは非常に柔軟で軽量なWebフレームワークだけど、自由度が高いゆえにチーム開発や規模が大きくなった際にコードの書き方が統一されにくいという課題に直面することがある。特にAIにコーディングをさせているとこの傾向は顕著だ。これは自分がHono Conference 2025での発表内容で登場したプロジェクトを進めているときの経験談からきている*1。 そこで思いついたのがESLintでガードレールを設けること。 そして自作する前にさらっと調べてみたところ、まだ誰かが作って世界に公開している様子はなさげ。ってことで「お、自分で作るか」となった。 インスト
最近、いくつかのライブラリをnpmに公開した。公開したものは以下。是非使ってみてissueなりPRなり送ってほしい。 github.com github.com ところで、ローカルからnpmにライブラリを公開する場合、基本的に以下のコマンドを叩けば良い。 npm login npm publish これで少なくともライブラリは公開することができる。けど、npmに限らずどこかしらのレジストリに作ったライブラリを公開する場合、バージョン管理がとても重要になる。今回初めてnpmにライブラリを公開してみて、npm versionを使いこなせた方がいいことがわかった。 そんなわけで、このエントリではnpm versionの便利な機能をつらつらと書いていく。 Gitタグを自動生成してくれる npm version はバージョン変更のコミットと、そのバージョン番号の Git タグ(例: v0.1.0)を
Commander.jsはJS/TS向けのCLI作成キットだ。 github.com こういう感じでCLIに必要な要素をガリガリと定義していける。 const { program } = require('commander'); program .option('--first') .option('-s, --separator <char>') .argument('<string>'); program.parse(); const options = program.opts(); const limit = options.first ? 1 : undefined; console.log(program.args[0].split(options.separator, limit)); なんでCommander.jsに目がいったのか? 最近Hono CLIをずっと見ているか
TSKaigi Hokurikuの登壇資料です 自己紹介 github.com npx deno run jsr:@ysknsid25/whois 補足 以下では UnJS製ライブラリ citty 入門 として、モダンで型安全なCLIを最速でつくるチュートリアルを提供する。 cittyとは unjs.io Nitroとかh3とかいろいろいい感じのライブラリを作ってるUnJSのライブラリの一つ。いい感じにCLIツールを作れる。 準備 npm install citty 公式のサンプルソースを拝借。 import { defineCommand, runMain } from "citty"; const main = defineCommand({ meta: { name: "hello", version: "1.0.0", description: "My Awesome CLI Ap
Kotlin Fest 2025の登壇資料です 以下補足 はんずおんExposed ExposedはKotlin向けに作られたJetBrains社製のORM。Ktor×Exposedでのバックエンドアプリケーションの導入事例はほとんど見られず、Exposedに関するノウハウがあまり出回っていない印象がある。 事実、プロシージャやらファンクションやらcaseやら複雑なサブクエリやらを使ったSQLをExposedに移植しようとした際に非常に困った。なぜなら、この辺のノウハウは当時のExposed Wikiにはしっかり書かれておらず、ソースコードを解析するしかなかったので。 とまあそんな悲しい歴史を繰り返さないために執筆した本がこちら。 techbookfest.org iolite github.com 日付、メールアドレス、IPアドレスなど仕様が必ず決まっていて、かつ世界のいろんな場所で繰り
Hono Conference 2025 での登壇資料です。
転職先でGoをやるって聞いてたので有給消化中に『初めてのGo言語』を読んでいた。 初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド 作者:Jon BodnerオライリージャパンAmazon けどそれよりも先にA Tour of Goをやっとくのが正解だった*1。書籍自体はGo言語の仕様について詳しく書かれていてめっちゃいい本なんだけど、100%僕の頭と書籍の使い方が悪かった。 go-tour-jp.appspot.com 「Goの基本完全に理解した」状態で『初めてのGo言語』はもう一回読むことにする。それはそれでより理解が深まりそう。 A Tour of Go についての簡単な説明 左にチュートリアル、右にコーディングエディタがあるUIになっている。トピックスごとにベースのコードを用意してくれていて、ガチャガチャ手元で書き換えて、フォーマットして、実行
先日のAtCoder Beginner Contest 424でようやく入緑することができた。足掛け3年。長い道のりだった。言語はPython*1。 とりあえず祝ってほしいので先に干し芋を貼っておく。記事執筆時点であと2人で読者が100人になるので、お祝いに読者になってくれるとめちゃくちゃ嬉しい。 www.amazon.jp アルゴリズム部門での緑色以上の人数割合は レーティングのしくみ - AtCoderInfo によると2023 年時点で 7.86 % 程度。全体だと15.48%に入るらしい。 色ごとの絶対的な実力はchokudaiさんのエントリによるとこんな感じ。 印象としては、 学生ならかなり優秀。 エンジニアとしてもある程度の安心感がある。論理的に複雑な処理の実装に対応できない、なんてことはなさそう、くらいには思える。データ量が多い現場など、計算量の多い処理が要求される現場でなけ
ここでいう壁打ちとはテニスやバレーボールなどにおける練習方法のことではなく、思考整理の文脈における壁打ちである。 自分がこれから話そうとしている「壁打ちとは」について簡単に整理しておくと、 問題解決において、解決方法のとっかかりを得るためのコミュニケーション 相手に答えや解決策を求めるのではなく自分の考えやアイデア、思ってることなどをひたすら思いつくままに話す 相手には適度に相槌を打ってもらったり、意見などを出してもらう これを繰り返すうちに自分自身で気づきや整理が進む 感じのことを指す。 今回は自分が壁打ちをする側として気をつけていることなどを書く*1。 とにかくたくさん打つ。そのためにボールを準備する 壁打ちでは、とにかくたくさんボールを打つことが大事だと思っている。 そのためには簡単な準備段階をしておくのが良い。その時点で自分が思っていることや考えていることを5~10分と時間を決めて
デブサミ関西が今年も堺筋本町で開催される。 event.shoeisha.jp 堺筋本町には新卒の頃から5年ほど通っていて、会場近辺にもいくつかお気に入りのお店があるので紹介する。*1。 いっしん tabelog.com たぶん5年間で一番行った。ランチで提供されるチキン南蛮定食がとにかくおすすめ。変わってなければ、温泉卵が食べ放題のはず。夜の利用もおすすめ。 中国料理 晴華 tabelog.com 個人的にここの酢豚は今まで食べた酢豚のなかで一番おいしい。 峰のうどん tabelog.com 大阪なんだけど福岡うどんのお店。なぜか堺筋本町はうどんのお店がやたら多い。 うどん×酒場 第六感 tabelog.com 飲み(夜)で使ったことはないけど、食べログを見ると飲みのお客さんも多いのかな。値段に対してうどんの量がとにかく多い。 麺屋 はなぶさ tabelog.com 鶏そばがオーソドック
最近pnpmのドキュメントを眺めていたんだけど、そこでよく知らない依存関係の種類が出てきた。いまさら人に聞くのは恥ずかしいと思ったので、理解したことをまとめてアウトプットしておく。 そもそも依存関係とは? package-lock.jsonとは? といった話は理解できている前提で書く。 dependencies / devDependencies 最も基本となる依存関係。npm installするとdependenciesに書かれたものは全てインストールされることになる。 なので、本番環境で使うものしかここには入れてはいけない。「ではそれ以外のものはどこにいれるのか?」となるが、基本的にはdevDependenciesとなる。 この話自体はいろんな記事やカンファレンスのトークで擦られ続けているので、もうお腹いっぱい感がある。 一応書くと、devDependenciesにインストールするには
コミュニケーションで1番重要なことはなんだろう? 「自分が何を伝えたか?」は大前提として「相手に何が伝わったか?」ではないだろうか。なので、「前にも言ったけど」を言ってしまうとき、往々にしてこの原則が守られていない。 かのアイルランドの劇作家、バーナード・ショーは「コミュニケーションにおける最大の問題は、それが達成されたという幻想である」という言葉を残している。 「前にも言ったけど」という枕詞は相手にストレスをかけるだけだ。本質であるコミュニケーションの改善には寄与しない。むしろ悪化させるだけだ。日常的に発していることに心当たりがあるのなら、そのスタンスを見直す必要がある。 そのために心がけていることを話す。 自分の心の持ち方を変える 「前にも言ったけど」と言いたくなるのは、相手が覚えていないことへの苛立ちや、自分の説明コストが重なっていると感じているからだ。この感情とうまく付き合うために
2025年8月26日、JavaScriptエコシステムで最も広く使用されているビルドツールの一つであるNxにおいて、複数の悪意のあるバージョンが攻撃者によって公開されてしまったことが話題になった。 socket.dev github.com 攻撃の概要 簡単に説明すると、 攻撃者が悪意のあるコードを含むNxライブラリを作成 Nx公式のnpmトークンを盗む 攻撃者がNx公式になり代わり、あたかも公式リリースかのように悪意のあるコードを含む最新バージョンを公開 利用者が最新版をダウンロードすることで、悪意のあるコードが実行される という感じだ。攻撃の影響や詳しい流れは本記事の守備範囲外のため、NotebookLMに簡潔にまとめてもらった内容を記載する。 1. GitHub Actionsワークフローの脆弱性悪用 攻撃者は pull_request_target トリガーを持つワークフローのBa
流行りの(?)NFCキーホルダー制作のスライドや記事を見た。NFCタグに自分の好きなURLを書き込んでおいて、交流の場で自分のポートフォリオなどを手軽にシェアするというものだ。既存の有料サービスだとプレーリーカードなどがある。 speakerdeck.com zenn.dev 「めちゃくちゃいいやん!」と思ったものの、鞄につけてると懇親会の場とかでは持ち歩いていない。かといってキーホルダーだけ持ち歩くのもそれはそれでおかしな感じ。スマホストラップにキーホルダーをつけてもいいけど、普段使いの時には邪魔に感じてる時間が多そう。文字通りキーホルダーとして鍵につけても、懇親会のときにわざわざ鍵を持ち出したくない。落としそう。 ということで自分なりに出した結論が表題の通りである。 町民ステッカー裏の"町"と"民"の間にNFCタグがある スマホとステッカーの間にNFCタグを挟んでスマホケースで密封*1
Google Cloud Next 25で8/6まで東京に滞在することは確定してたんだけど、8/8も妻が横浜でやるたべっこどうぶつ展に一緒に行きたいとのことで、中日の8/7も東京に宿をとることにした。 けどなにも用事なく東京で過ごすのは勿体無いので、なら日本全国旅行マップを埋めようかということで山梨・富山を目的地に据えた旅行に行ってきた。 これで日本の約2/3は制覇できた。余談だが長野はスキーで何度か行ってるので、初上陸ではない。 旅程 宿は秋葉原にとっていたので、まず新宿まで移動しそこから山梨を目指す。次に松本・長野を経由して富山へ入るルートをとった。タイムラインはこんな感じ。 10:30 -> 12:01 新宿 -> 石和温泉 12:34 -> 12:41 石和温泉 -> 甲府 14:27 -> 16:56 甲府 -> 長野 18:09 -> 19:12 長野 -> 富山 21:23
日本時間で昨日の深夜にZod v4に関するchangelogが公開された。 v4.zod.dev うっきうきで見に行ったが、かなり破壊的な変更が入ろうとしている。 deprecates .email() etc https://v4.zod.dev/v4/changelog#zstring-updates 元々z.string().email()のようにかけていたこれらは、z.email();と呼び出すように変更される。 現行のz.string().email()らに関しては、 The method forms (z.string().email()) still exist and work as before, but are now deprecated. They may be removed in a future version. z.string().email()はまだ存在
最近pnpmのドキュメントを眺めていたんだけど、そこでよく知らない依存関係の種類が出てきた。なので、理解したことをまとめてアウトプットしておく。 そもそも依存関係とは? package-lock.jsonとは? といった話は理解できている前提で書く。 dependencies 最も基本となる依存関係。npm installするとdependenciesに書かれたものは全てインストールされることになる。 なので、本番環境で使うものしかここには入れてはいけない。 devDependencies 「dependenciesには本番環境で使うものしかいれてはいけない」と上で話した。「ではそれ以外のものはどこにいれるのか?」となるが、その答えがここ。 繰り返しだがこの話自体はいろんな記事やカンファレンスのトークで擦られ続けているので、もうお腹いっぱい感がある。 一応書くと、devDependenci
cittyを使ってみたところめっちゃ良かったのでメモがてらエントリを書く。 citty unjs.io Nitroとかh3とかいろいろいい感じのライブラリを作ってるUnJSのライブラリの一つ。いい感じにCLIツールを作れる。 準備 npm install citty 公式のサンプルソースを拝借。 import { defineCommand, runMain } from "citty"; const main = defineCommand({ meta: { name: "hello", version: "1.0.0", description: "My Awesome CLI App", }, args: { name: { type: "positional", description: "Your name", required: true, }, friendly: { ty
Firebase Remote Config で、Firebase Admin Node.js SDK v12.1.0 以降を使用したサーバーサイド構成がサポートされるようになった*1。これを試してみる。 Feature Flag自体の説明はしないので知らない人はこれを読んでほしい。 codezine.jp アプリケーション自体はFireabase SDKが入ればなんでもよかった。今回は環境作るのが爆速で個人的にも好きなHonoを使う。 環境 Hono (4.7.2) Firebase Admin (13.1.0) Honoの環境を作る hono.dev 秒で終わる Firebase Adminを初期化 ドキュメントに書いてあるとおりやる。Firebase Projectはあらかじめ用意しておく。 firebase.google.com Remote Configを用意する 地味にわかりづ
ダイクストラ法を5分で理解するためのノート ダイクストラ法 グラフに対するアルゴリズム。非負の重みを持つグラフにおいて、単一始点から各頂点への最短経路を求めることができる。例えば、都市間の最短ルートを計算する場合などである。手順は以下の通りである。 未確定頂点の中でその頂点へ行くための距離が最も小さい頂点を求める 1で求めた頂点に隣接する頂点について、その頂点へ行くための最小距離を求める。 「未確定頂点の中で距離が最も小さい頂点を求める」という性質上、優先度付きキューを組み合わせて使うことがしばしば。優先度付きキューはこちら。 blog.inorinrinrin.com イメージが湧かないと思うので、例題を見て確認していく。 例題: ABC214 C atcoder.jp 解説の画像を拝借する。 今回は単一方向にのみつながっている円構造だ。いきなり話の腰を折るが、この場合は単純な配るDPで
だいぶ前だけど『SOFT SKILLS』を読んだので、簡単に書かれてることと感想を書く。書籍はこちら。 SOFT SKILLS ソフトウェア開発者の人生マニュアル 第2版 作者:ジョン・ソンメズ日経BPAmazon 率直な感想としては、この本を読むまでは「セルフプロデュース」というワードを聞くと吐き気を催すくらいネガティブな感情を抱いた。 けど、この本を読んでからはそれをポジティブに捉えられるようになった。 読むきっかけ ばんくしさんが自身のnoteで紹介されていたことがきっかけ。 note.com 解説内容 キャリア セルフマーケティング 学習 生産性 資産形成 フィットネス マインドセット 個人的に共感できた部分の概略 自分のキャリアをビジネスとして扱え 自分は、"わたし株式会社"という自分自身の経営者である。 会社との関係を捉え直す 雇用者と奴隷→雇用者とわたし株式会社、という経営者
前編のエントリに結構反響があったので後編を書くことにした。後編は"ボールを拾わせる"視点の話を書く。前編はこちらから。 blog.inorinrinrin.com 後編の本筋を語る前に改めて"落ちてるボール"の意味を定義しておく。"落ちてるボール"とは、 誰かがやらないといけないが、誰も手を付けていない状態のタスク "誰かがやらないといけない"ことを他の関係者も認識している状態 のことを指すものとする。前編ではこれを自分が拾うための技術について書いた。 ところで前編に対する感想やコメントにて「ボールを拾わせるのはマネジメントの技術/マネージャーの素養」という意見を持つ人が散見された。実はこれ、半分正解で半分間違ってると思ってたりする。 なぜなら、ボールを拾うことはマネージャー以外でもできる。拾わせることもまたマネージャー以外でもできるのだ。グラウンドキーパーだけがボールを拾う必要があるか?
タイトルだけ見ると球技の玉拾いの技術に見えるがそうではない。"落ちてるボール"とは、 誰かがやらないといけないが、誰も手を付けていない状態のタスク "誰かがやらないといけない"ことを他の関係者も認識している状態 のことを指すものとする。 この定義が普遍的かは知らないがニュアンスとしては伝わると思う。そしてこれはソフトウェアエンジニアリングに限った概念ではない。自分の経験上は他人と仕事をしていれば自然発生するものだ。"仕事"というほど厳密でなくてもよいと思う。例えば学生の頃の"文化祭の準備"とかでも観測できそうな概念だ。 この「"落ちてるボール"を誰が拾うか?」はしばしば見聞きする問題だ。そしてこの問題は自然発生する以上、発生したものに対症療法することになる*1。すると、この問題に対するスタンスは基本的に二つしかないと思っている。 自分が拾う 他人に拾ってもらう この二つのうち、このエントリ
本当の本当にただの自分向けのメモです。メモだけど、見られて困る内容じゃない。なら、他の人も見れる方がよい。そんな思考でブログにしている。 書くのはSNS界隈では定期的にマウント取りに使われる*1二分探索の計算量について。定期的に忘れてはいちいち理屈から考えるを繰り返している*2ので、もうメモにしておくことにする。ちなみに結論だけ言うと二分探索の計算量はだ。 指数と対数 二分探索の計算量を考えるにあたってこれが必要。いや、それ抜きにしても指数対数は重要なんだがそれはおいておき…なんで指数と対数が出てくるかというと、二分探索の計算量は対数的に増加するからだ*3。そして対数を説明するにはセットで指数を説明する必要がある。なのでこの順番で説明する*4。 それぞれひとことで説明するとこんな感じ。さすがに指数は分かるだろう。が、普段意識しない対数は忘れがち。 指数 = xをk回かけたらnになる。n =
ShellCheckはシェルスクリプトの静的解析ツールだ。文法エラー、バッドプラクティス、セキュリティリスクを指摘してくれる。チェック内容はWikiをみてほしい*1。 www.shellcheck.net はじめの一歩 Macの場合はbrew install shellcheckでインストールできる。早速以下のシェルスクリプトに対して解析をかけてみる。 #!/bin/bash echo "Deleting files in $DIR..." rm -rf $DIR 解析はshellcheck vulnerable.shで実行する。結果、以下のように表示される。 GitHub Actions 次にこれをGitHub Actions*2で解析することを考える。実はGHAにはデフォルトでShellCheckが装備されている。 なので、GHAでシェルスクリプトを実行する前に静的解析をかければ良い。
言いたいことは、「タスクはさっさと片付けて次のタスクに取り掛かろう」ということ。そのため心がけてることを書いていく。 積まれ続けるタスク タスクを次々とこなす。そう言うと「どんどんタスクが積まれて死んじゃう」と声が聞こえる気がする。 けど、お金を稼ぐには何かしら仕事をし続けなければならない。なので「タスクを積まないで」とは言えない。ならばさっさと片付けて次の仕事をした方がお金をもらえていいだろう。「サラリーマンなら仕事をどれだけこなしても一緒」と思っているなら、それはマインドか評価してくれない職場に問題がある。 フリーランスであったり、副業をしているとやればやるだけ売上につながる。サラリーマンであっても評価されるにはたくせん成果を出す必要がある。たくさん成果を出すには、たくさんタスクをこなす。当たり前のことだ。 ここではタスクをたくさんこなしたいことを前提する*1。そのうえで、タスクを消化
思い立ってから10分くらいで頭に浮かんだものをつらつらと書いた。なんとこれらは全て無料で読める。他にもあるかもしれないので、それは思いついたら都度追記していく。必然的にだが、僕にとっての長澤まさみ枠な人たちが名を連ねている。 行動をするときに「自分には向いてないかも」と悩む時間は必要ない soudai.hatenablog.com id:Soudaiさんの記事。特に前川さんの「もし、お前に才能が無かったとして、じゃあお前はどうするんの?そのifの中に実装があるの?何も無いんだったらそのifについて考える時間は無駄じゃん。必要なくない?」っていう言葉が核心付いててめっちゃ好き。年に何回か訪れる気持ちがマイナスになった瞬間とかに読みに行くことが多い。 長く活躍できるエンジニアになるためには? 技術者として大切にしたいこと speakerdeck.com id:naoyaさんのスライド。先のそー
次のページ
このページを最初にブックマークしてみませんか?
『blog.inorinrinrin.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く