タグ

k1LoWのブックマーク (5,065)

  • GitHub Actionsのワークフローを可視化するactions-timelineを作った

    最初に作ったのがCIAnalyzerです。なるべくツール自体の運用の手間がかからないように常駐サーバー無し、データの保存先と可視化はマネージドサービスを使う前提で設計しました。具体的にはデータの保存先をBigQueryとすることによって自前でDBを管理する必要をなくし、webhookを受けるのではなくcronで定期的にAPIを叩くことで常駐サーバーを不要にし、データの可視化はBigQueryと簡単に連携できてマネージドサービスであるLooker Studioを使用する前提としました。 CIAnalyzerのアーキテクチャ CIAnalyzerを作ったきっかけはAzure Pipelineの分析機能に感銘を受けたことで、それと同等の分析を当時自分が業務とプライベートで使用していたJenkins, CircleCI, Bitrise, GitHub Actionsでも可能にしたいと思って開発を

    GitHub Actionsのワークフローを可視化するactions-timelineを作った
    k1LoW
    k1LoW 2023/10/17
  • Idempotency-Key Headerの現状・仕様・実装の理解を助けるリソースまとめ - valid,invalid

    Idempotency-Key Header に関する調査と実装を半年ぐらい前に行ったので、そのとき参考にしたリソースと 2021 年 9 月時点で得られる最新情報をメモしておく。 前提: Idempotency-Key Header とは HTTP リクエストのうち冪等ではないとされるリクエスト*1を冪等にし、安全なリトライを可能にするための仕組みの 1 つ。 Jayadeba Jena, Sanjay Dalal, Erik Wilde 氏らによって 2021 年 11 月に仕様が提案された。現在は IETF のもと、インターネット標準化過程(Standard Track)にあり、IETF Meeting や GitHub issues にて議論が行われている。real world ではすでに多くの企業で類似する実装が行われている。 現状と今後 GitHub issues を見る限り論

    Idempotency-Key Headerの現状・仕様・実装の理解を助けるリソースまとめ - valid,invalid
    k1LoW
    k1LoW 2023/10/17
  • 親が勧める本で親は驚かない - 西尾泰和のScrapbox

    プログラマの親があれこれさせようとして「うちの子は全然興味持たないんだよねー」ってなるの、親が詳しいから子がその分野で活動すると親が良かれと思ってアドバイスしてしまい、それが子供の視点からはマウンティングを受けるのと同じだからか kis 子どもの教育で起きることは大人の教育でも程度の大小あれど起きるはずだけど、教える側との知識量の差のためにヤル気なくすというのはあまり見ないのでなんか違和感あります。先回りに限らず単にアドバイスのやり方がダメとかの可能性。 nishio ここでいう子供は9歳前後のイメージで、その時期の子供は周囲の大人と比べて「体格や力に差がある」「経済的に依存している」「日常的に自分の行動に監視や禁止が行われる」という状態にあって無意識に劣等感を抱いており、だから「大人ができないことをやる」ことで劣等感を解消したい欲求が強いのです

    親が勧める本で親は驚かない - 西尾泰和のScrapbox
    k1LoW
    k1LoW 2023/10/14
  • Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ

    はじめにTIG真野です。育休明けです。 フューチャー社内のタスクランナーはmakeやTaskなど複数の流派があり、チームによって使い分けられています。個人的にはmakeで良いんじゃないかと思っていますが、Taskも良いですよね。 makeは細かい記法をいつも忘れる+調べるとC言語向けの情報が出てきて脳内変換に手間を感じたため、makeを用いてWebバックエンドアプリをGoで開発するということをテーマに、役立ちそうな情報をまとめます。 なお、今記事におけるmakeは、GNU Makeを指します。バージョンは以下で動かしています。 MakefileのためのEditorConfigMakefileのインデントはハードタブである必要があります。誤りを防ぐためにもEditorConfigを設定しておくと良いでしょう。 makeは通常、Makefileという名称をデフォルトで認識しますが、同一フォルダ

    Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ
    k1LoW
    k1LoW 2023/10/13
  • Pythonのパッケージ管理の中級者の壁を超える stapy#98

    以下のstapy#98にて発表したスライドです https://startpython.connpass.com/event/296755/ PythonのPackage Managerを深く知るためのリンク集 https://gist.github.com/vaaaaanquish/1ad9639d77e3a5f0e9fb0e1f8134bc06#file-python-package-manager-md

    Pythonのパッケージ管理の中級者の壁を超える stapy#98
    k1LoW
    k1LoW 2023/10/13
    とても勉強になったとともに自分で作ろうと考えると眩暈がする
  • Goのテーブル駆動テストではテストケースの定義位置を知りたいのでライブラリを書いた - 詩と創作・思索のひろば

    Go言語でテストを書く際のベストプラクティスとして、テーブル駆動テスト(Table dirven tests) というのが推奨されている。ようはデータとふるまいを分離しましょうという話で、正直わざわざ名前をつけるようなものでもなかろうという気持ちもないではないが、まあ話がはやくていいね。 けどみんなほんとにこれで満足してるの? と疑問に思うところはある。テストが落ちたときに表示される行番号がテストケースによらず一定で、どのテストが落ちたのかを探すのに一手間かかってしまう。 たとえば以下のコードをテストする際、 package eg import "testing" func TestExample(t *testing.T) { testcases := []struct { name string a, b int sum int }{ {"1+1", 1, 1, 99}, {"2+2"

    Goのテーブル駆動テストではテストケースの定義位置を知りたいのでライブラリを書いた - 詩と創作・思索のひろば
    k1LoW
    k1LoW 2023/10/12
    なんだこれ!!!!!!めちゃ便利なやつだ!!!
  • エンジニアが直接会う場の価値について

    Hackers Champloo 2023 LT https://hackers-champloo.org/2023/

    エンジニアが直接会う場の価値について
    k1LoW
    k1LoW 2023/10/08
  • 趣味プログラミングのたのしみ - Hatena Developer Blog

    こんにちは。CTOのid:motemenです。みなさん趣味プログラム書いてますか? このエントリは Backyard Hatena #4 のフォローアップ記事です。エピソードの最後のほうで、「motemenが作って公開しているツール、どんなことを考えて作ってる?」という話になりました。そのときは時間の関係もあってあまりちゃんと話せなかったな、という感覚があったので、ここであらためて考えてみようと思います。 治具のようにつくる ウェブ上で読める自分が好きな記事のひとつに、Go Is a Shop-built Jig(抄訳)というものがあります。一言でいうと、「Goは現実的な問題を解くための治具である」ということをいっています。治具とは何かを達成することを補助する小さな目的のために作られた道具、という感じかな。fujiwaraさんの隙間家具のたとえからも近いニュアンスを感じます。 自分がツール

    趣味プログラミングのたのしみ - Hatena Developer Blog
    k1LoW
    k1LoW 2023/10/06
    わかりみが過ぎる
  • 道を照らす: プラットフォーム エンジニアリング、ゴールデンパス、セルフサービスのパワー | Google Cloud 公式ブログ

    ※この投稿は米国時間 2023 年 9 月 12 日に、Google Cloud blog に投稿されたものの抄訳です。 入社したばかりの Java デベロッパーが、簡単な Java サービスを作る仕事を割り当てられたとしましょう。DevOps モデルでは開発チームと運用チームが責任を共有するので、Java コードだけでなく、ビルド パイプラインやモニタリング計測のような運用コードの作成も求められるかもしれません。しかも、クラウド プラットフォームは以前の仕事で覚えたものとは異なります。 あっという間に YAML ファイルの山に溺れ、簡単な Java サービスの構築が難事業になってしまいました。決めなければならないことがたくさんあります。コードの構成はどうしよう?継続的デリバリーにはどのツールを使用したらいいのだろう? DevOps モデルは開発者に耐えられないほどの学習の手間をもたらすこ

    道を照らす: プラットフォーム エンジニアリング、ゴールデンパス、セルフサービスのパワー | Google Cloud 公式ブログ
    k1LoW
    k1LoW 2023/10/05
  • Compile-time safety for enumerations in Go

    Last month, a colleague of mine asked how to reason about enumerated values (“enums”) in Go. They wanted to benefit from Go’s type-safety and to prevent users from misusing the package. For an imaginary example, that enumerates possible colours, the snippet below shows how we typically implement this: type Color string const ( Red Color = "red" Green Color = "green" Blue Color = "blue" ) But, just

    k1LoW
    k1LoW 2023/10/03
  • 「心理的安全性」はなぜ混乱を招き続けるのか | Q by Livesense

    心理的安全性という概念がある。ここ十年ほどチームづくりの最重要ファクターであるともてはやされ、他方では粗雑な理解によって批判されてきた。急に人気の出たアイドルの宿命みたいなものを背負っている。 世間的なイメージがどのようなものか、少し羅列してみよう。 なんでも言える。否定されない。安心して働ける。不安がない。感情を大切にしてもらえる。あなたはあなたのままでいいと肯定される。 こうしたイメージを抱いている人もいるかもしれないが、残念ながらこれらは、心理的安全性の正しい姿からは遠くかけ離れている。ただ安心してほしいのは、こうした誤解をしている人は決して少なくないということだ。 手持ちのグーグルで「心理的安全性 誤解」と検索してみると、何ページにもわたって理解を正す記事が並んでいる。NewsPicksも、プレジデントも、朝日新聞も、Qiitaも、東洋経済も、あらゆるメディアが心理的安全性の誤解に

    「心理的安全性」はなぜ混乱を招き続けるのか | Q by Livesense
    k1LoW
    k1LoW 2023/10/02
  • Language Server Protocol の仕様 及び実装方法

    Language Server Protocol通称LSPの仕様と、各機能をどうやって実装したら良いかの指針を示します。 対象読者 * 言語処理系を実装する人/したい人 * Language Serverを実装する/したい人 * LSPに興味がある人、日語のまとまった情報源を探している人 * Language Serverがエディタの裏でどのようなことをしているのか気になる人 書で解説される機能は以下の通りです。 * Diagnostics (検査) * Completion (補完) * Inlay hint * Hover * Goto definition (定義へ移動) * Find references (参照を表示/移動) * Rename (名前変更) * Code actions * Code lens * Signature help * Command * Docu

    Language Server Protocol の仕様 及び実装方法
    k1LoW
    k1LoW 2023/10/01
  • ドメイン駆動設計は何を解決する手法なのか - stmn tech blog

    こんにちは、リファクタリング大好きなミノ駆動です。 株式会社スタメンでは、企業エンゲージメント構築サービスTUNAG(ツナグ)の技術的負債解消と今後の持続的成長のため、ドメイン駆動設計(DDD)の導入を検討しています。 ところでDDDはとかく理解しづらく、何のためのDDDなんだという議論になりがちです。この記事では、DDDの真の主人公コアドメインを中心に、DDDが何を解決するものなのか、全体像を改めて整理します。 この記事で扱う内容 DDDが解決したい課題と解決方法の全体像。 この記事では扱わない内容 設計パターンの実例などの実装詳細。 大事な前提 〜利益を得るためのサービス開発 会社でのサービス開発は、趣味や道楽でやるものでしょうか。違いますね。ビジネスとして、企業活動としてサービス開発しています。当たり前の話ですが、利益を得られるように開発しなければなりません。 ドメイン駆動設計は、継

    ドメイン駆動設計は何を解決する手法なのか - stmn tech blog
    k1LoW
    k1LoW 2023/09/28
  • 30点で打席に立つ

    めもりーさんと語るFindy Engineer Lab オフ会@東京 LT https://findy.connpass.com/event/294069/

    30点で打席に立つ
    k1LoW
    k1LoW 2023/09/28
    「打席に立つ」が具体的な数値とともに
  • 任意のURLからダウンロードするasdf/rtxプラグイン asdf-simple-download を作った - ぶていのログでぶログ

    github.com モチベーション 私は普段ソフトウェアのバージョン管理にrtxを使っている。 大抵のソフトウェアは有志によりプラグインが作られているので rtx plugin add すればインストールすることができる。 しかしながら、プラグインがないソフトウェアも存在する。 その場合プラグインを作るのがいいのだけど、さすがに手間である。 そこで、任意のURLからダウンロードを行うだけのプラグインを作った。 使い方 rtx plugin add するときに $ASDF_PLUGIN_DOWNLOAD_URL 環境変数を設定する必要がある。 この環境変数にはダウンロードを行うバイナリを含んだtarballかzipファイルのURLを指定する。 $ export ASDF_PLUGIN_DOWNLOAD_URL=https://example.com/example-software-1.0

    任意のURLからダウンロードするasdf/rtxプラグイン asdf-simple-download を作った - ぶていのログでぶログ
    k1LoW
    k1LoW 2023/09/28
    asdf配下で管理できるのがいいなあ
  • Go 1.21.0 で導入された遅延初期化関数 sync.OnceValue

    Go 1.21.0 のマイナーなライブラリ修正の中に、sync.OnceValue という関数が追加されていた。[1] sync The new OnceFunc, OnceValue, and OnceValues functions capture a common use of Once to lazily initialize a value on first use. どうやら、これは遅延初期化を実現するもののようだ。 「遅延初期化」とは、初期化処理を使用する直前に1回だけ行うというもので 実際に使用するかしないか分からないので、起動時のタイミングで行うと初期化コストが無駄になる場合がある 使用する直前でないと、初期化に必要な情報がそろいにくい 使用するたびに初期化というのはコストがかかりすぎる 複数個所のどこで最初に呼び出されるのか分からないので、初期化関係の煩わしい手続きは呼

    Go 1.21.0 で導入された遅延初期化関数 sync.OnceValue
    k1LoW
    k1LoW 2023/09/25
  • Marknine

    Live markdown preview that run in your browser

    k1LoW
    k1LoW 2023/09/25
  • CPU シミュレータを用いて継続的ベンチマークを安定化させる - mizdra's blog

    id:mizdra は eslint-interactive というツールをメンテナンスしています。このツールを使うと、多数の ESLint エラーを効率的に修正できます (詳しくは以前書いた記事を見てください)。 www.mizdra.net eslint-interactive では「中規模〜大規模なコードベースであってもキビキビ動く」を大事にしてます。その一環として、eslint-interactive には CI (GitHub Actions) でベンチマークを取り、以前から大きく劣化していたら CI を fail させる仕組みがあります。 https://github.com/mizdra/eslint-interactive/actions/workflows/benchmark.yml?query=is%3Afailure しかし CI で実行するためにノイズが大きく、よく

    CPU シミュレータを用いて継続的ベンチマークを安定化させる - mizdra's blog
    k1LoW
    k1LoW 2023/09/24
  • CS107 Valgrind Callgrind

    k1LoW
    k1LoW 2023/09/24
  • Productivity Weekly (2023-09-13号, 2023-09-06号)

    こんにちは。サイボウズ株式会社 生産性向上チームの平木場です。 僕たち生産性向上チームは毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催しています。 記事はその時のネタをまとめたものです。 2023-01-25 号から、基的に隔週で連載することとしました。たまに単独でも投稿するかもしれません。 今週は 2023-09-13, 2023-09-06 合併号です。 今回が第 124 回目です。過去の記事はこちら。 news 📺 ⚠️ Node.js 16 is now end of life, please upgrade to Node.js 18. 前々からアナウンスされていた通り、Node.js 16 が 9/11 に EOL となりました。 Node.js の LTS 後のサポートは L

    Productivity Weekly (2023-09-13号, 2023-09-06号)
    k1LoW
    k1LoW 2023/09/24
    おー初掲載かもしれない