nainaistarのブックマーク (54)

  • Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO

    今回はPythonで簡単にリトライ処理を追加できる「tenacity」を使ってみます。 デコレータ形式で簡単にリトライ処理を追加できるので便利です。 tenacityについて プログラムを書いていて、HTTPの通信などでリトライ処理を実装する機会は多いと思います。 今回はそんなリトライ処理を簡潔に書けるtenacityの使い方を説明します。 インストール インストールはpipで可能です。 インストール pip install tenacity 使い方 シンプルな例 シンプルな例 import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!

    Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO
  • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

    この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

    Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
  • 私が 1on1 でしていること - Mobile Factory Tech Blog

    言葉の定義 モバファクの 1on1 の目的 1on1 で自分が大事にしていること 1on1 はメンティーの時間である 1on1 はメンターの時間でもある 1on1 初回 今使っている 1on1 のフォーマット 体調 半期目標の進捗振り返り ネクストアクションの振り返り うまくいかなかったこと・もっとよくなりそうなところ・うまくいったこと・その他に話したいこと ネクストアクション 1on1 の中でのやりとり お休みの取り方がわからない 最近見積もりの精度が高くなっている 朝会の議事録をとるようにしたい 最近チームの動きがぎこちないと感じている 1on1 定期的な振り返り まとめ こんにちは。駅メモエンジニアの id:dorapon2000 です。 今回は自分自身がメンター側として実施している 1on1 について、どのように実施しているのかご紹介しようと思います。 1on1 のやり方はメンター

    私が 1on1 でしていること - Mobile Factory Tech Blog
  • activerecord-originator をリリースしました - pockestrap

    こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見るのが早いでしょう。次のログはArticlesController#indexで実行されるクエリの例です。 Article Load (0.1ms) SELECT "articles".* FROM "articles" WHERE "articles"."status" = ? /* app/models/article.rb:3:in `published' */ AND "articles"."category_id" = ? /* app/controllers/artic

    activerecord-originator をリリースしました - pockestrap
    nainaistar
    nainaistar 2024/03/14
    これはRailsにいれたい
  • Idempotency Keys: How PayPal and Stripe Prevent Duplicate Payment

    Have you ever tried to make a failed payment again and suspected that you payed twice? Payment Service providers such as PayPal or Stripe use a method to handle multiple requests for same payment: Idempotency Keys. Let’s increase our domain knowledge by examining this method together! The Essence of Idempotency in Payment SystemsIdempotency is a crucial safeguard in digital payment systems, ensuri

    Idempotency Keys: How PayPal and Stripe Prevent Duplicate Payment
    nainaistar
    nainaistar 2024/02/29
    stripeなどが重複処理を防ぐ仕組み
  • リリース用のpull requestを自動作成し、マージされたら自動でタグを打つtagpr | おそらくはそれさえも平凡な日々

    常々GitHubにtag requestが欲しいと言ってきましたが、それを実現するツールを作りました。OSSなど、バージョニングとリリースが伴うソフトウェア開発のリリースエンジニアリングをとにかく楽にしたいという動機です。既に自分が管理している幾つかのOSSでは導入して便利に利用しています。 https://github.com/Songmu/tagpr アイデア 基の発想は以下のようにシンプルです。 リリース用のpull requestがGitHub Actionsで自動で作られる バージョン番号が書かれたファイルやCHANGELOG.mdを自動更新 そのpull requestをマージするとマージコミットに自動でバージョンtagが打たれる semver前提 リリース用のpull requestを自動で作りマージボタンを以てリリースと為す、というのは、みんな(僕が)大好き git-pr

    リリース用のpull requestを自動作成し、マージされたら自動でタグを打つtagpr | おそらくはそれさえも平凡な日々
    nainaistar
    nainaistar 2023/12/28
    使うかも
  • Duolingo CEOが東大生に語った「人事で100回失敗」した数学オタクの反省と「起業家が心理学を学ぶべき理由」

    世界最大級の語学学習アプリ「Duolingo」の創業CEOであるルイス・フォン・アーン氏が来日し、東京大学で講演した。 アーン氏はシリアルアントレプレナーで、カーネギーメロン大学在籍中に博士課程の研究課題をもとに起業した“学究肌”だ。 講演は事前に学生らが寄せた問いに答える形式で行われ、聞き手は東京大学の産学協創推進部スタートアップ推進部長、長谷川克也・東京大学特任教授がつとめた。 AI時代に必要なスキルから、博士進学と起業どちらを優先すべきか、大学時代の後悔、マネタイズ手法、世界で戦えるスタートアップをつくるには……など、起業を志す東大生たちにアーン氏が語った内容を、講演、フロアからの質問への回答、その後のメディア取材を元に、一問一答形式で伝える。 ルイス・フォン・アーン:「Duolingo」の創業者兼CEOで、元カーネギーメロン大学准教授。コンピューターと人間を識別するセキュリティ

    Duolingo CEOが東大生に語った「人事で100回失敗」した数学オタクの反省と「起業家が心理学を学ぶべき理由」
  • Spring Boot + Flyway で複数の DB に接続したい!!! - エムスリーテックブログ

    【Unit4 ブログリレー5日目】 こんにちは。Unit4 Eng の西川です。JavaScript が好きですが、今回は JavaScript ではなく、最近やった Spring Boot + Flyway を利用しているシステムから別の DB への接続を増やした時の話をしたいと思います。 非常に可愛いうちのです 動作環境 背景 Spring Boot で複数の DB に接続する 概要 application.yaml の記載 Configuration ファイルの作成 Flyway を複数の DB に適用する baselineOnMigrate を適用する Configuration ファイルの作成 テスト用の Configuration ファイルを作成 終わりに We're hiring! 動作環境 今回のプロダクトで利用している Spring Boot と Flyway のバージ

    Spring Boot + Flyway で複数の DB に接続したい!!! - エムスリーテックブログ
    nainaistar
    nainaistar 2023/08/29
    多いケースではないけど、複数DBに接続する方法はたまに求められるから残す
  • SpringBootでAsyncを使う時に知っておきたいExecutorのこと - 日々常々

    SpringFramework 6.0.11 SpringBoot 3.1.2 @Async と @EnableAsync の使い方 SpringFrameworkで @Async を使うとかんたんにメソッドを非同期で実行できます。 @Component class AsyncComponent { @Async void method() { // 時間のかかる処理 } } 使う側は単にメソッドを呼び出すだけです。戻り値を処理したいなら Future で受ければいいけど、投げっばでいいなら void で良い。投げっばでいい場合の方が多いはず。 @Async を使うためにはアノテーションを処理する何かしらが必要で、この一式を用意するように指示するのが @EnableAsync です。 以下のようなクラスをSpringがわかるところに置いてあげます。 @EnableAsync @Config

    SpringBootでAsyncを使う時に知っておきたいExecutorのこと - 日々常々
    nainaistar
    nainaistar 2023/08/26
    非同期処理をするときに確認
  • 意思決定できる人の手順の型 - Konifar's ZATSU

    意思決定できる人は進める手順の型みたいなものを持っているように見える。逆に意思決定が遅かったりできなかったりする人は、進めるときに型のうちの何かが欠けているのかもしれない。 体系化された話は書籍で語られつくされているとは思うが、思考整理のために雑にまとめてみる。 最後は決めるだけだという考えを持つ 目的や満たしたいことを明確にする 最終的な決め方や期日を明確にする 選択肢を広げて考える 今は意思決定しない、という意思決定も選択肢に入れる 意思決定の軸を明確にする 軸をもとに定量/定性データを集める 軸をもとに選択肢を評価する 自分はこうしたいという"推し"を決めてたたき台にする ここまでの話をドキュメントにしている ここまでのプロセスに時間をかけない 意見を聞く人を見定めてフィードバックをもらう 最初に明確にした決め方で意思決定する 意思決定できない場合は決め方と期日と意思決定軸を再定義す

    意思決定できる人の手順の型 - Konifar's ZATSU
    nainaistar
    nainaistar 2023/07/14
    参考にする
  • メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング

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

    メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング
  • 「バグ」と呼ぶのをやめて、名前をつけてあげよう - blog.takuyasuemura.dev

    ある日の午後、オフィスでサポートエンジニアとQAが会話していた。 サポートエンジニアは言った。「すべてのバグを直すことなんて不可能だ」。 QAはこう返した。「そんなことはない。バグとはただの考慮漏れだ。バグが市場に出るということは、テストするときになにかのパターンを考慮していなかった。ただそれだけだ。」 「その考えは素朴すぎる。例えば我々のSDKがユーザーの使っている別のサードパーティーのライブラリと相性が悪いことだってあるだろう。こういう組み合わせは無限にある。すべてを考慮することは出来ない。」 QAは更にこう返した。「それは 互換性 という別の問題だ。おれが言っているのは 機能性 に関するものだ。」 サポートエンジニアは尚も言う。「それにしたって、すべてのパターンをテストすることは出来ない。お前はテスターのくせに 全数テストは不可能 だという事実すら知らないのか?」 「わかった。同値分

    「バグ」と呼ぶのをやめて、名前をつけてあげよう - blog.takuyasuemura.dev
    nainaistar
    nainaistar 2023/05/01
    #分析
  • Project Valhalla 2023 - プログラマーの脳みそ

    2023/03/30 にやったJava仕様勉強会の動画が公開されました。当日はJavaのマスコットDuke風の服で臨みました(どうでもいい裏情報) www.youtube.com セッション資料もアップロードしたので参考にしてください。 Project Valhalla 2023 中間報告 いずれも 2023年3月時点での情報です。JEPもドラフト版だったりするので、将来的に変更が入る可能性が高いことをお断りしておきます。稿では勉強会のセッション内容に加えて、セッション時点で追従できていなかった変更点や、勉強会での指摘を踏まえてフォローアップした内容を含みます。 もしもValhalla世界でJava入門したら ここでは、Valhalla導入後のJava世界だと入門者視点でどのように変わるのかというアプローチをしています。まず、Javaのデータ型は大きくふたつに分類できて、Identity

    Project Valhalla 2023 - プログラマーの脳みそ
    nainaistar
    nainaistar 2023/04/17
    分からないけど覚えておいたほうが良さそう
  • 「センターサーバ方式Suica」に関する疑問をJR東日本に聞いた【鈴木淳也のPay Attention】

    「センターサーバ方式Suica」に関する疑問をJR東日本に聞いた【鈴木淳也のPay Attention】
  • プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena

    JJUG CCC 2022 Fallで「Javaの入門が終わったら何の勉強をすればいいの?」という内容で発表を行いました。 基的なものが作れるようになったけども、イマイチプログラムが組めないというときに、何を勉強すればいいかをまとめました。 入門が終わって作りたいものがあれば作っていきましょう、業務で言われたものが作って行こう、でもなんだかちゃんとしたものが作れないな、もっとちゃんとしたものを作りたい、次のステップに進みたいというときに勉強していく感じです。 資料はこちらです とりあげたについてまとめておきます。 開発作業について 概要 プログラミング言語 アーキテクチャ ミドルウェア ネットワーク デプロイ 理論 開発手法 開発プロセス まとめ フレームワークは入門でやってる前提です。Java入門書「プロになるJava」ではJavaの基から簡単なDB操作、Spring Bootまで

    プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena
  • データベースと向き合う決意 | フューチャー技術ブログ

    秋のブログ週間の9目のエントリーになります。この企画もこんなに書く人が出てくるように育っていいですね。 「中間層を増やして柔軟性を高めるのがソフトウェアの歴史」 これは大学時代に2つ上の先輩が言っていた言葉です。例えばマシン語を直接書くのではなく、アセンブラで書けば、変換(コンパイル)の手間はかかりますが、他のCPUへの移植はしやすくなります。高級アセンブラと名高いC言語を使えばさらに移植性は上がります。C言語で書かれたVMを使う言語、例えばJavaPythonRubyなんかはさらに移植性は上がります。 ストレージもそうです。最終的にストレージはビット列を保存するものですが、それにOSのファイルシステムというレイヤーがあり、そこにスキーマで管理されたデータを入れるDBMSが乗っかり、SQLなどの問い合わせ言語でデータ取得できるようにします。DBMSを挟むことで、レプリケーションでバッ

    データベースと向き合う決意 | フューチャー技術ブログ
    nainaistar
    nainaistar 2022/11/13
    冒頭の「中間層を増やして柔軟性を高めるのがソフトウェアの歴史」が良かった。自分だけが無闇に中間層増やして、自分だけが満足しているのか悩んでいたから。
  • Database Riderを試してみる - CLOVER🍀

    これは、なにをしたくて書いたもの? 以前、DbUnitを使ってエントリーを書いてみました。 DbUnitを試してみる - CLOVER🍀 この時にも少し触れていたのですが、今回はDatabase Riderというものを試してみたいと思います。 Database Rider Database Riderは、DbUnitとJUnitを統合してデータベースのテストをしやすくするものです。 Database Rider integrates DBUnit and JUnit in order to make database testing a breeze! Database Rider 機能としては、以下のようですね。 アノテーションを使ってJUnit Ruleと統合 インターセプターによるCDI統合 JSON、YAML、XML、XLS、CSVデータフォーマットをサポート アノテーションまた

    Database Riderを試してみる - CLOVER🍀
    nainaistar
    nainaistar 2022/11/07
    DatabaseRider面白そうなのでメモ
  • インストラクターアンチパターン : オンライン研修での振る舞い編 - kakakakakku blog

    仕事でインストラクター(技術講師とも言う)になって4年を超えた.また直近2年半ほどはオンライン研修(リモート研修とも言う)をしている.インストラクターはただスライドに書いてあることを喋るのではなく,教授戦略を練って,インストラクションデザインを考えて,お客様の学びを最大化する.とにかく「やりがいのある」仕事だと思う. 当然ながら,インストラクターとしての「ベストプラクティス」的なものはあれど,最終的にはインストラクター自身の「個性(強みや特徴など)」を活かして研修を提供することが重要になる.個性は多岐にわたる!ただし,インストラクター育成をしながら「それは改善しようか!」と伝えることが多い「振る舞いに関するアンチパターン」がある.強制はしないものの今まで繰り返し伝えていて,今後はブログ記事を渡せるようにしたく,今回「汎化して」まとめることにした. 題に入る前に注意点を載せておく.あくまで

    インストラクターアンチパターン : オンライン研修での振る舞い編 - kakakakakku blog
  • なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena

    1990年代にオブジェクト指向分析・設計の方法論がめちゃ流行ったことがあります。 ただ、そのブームが終わって、後続となるような方法論が流行ることはありませんでした。 で、なぜなのか考えていたのですけど、オブジェクト指向方法論のウリは分析段階で出てきたオブジェクト(といいつつクラス)がコードにそのまま引き継がれるというものでした。ようするにオブジェクト指向方法論というのはコードのスケッチを書いて詳細化していくというものだったのです。 しかしながらこれは、スケッチとして書いた分析・設計が間違っていればコードも間違うわけで、強くウォーターフォールの性質をもつものでした。 結局のところスケッチの妥当性というのはコードを書かないと検証ができません。分析・設計段階で見出されたクラスが妥当かというのは、コード書かなければわからなかったのです。逆に、コードを書けば妥当かどうかわかります。であれば、最初から

    なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena
  • Value Objectについて整理しよう - Software Transactional Memo

    Value Objectとは何であるか? マーチン・ファウラーのPatterns of Enterprise Application Architecture(PofEAA)やエヴァンス・エリックのDomain Driven Design: Tackling Complexity in the Heart of Software(DDD)が原典であるが、PofEAAではこう切り出している。 When programming, I often find it's useful to represent things as a compound. プログラミング時は物をcompound(合成物)として表現すると便利なことがしばしばある。 例えば2次元空間上での座標のように複数のメンバ(属性)を持つ物は便利である、と。しかしそれらを比較する方法は一意ではない、そこで Objects that a

    Value Objectについて整理しよう - Software Transactional Memo