タグ

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

  • gitmoji | An emoji guide for your commit messages

    :chart_with_upwards_trend:Add or update analytics or track code.

    gitmoji | An emoji guide for your commit messages
    k1LoW
    k1LoW 2023/06/27
  • 次なる`pkg/errors`を探して - カンムテックブログ

    エンジニアの宮原です。 今回はGoでスタックトレースを取得するライブラリ選定についての記事です。 この記事は 【Gophers Talk】スポンサー4社による合同LT & カンファレンス感想戦で発表したものです。 発表スライドはこちらから確認できます。 この記事の目的 この記事ではpkg/errorsからの移行先を探すための参考情報を提供することを目的とします。 Goのエラーハンドリングのやり方等についてこの記事では触れないこととします。 pkg/errors とはなにか pkg/errorsとは、githubのREADMEを引用すると Package errors provides simple error handling primitives. とあり、直訳すると、「エラーハンドリングの基礎を提供するパッケージ」となります。 pkg/errorsを利用することで、Go体にはないスタ

    次なる`pkg/errors`を探して - カンムテックブログ
    k1LoW
    k1LoW 2023/06/21
  • メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング

    この記事は、Merpay Tech Openness Month 2023 の7日目の記事です。 はじめに こんにちは。メルコイン Payment Platform チームの @sapuri です。 メルコインではマイクロサービスアーキテクチャを採用しており、お客さまによりアプリの操作が行われると、それぞれのマイクロサービスを横断してリクエストが処理されます。 メルコインの Payment Platform は、お客さまの残高の管理や各種帳簿の作成などの決済事業のための基盤となる仕組みを提供しています。 そのなかで、Payment Service は決済トランザクションを管理するサービスとして、下位層のサービスが提供する各種決済手段を利用して、上位層のサービスが共通して利用できる決済 API を提供しています。 この記事ではマイクロサービスアーキテクチャにおける分散トランザクション管理の課

    メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング
    k1LoW
    k1LoW 2023/06/16
  • GPT-4, GPT-3.5 の API を利用して JSON だけ生成する (Function calling)

    先日 OpenAI API のアップデートが以下のように発表されました。 一番の注目は Function calling じゃないでしょうか? 名前から「関数を呼び出せるのかな?」と一番最初に想像しちゃいますが、この機能の革新的な部分は「JSON を作成してくれる」ところだと思っています。 JSON を作れると嬉しいことがいっぱいありますね! ダミーデータの作成 生成した JSON をそのままレスポンスとして返すエンドポイントの作成 テストとしても良い 関数や外部 API の呼び出し 今までは難しかった JSON の作成 今まで、JSON を作成してもらうにあたって gpt-3.5-turbo を用いて JSON を作成させようとするとほぼ失敗していました。それで gpt-4 のモデルを利用して JSON を作成させますが、このモデルはほとんど正確になる一方で処理速度がかなり遅くなる点がネ

    GPT-4, GPT-3.5 の API を利用して JSON だけ生成する (Function calling)
    k1LoW
    k1LoW 2023/06/15
  • 「死人テスト」という考え方が子どもへ伝え方の参考になる「好ましい具体的な行動を示す」

    あたたたたー @81I6VVboj7h2Bqy 応用行動分析では「死人テスト」という考え方があります。「死人にもできることは行動とは言えない」という考え方です。例えば「廊下を走らない」は死人にもできます。しかし「廊下を歩く」は死人にはできません。死人にもできる「廊下を走らない」は行動目標にするべきではありません→ 2023-06-11 22:55:21 あたたたたー @81I6VVboj7h2Bqy →「廊下を走らない」は「行動」ではないからです。「廊下を歩く」は「行動」です。そのため「廊下を歩く」は行動目標として成立します。では「教室で静かにする」は行動と言えるでしょうか?これは、行動とは言えません。なぜなら「教室で静かにする」は死人にもできるからです→ 2023-06-11 22:56:06 あたたたたー @81I6VVboj7h2Bqy → 子どもに指示する時は、死人でもできる「教室

    「死人テスト」という考え方が子どもへ伝え方の参考になる「好ましい具体的な行動を示す」
    k1LoW
    k1LoW 2023/06/15
  • BuildJetを使ってamd64とarm64に対応したコンテナイメージを今までの8倍速く作る - 風に吹かれても

    三行まとめ BuildJet が提供するArmマシンを用いてArmで動くイメージを作成する Docker Buildx を用いると複数のイメージに同じタグを貼ることができる Actionsのx86_64マシンでamd64で動くイメージを、BuildJetのArmマシンでarm64で動くイメージをそれぞれ作成してくっつけた 三行まとめ はじめに BuildJetとは 方法 BuildJetに登録する BuildJetを有効にする runs-onにBuildJetのランナーを指定する 複数のイメージを束ねるマニフェストを作る めでたしめでたし 実際に使ってみる 速度比較 まとめ はじめに Apple Silicon搭載マシンの登場、Raspberry Piの普及などArmが身近になってきた人も多いのではないでしょうか。 Raspberry Pi上で動くKubernetesなどを運用する際にはa

    BuildJetを使ってamd64とarm64に対応したコンテナイメージを今までの8倍速く作る - 風に吹かれても
    k1LoW
    k1LoW 2023/06/13
  • Go 言語の値レシーバとポインタレシーバ

    「レシーバ」とはGo 言語はある種のオブジェクト指向プログラミング (OOP) 言語であり、 OOP 言語の慣例通り、メソッドを呼び出される対象のことを「レシーバ」と呼びます。 ちなみになぜ「レシーバ」と呼ぶのかというと、昔の OOP 言語の文脈ではメソッド呼び出しのことを「メッセージの送信」と言い、メソッドを呼び出される側は「メッセージの受信側」だからです。 「値レシーバ」と「ポインタレシーバ」Go 言語では「値」と「ポインタ」が明示的に区別されているため、たとえばある構造体に対してメソッドを定義する場合でも、「値型」に対する定義なのか「ポインタ型」に対する定義なのかはっきりと区別しなければなりません。それぞれについて簡単に説明します。 値レシーバ「値型」に対してメソッド定義されたものが「値レシーバ」です。 Go 言語では構造体は値なので、以下の例では Person という値型に対して

    k1LoW
    k1LoW 2023/06/13
  • Setting up Github Copilot in Emacs - Robert Krahn

    February 22, 2023 Setting up Github Copilot in Emacs This is a short walkthrough describing my current Emacs-Copilot setup. Copilot is primarily advertised as a VSCode utility but actually it works really well in Emacs. Given the ease of adjustments (e.g. when to see completions) I would even argue Emacs might provide a better experience. Table of Contents Changelog Intro & Disclaimer Copilot API

    Setting up Github Copilot in Emacs - Robert Krahn
    k1LoW
    k1LoW 2023/06/09
  • seteuid(2) でかわれるのは誰?

    最近、会社の読書会で 入門 モダンLinux を読んでいる。 「保存 set-user-ID」の説明で、以下のような記載があり「切り替えられる」ってことは、 プロセス実行時だけじゃなく、実行中にも変更できるってこと?って、質問が出たので、確認してみた。 4.3.2 プロセスの権限 保存 set-user-ID は setuid ビットが設定されている場合に使う。プロセスが実 UID と保存 set-user-ID の 間で実効 UID を切り替えられる 出典: 入門 モダンLinux Michael Hausenblas 著、武内 覚、大岩 尚宏 訳 setuidビット passwd コマンドとかについてるアレ。 rootオーナのコマンドが setuid されていると、一般ユーザ(ubuntu とか)で実行しても、 root 権限で実行される。 -rwsr-xr-x 1 root root

    seteuid(2) でかわれるのは誰?
    k1LoW
    k1LoW 2023/06/09
  • Gopher道場の動画コンテンツを完全に公開しました

    はじめに Gopher道場は、tenntennがメルペイ在職時に始まったGoを学ぶ人のための学習の場です。tenntennがメルペイを退職後、著作権周りの整理などが行われ、Go Conferenceなどを運営する一般社団法人Gophers Japanに運営が移管されました。メルペイのみなさまありがとうございました。 動画コンテンツを完全に公開しました 移管にあたり、Gopher道場のSlackに入った方にだけ公開していた動画コンテンツを一般公開することにしました。以下の再生リストからご覧いただけます。 なお、資料はこちらの古いスライドではなく、プログラミング言語Go完全入門をご覧ください。 古い資料はアップデートされませんが、プログラミング言語Go完全入門は今後もアップデートをしていきます。 動画は10時間以上あり、以下の内容を扱っています。 Goに触れる 基構文 型と関数 パッケージ

    Gopher道場の動画コンテンツを完全に公開しました
    k1LoW
    k1LoW 2023/06/08
  • Making Decisions

    Intro to making decisions On this page, we have outlined how we make decisions at GitLab. Making decisions GitLab’s values are the guiding principles for our business. They inform hiring, performance management, and promotion assessments. They also guide other decisions that we make. At times, values may be in conflict. To address this, GitLab has a values hierarchy. At the top of this hierarchy i

    Making Decisions
    k1LoW
    k1LoW 2023/06/07
  • 56か国の177人もの専門家が選りすぐった最高の児童書100選(の邦訳リスト) - YAMDAS現更新履歴

    [追記]:内容に誤りがあったので、タイトル並びに文を修正しました。 www.bbc.com BBC が史上最高の児童書100選を発表しているのだが、これが56か国の177人ものの専門家による投票結果というのだから力が入っている。 まぁ、ワタシなど映画やアニメでは観ていても、原作をちゃんと読んでいないのがほぼすべてでお恥ずかしい限りなのだけど。 モーリス・センダック『かいじゅうたちのいるところ』(asin:4572002150) ルイス・キャロル『不思議の国のアリス』(asin:4042118038、asin:B01914HLHK) アストリッド・リンドグレーン『長くつ下のピッピ』(asin:4001140144) アントワーヌ・ド・サン=テグジュペリ『星の王子さま』(asin:4167912880、asin:B06VWT2MYX) J・R・R・トールキン『ホビットの冒険』(asin:4

    56か国の177人もの専門家が選りすぐった最高の児童書100選(の邦訳リスト) - YAMDAS現更新履歴
    k1LoW
    k1LoW 2023/06/07
  • Go Conference 2023 Online に参加しました #gocon - stefafafan の fa は3つです

    仕事Goを書いているので参加しました! gocon.jp LT落選 実はLTを申し込んでいましたが落ちています。社内で「Goサブ会」というチーム横断の会をやっていて自分が運営メンバーの1人ということでついでに話そうかなと思って応募してみましたが、これはまた別の機会に話そうと思います。 github.com 当日 今回GoConで採用されたrebakoはあまり使ったことがなかったのですが、すぐ慣れました。YouTube Liveだけで配信するよりはアイコンが沢山並んでいて盛り上がっている感は感じられてよかったです。特に2つの部屋で同時並行で進んでいるときはタブを切り替えるよりは部屋移動している感じがでていました。 発表はどれも面白くて、無限に情報インプットできました。参加してよかったです。またあとで自分が聞けなかった部屋の資料も目を通そうと思います。海外の人もオンラインならそのまま発表を配

    Go Conference 2023 Online に参加しました #gocon - stefafafan の fa は3つです
    k1LoW
    k1LoW 2023/06/05
    #byhatena で知ったGoサブ会(と https://github.com/lufia/go-validator )について、はてなブースに聞きに行けなかったのが唯一の心残りなので別の機会を待っています
  • net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023

    https://gocon.jp/2023/sessions/A13-S/ https://github.com/k1LoW/httpstub https://github.com/k1LoW/grpcstub https://github.com/k1LoW/smtptest https://github.com/k1LoW/runn

    net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
    k1LoW
    k1LoW 2023/06/05
  • Goの型パラメータを使って型付きバリデータを作っている - Plan 9とGo言語のブログ

    型パラメータ(generics)とerrors.Joinを使ってバリデータを作っています。 github.com 経緯 Goで値のバリデーションを行う場合、有名なライブラリには以下の2つがあります。 go-playground/validator go-ozzo/ozzo-validation go-playground/validator はよくある構造体のフィールドに validate:"required" のようにタグを付けるスタイルのバリデータです。awesome-goで紹介されているvalidatorのほとんどはこのスタイルで人気もありますが、個人的には validate:"required" 程度ならともかく validate:"oneof='red green' 'blue'" あたりからは、手軽さよりも複雑さの方が強くて少々厳しいなと感じます。 一方、 go-ozzo/oz

    Goの型パラメータを使って型付きバリデータを作っている - Plan 9とGo言語のブログ
    k1LoW
    k1LoW 2023/05/31
  • Codereview-Input Validation - OWASP

    k1LoW
    k1LoW 2023/05/31
  • gh auth loginで作成されたクレデンシャルだけで生活するためにgh-doを作った - Copy/Cut/Paste/Hatena

    やっとgh auth loginで得たクレデンシャル(OSのセキュアストレージに保存されているもの)のみを使う生活になったぞ— k1LoW (@k1LoW) 2023年5月15日 GitHub CLIの gh auth login で作成されたクレデンシャルはOSのセキュアストレージに保存されるようになりました。 次のエントリが詳しいです。 blog.kyanny.me 「じゃあ、もう全部セキュアストレージに保存されたクレデンシャルを使えばOK」となるのですが、なかなかそうはいきません。 なぜかというとGitHubのクレデンシャルを使うツールによって環境変数の扱いが異なるからです。 GitHubのクレデンシャル設定の歴史(私の記憶版) 注意: 以下は、あくまで私の記憶であって実際と異なるかもしれません。 前史 GitHub CLI( gh )やGitHub Actionsの登場以前は、クレ

    gh auth loginで作成されたクレデンシャルだけで生活するためにgh-doを作った - Copy/Cut/Paste/Hatena
    k1LoW
    k1LoW 2023/05/31
    書きました
  • GitHub ActionsとtblsでDBスキーマ変更に対応するER図の自動生成する - トレタ開発者ブログ

    はじめに こんにちは、サーバーサイドエンジニアの @shiroemons です。 プルリクエストにDBスキーマの変更が含まれた場合、ER図を自動生成するために、tblsとGitHub Actionsを組み合わせた設定を行いました。 DBスキーマの変更は開発プロセスにおいて頻繁に発生しますが、手動でER図やドキュメントを更新することは煩雑で効率が悪い作業です。 そこで、GitHub Actionsとtblsを使用することで、ER図の自動生成と更新を容易に実現できました。 今回は、設定したGitHub Actionsの設定ファイルを紹介します。 必要なツールと環境 今回紹介するツールと環境はこちらです。 CI: GitHub Actions DB: PostgreSQL マイグレーションツール: psqldef テーブル定義書作成: tbls tbls について github.com tbls

    GitHub ActionsとtblsでDBスキーマ変更に対応するER図の自動生成する - トレタ開発者ブログ
    k1LoW
    k1LoW 2023/05/30
    setup-tbls事例だ!ありがとうございますー
  • xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - 千里霧中

    最近、昔作ったTest Doubleの解説資料を参照・引用してくれる方がちらほら出ていて恐縮しているのですが、見直してみると結構わかりにくい資料なので今回文章としてまとめたいと思います。内容は世間一般的に言われているMock、Stub、Fake、Dummyといった言葉の定義になります。 Test Doubleとは Test Doubleとは、テスト実行時に、テスト対象が依存しているコンポーネントと置き換わるものです。「テスト代役」と訳されることもあります。世の中でMock、Stub、Fake、Dummyなどと呼ばれているものの総称に位置づけられます。 簡単な例を以下に示します。このコードでは、テストメソッド「テストコード()」がメソッド「テスト対象()」をテストしています。また「テスト対象()」は、中でメソッド「外部メソッド()」を実行しています。なお「外部メソッド」はテスト対象でないとし

    xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - 千里霧中
    k1LoW
    k1LoW 2023/05/29
  • tblsで生成したテーブル定義のDescriptionをGPTで補完する | ten-snapon.com

    公式リポジトリより引用 非常に便利なのですが、昔からあるテーブルなどは、Descriptionが埋まっておらず、一見なんのデータが入っているカラムなのかわからないことがあるので、BigQueryのデータを対象に、サンプルレコードをとってきて、秘匿情報をマスクしてOpenAIAPIを実行する実装を書いてみました。なお、この実装はアイディアベースのものでまだ番運用に耐えるものではありません。 技術要素としては秘匿情報のマスクはDLPを活用しています。ちょこちょこサンプリングしているといい感じにマスクしてくれるので結構便利です。 import glob import os import textwrap import google.cloud.dlp import openai from google.cloud import bigquery from google.cloud.dlp i

    tblsで生成したテーブル定義のDescriptionをGPTで補完する | ten-snapon.com
    k1LoW
    k1LoW 2023/05/29