並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 371件

新着順 人気順

Exceptionの検索結果1 - 40 件 / 371件

  • しょーもない事務作業を快適にするためのツールを作りたいとき 〜セキュア意識の高い会社編〜 - Qiita

    Pythonインストールできないんだけど! なんかいつもこれ同じ作業してるよな、自動化出来ないかな…よしやったる! ↓ みんなー!こんなツール作ったよー、使ってみてー! ↓ そして起こる「ちょっと、俺、.pyとかいう拡張子使えないんだけど」の声。 会社のPCって外部のアクセス禁止だったり新規ソフトウェアのインストール制限があったりと、色々制約がありますよね。この制約のせいで、作ったはいいが使えなかった、みたいな理不尽なハマり方したり、一方で試してみたら意外とこれ動いちゃうんだ!?みたいなこともあったりするので、ここではそんなずる賢い業務改善を必死に考える社員のみんなに、どれでやれば利用可能なツールづくりができるのか、その選択肢を載せていくよ。 Python + exe化ツール(Pyinstaller) やっぱ中身含めてファイル操作系でちょこちょこやるならPythonが楽だよね。ただ、Pyt

      しょーもない事務作業を快適にするためのツールを作りたいとき 〜セキュア意識の高い会社編〜 - Qiita
    • その例外、いつキャッチするの?

      はじめに 最近、若手のコードレビューをしていて例外の使い方を教える機会があったので、ブログの方にもまとめたいと思います。今回はバッチ編。オンラインだとまた少し違う観点があると思います。また、言語はJavaを前提していますが考え方は例外機構をもつ言語ならあまり変わりません。 TL;DR 例外は原則キャッチしない。バッチは速やかに殺せ 個別箇所でログを出さずに必要な業務情報はExceptionを入れ子にして乗せる 長いバッチのためにはスキップもやむなし 原則、例外はキャッチしない JavaにはErrorとExceptionが存在し、OutOfMemoryErrorとかプログラム上ではどうしようもないものがエラー、ファイルが存在しない(FileNotFoundException)とかプログラム側でハンドリングするもの、と教科書では習うと思います。なのでException系はキャッチするものと、と

        その例外、いつキャッチするの?
      • GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultraに同じ質問をして、回答結果を比較してみた - Qiita

        GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultraに同じ質問をして、回答結果を比較してみたPythonAWSAzureOpenAIGoogleCloud はじめに GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultra(Gemini Advanced)に同じ質問をして、回答結果を比較してみました。 Gemini Ultra以外のモデルはPythonコード上から実行し、Gemini UltraはGemini Advancedのチャット上で実行しています。 各モデルの詳細は以下のとおりです。 G

          GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Haiku)、Claude3(Sonnet)、Claude3(Opus)、Gemini Pro、Gemini Ultraに同じ質問をして、回答結果を比較してみた - Qiita
        • 技術blogのリンクを投げたらChatGPTが要約して、いい感じに整形してチャンネル投稿してくれるbotを社内Slackに生やしたら捗った話

          こんにちは、株式会社シグマアイのエンジニアの@k_muroです。 今回の記事は最近導入した「技術blogを良い感じに共有してくれるSlack bot」のご紹介を。 はじめに 技術の進化は止まらない。(真面目な話、AI系の進捗がマジですごいて全然追えない) 毎日のように新しい技術、フレームワーク、ライブラリ、ツールが生まれています。そんな中でエンジニアとして働いていると、この情報の波に疲れを感じること、ありませんか? ありますよね?(脅迫) 実際私もその一人で、この小さな疲れが積み重なって大きなストレスとなることに気づきました。 「新しい技術情報、追いつけるかな?」 「あのブログ記事、後で読もうと思ってたのに、どこいったっけ?」 「チーム全員が同じ情報を持ってるか心配だな。」 そんな日常の疑問や不安から逃れるための一歩として、私はあるSlack botを開発しました。このbotは、送られた技

            技術blogのリンクを投げたらChatGPTが要約して、いい感じに整形してチャンネル投稿してくれるbotを社内Slackに生やしたら捗った話
          • The 150 Greatest Science Fiction Movies of All Time

            Illustration by Matthew Cooley. Images in Illustration Warner Bros; Everett collection/ Lucasfilm LTD. Disney/PIXAR, Everett Collection, 2 Somewhere, in a galaxy far, far away, Georges Méliès never sends a bunch of folks on a trip to the moon. The adventures of space explorers and time travelers, androids and alien races don’t thrill a generation of kids chomping popcorn at Saturday matinees. The

              The 150 Greatest Science Fiction Movies of All Time
            • 和田 卓人さん(t_wadaさん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」を社内で講演いただきました! | Wantedly Engineer Blog

              こんにちは、ウォンテッドリーDev Branch VPoE 室長の髙橋です。 ウォンテッドリーの開発組織であるDev Branchでは、外部から有識者を招いて勉強会を開催したり、技術顧問として知見を取り入れるなど、プロダクト開発により強い組織となるためにさまざまな施策を行っています。 今回、「テスト書いてないとかお前それ @t_wada の前でも同じ事言えんの」 でおなじみのt_wadaさん(和田 卓人さん、以下和田さん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」をウォンテッドリー向けにカスタマイズして講演いただきました。 このストーリーでは、今回の講演の経緯から社内の反応・Q&Aまで、講演に関する詳細をご紹介いたします。 社内講演のきっかけ事の発端は、弊社のVPoEである要(X : @nory_kaname)より、外部エンジニアを招いて勉強会を開催する旨の問いかけ

                和田 卓人さん(t_wadaさん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」を社内で講演いただきました! | Wantedly Engineer Blog
              • 【ソフトウェア設計】例外処理を考える

                はじめに 最近書いてるソフトウェア設計シリーズです。今回は例外に関して。以前、以下のような記事を書いたのですが、もう少し深堀して書いてみました。 ちなみにソフトウェア設計シリーズは他には以下を書いています。 モジュールになぜ分けるのか? モジュール、依存、そしてカプセル化 モジュールをどう分割するのか? 簡潔さは力なり? 予測可能な振る舞いと簡潔さについて ドキュメントとしてのコメント TL;DR 例外は「原則」キャッチしない 業務例外や必ずハンドリングさせたい例外はOptionalなど戻り値の方が便利 だいたい以下の図が言いたい事のすべて 例外処理とは? 「例外処理(Exception Handling)」は言語に依らず普遍的な関心事です。端的に言えば例外処理は異常やシステムの動作に不備が発生した際の特別な分岐処理です。リカバリやリソースの解放、あるいはユーザへの通知などがありますね。

                  【ソフトウェア設計】例外処理を考える
                • 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
                  • 安全なウェブサイトの作り方~失敗例~ - goruchan’s blog

                    安全なウェブサイトの作り方を読んだので、理解した内容を自分なりにまとめておきます。資料 上記は3章構成になっていてそれぞれ長めの内容なので、ここでは3章の『失敗例』について、Ruby on Rails ではどうするかについてをまとめます。 SQL インジェクション OS コマンドインジェクション パス名パラメータの未チェック例(ディレクトリトラバーサル) 不適切なセッション管理例(セッション ID の推測) クロスサイト・スクリプティングの例(エスケープ処理) CSRFの例 HTTP ヘッダ・インジェクションの例 メールヘッダ・インジェクションの例 参考 SQL インジェクション 参考資料内の SQL インジェクション例を見て、Ruby on Rails ではどのように対策できるかを確認しました。 例えば、下記ような $uid, $pass をユーザ入力とし、SQL 文を動的に生成する場合

                      安全なウェブサイトの作り方~失敗例~ - goruchan’s blog
                    • PythonでDDDやってみた💪 - techtekt

                      はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                        PythonでDDDやってみた💪 - techtekt
                      • ARM に存在する JavaScript 専用命令「FJCVTZS」を追う(ついでに V8 をビルドする)

                        前回の記事では、JavaScript の実行エンジン V8 の JIT 出力コードを読んでみました。記事は M1 Mac 上で動かした結果でしたので、ARM アーキテクチャのアセンブラを読むことになりました。 さてそんな ARM アーキテクチャですが、最近の ARM には FJCVTZS という JavaScript 専用の機械語命令があるのをご存知でしょうか?CPU に、特定の言語(それもコンパイラを持たない JavaScript)専用の命令があると知ったとき、私は大いに驚きました(過去にも Jazelle みたいなものはありましたが) 今回は、この FJCVTZS 命令について、実際にどれだけ効果があるのか、V8 をビルドしながら調べてみましょう。 FJCVTZS 命令とは? FJCVTZS 命令は、Arm v8.3 から導入された JSCVT 命令の一つで、JavaScript の言

                        • Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena

                          ま、このくらい知っておいてもらわないと&とりあえずこんだけ知ってればだいたいの処理が書けるクラス・インタフェースをまとめてみました。2024年版。 詳しく知りたい人は「プロになるJava」を! java.lang.Class java.lang.Exception <- new java.lang.Integer java.lang.Object <- new java.lang.Runnable java.lang.String java.lang.System java.lang.Thread java.nio.file.Files <- new java.nio.file.Path <- new java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.io.OutputStream java.

                            Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena
                          • ぼくのかんがえたさいきょうのDevOps実現構成

                            はじめに 昨年、AWS のインフラを運用・監視する上で使いやすいと思ったサービスを組み合わせて構成図を紹介した記事、「【AWS】ぼくのかんがえたさいきょうの運用・監視構成」が投稿したその日の Qiita のトレンド 1 位になり、はてなブックマークのテクノロジー分野でトップを飾りました。(たくさんの方に見ていただき感謝してます!) 本記事では「ぼくのかんがえたさいきょうの運用・監視構成」の続編として「ぼくのかんがえたさいきょうの DevOps 実現構成」を紹介させていただきます。あくまでも「ぼくのかんがえた」なので私個人の意見として受け入れていただけると助かります。 前回の記事でもお伝えいたしましたが、各個人・企業によって環境は違うと思いますし、使いやすいサービスは人それぞれだと思うので、これが正解という訳ではありません。一個人の意見として参考にしてただければ幸いです。 また、こちらの記事

                              ぼくのかんがえたさいきょうのDevOps実現構成
                            • 優秀と噂なCohere社のCommand R+でRAGチャットボットを簡単に構築して体験しよう! - Qiita

                              1. はじめに Cohere社が最近リリースしたLLMのCommand R+がGPT4に迫る性能を発揮していたり、RAG利用での性能で話題となっています。 そのCommand R+でRAGを体験できるチャットアプリの実装がLightningAIにてチュートリアルが公開(CC-BY-4.0ライセンスとして)されています。 これを身近な環境で動かしてみたいと思います。 このチャットボットでCohere社の以下のモデルが使われています LLM: Command R+ Embed: embed-english-v3.0 / embed-multilingual-v3.0 Reranker: rerank-english-v3.0 / rerank-multilingual-v3.0 以下の動画のようにブラウザでPDFファイルをアップロードしてチャットで問い合わせができます。 2. 必要なもの 以下

                                優秀と噂なCohere社のCommand R+でRAGチャットボットを簡単に構築して体験しよう! - Qiita
                              • 土日で完成! 趣味のラズパイ ChatGPTで遊ぼう——ラズパイで作ったデジタル時計に天気情報も表示させる|fabcross

                                天気予報をデジタル時計に加えるには、外部の天気予報APIを利用する必要があります。一般的に利用されるのはOpenWeatherMap APIですが、これを使用するにはAPIキーが必要です。APIキーはOpenWeatherMapのウェブサイトで無料で取得できます。 以下の手順では、OpenWeatherMap APIを使用して現在の天気情報を取得し、それをOLEDディスプレイに表示する方法を示します。このコードは前の時計と曜日を表示するコードに基づいています。 ### 必要なライブラリのインストール - 天気情報を取得するために`requests`ライブラリを使用します。このライブラリがまだインストールされていない場合は、インストールしてください。 pip3 install requests ### OpenWeatherMap APIの設定 1. OpenWeatherMapの[公式サイ

                                  土日で完成! 趣味のラズパイ ChatGPTで遊ぼう——ラズパイで作ったデジタル時計に天気情報も表示させる|fabcross
                                • Goのerrorがスタックトレースを含まない理由 - methaneのブログ

                                  Twitterでこんな記事を見かけたので。 zenn.dev ジェネリクスの件もそうですが、Goの言語設計は現実主義なのになにか特別なポリシーによるものだと宗教化されてしまって、ファンには勝手に崇拝されてアンチにはディスられがちだなーと感じます。 Goのエラー処理を改善する実験プロジェクトxerrorsがGo本体のerrorsにマージされた時、 errors.New() はスタックトレースを取得していました。しかしGo 1.13がリリースされる前に削除されました。 削除された理由の1つは、今までの errors.New() のパフォーマンスに依存していたコードの速度が低下しアロケーションが増えることです。 github.com しかし、これが理由だと今まで思ってたのですが、実際にはもう1つより重要な理由がありました。エラーのフォーマットです。エラーに複数のフォーマットを持たせようという提案

                                    Goのerrorがスタックトレースを含まない理由 - methaneのブログ
                                  • 【Amazon Bedrock】AWSサービスのみを使ったシンプル構成のRAGアプリを作ってみた - NRIネットコムBlog

                                    はじめに RAGとは 構成図 作成リソース Lambda 1. PDFから文書抽出&Embedding取得Lambda 2. 回答作成用Lambda AWS SAM テンプレート Streamlit 動作確認 まとめ はじめに こんにちは堤です。 Amazon BedrockがGAとなり、AWS内で完結してLLMアプリケーションを構築できるようになりました。 試しにRAGアプリケーションを作成してみようと思いましたが、現状AWSでRetrievalするデータソースを作成しようとすると、Amazon OpenSearch Serverless やAmazon Kendraを使用するしかありません。これらのサービスを使うのはコストもそれなりにかかり少しハードルが高いなーと思っていたら以下のブログを見つけました。 aws.amazon.com 構成図を見ると分かるように、S3にembedding

                                      【Amazon Bedrock】AWSサービスのみを使ったシンプル構成のRAGアプリを作ってみた - NRIネットコムBlog
                                    • PostgreSQLのPub/Sub機能とJavaのクライアント実装 | フューチャー技術ブログ

                                      本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を改訂したものです。 はじめにPub/Sub型のメッセージングアーキテクチャを採用するにあたっては、kafkaなどのブローカーミドルウェアや、Amazon SNS、Google Cloud Pub/Subなどのマネージドサービスを利用するケースが多いかと思います。ところでPostgreSQLでも実はPub/Subができます。 すでに業務でPostgreSQLを使っていれば、新たにPub/Subブローカーを構築しなくても、疎結合なシステム間通信を簡易的に実現できます。 本記事ではこの機能の紹介と、Pub/SubクライアントをJavaで実装する場合の選択肢、考慮点を示しています。 ※実行環境はPostgreSQL 16.2とJava 21です ※データベースの文字コードはUTF-8としてい

                                        PostgreSQLのPub/Sub機能とJavaのクライアント実装 | フューチャー技術ブログ
                                      • Node.jsでTypeScriptのコードを実行できるようになるかも - hiroppy's site

                                        module: add --experimental-strip-types by marco-ippolito · Pull Request #53725 · nodejs/node It is possible to execute TypeScript files by setting the experimental flag --experimental-strip-typ... 💁‍♀️ まだマージされてない点に注意してください --experimental-strip-typesというフラグを実行時に付けることにより、Node.jsでTypeScriptのコードを実行できるようになるPRが出てきました。 背景 TC39でも型注釈の話題(議事録を読むとブラウザとの兼ね合いもあり道のりは長そう)が存在するほどJSのコードにおいて、型は当たり前となっています。 Node.jsと同

                                          Node.jsでTypeScriptのコードを実行できるようになるかも - hiroppy's site
                                        • OpenAIのBatch APIを使ってお得にプロンプトを一括処理してみる - Taste of Tech Topics

                                          はじめに こんにちは。データサイエンスチームYAMALEXのSsk1029Takashiです。 最近はOpenAIに日本支社が出来て、日本語対応が加速するというニュースにわくわくしています。 今回はそんなOpenAIから発表されたBatch APIという機能が便利、かつお得な機能だったのでどのように使えるのか試してみます。 Introducing the Batch API: save costs and get higher rate limits on async tasks (such as summarization, translation, and image classification). Just upload a file of bulk requests, receive results within 24 hours, and get 50% off API pri

                                            OpenAIのBatch APIを使ってお得にプロンプトを一括処理してみる - Taste of Tech Topics
                                          • TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog

                                            Digitization部 Bill One Entry*1グループの秋山です。 はじめに Domain Modeling Made Functionalというスゴ本 補講:Make Illegal States Unrepresentable バックエンドの処理を抽象化する 手続き型プログラミングの典型例 課題1:制約のないエラーハンドリング 課題2:低い可読性 課題3:エラーハンドリングの低い網羅性 Railway Oriented Programming TypeScriptで型安全にエラーハンドリングする ステップ1:サブ関数の出力はResult型で表現する ステップ2:サブ関数にResult型を入力できるようにする ステップ3:サブ関数を連結する ステップ4:網羅的にエラーハンドリングする おわりに 付録 TypeScriptの全文サンプル はじめに エラーハンドリングは重要な処

                                              TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog
                                            • 開発責任者として、事業会社にジョインして半年の振り返り

                                              あれこれ 備忘録的な書き殴りな文書です。あしからず。 オシャンティーな技術スタックで、大きな組織でやるのも面白いと思うけど、小さな会社でレガシーなシステムやメンバーと向き合うのも悪く無いよ!ってことを伝えたいのだけど、これが楽しめる人いるかな?私は楽しいよ! ジョインした時点の状況 開発体制 開発エンジニア(入社半年) インフラエンジニア(5年前後、QA兼ねる) 主力サービスの協力会社 0.5人月程度 会社の屋台骨の 主力事業のSaaSサービスがあるが、業務委託の0.5人月程度の工数の範囲でできる改修を行っていた。 開発エンジニアは新規機能を開発していた。 課題感 一度作られたシステムは、表(UI/UX)も、裏(システム)もレガシーな状況であった。 限られたエンジニアのリソースは、営業視点で、あったら売りやすい機能開発に費やされており、負債返却や、使い心地の改善には充てられていなかった。

                                                開発責任者として、事業会社にジョインして半年の振り返り
                                              • プロと読み解くRuby 3.3 NEWS - STORES Product Blog

                                                テクノロジー部門CTO室の笹田(ko1)と遠藤(mame)です。今年の 9 月から STORES 株式会社で Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています(Rubyのこれからを STORES で作る。Rubyコミッター笹田さん、遠藤さんにCTOがきく「Fun」|STORES People )。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.3.0 がリリースされました(Ruby 3.3.0 リリース)。クックパッド開発者ブログで連載していたように、今年も STORES Product Blog にて Ruby 3.3 の NEWS.md ファイルの解説をします(ちなみに、STORES Advent Calendar

                                                  プロと読み解くRuby 3.3 NEWS - STORES Product Blog
                                                • Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog

                                                  テクノロジー部門で Ruby インタプリタの開発をしている笹田です。RubyKaigi 2024 楽しみですね。 さて、Ruby のメソッドを定義するとき、仮引数がある場合、カッコを省略することができます。 def foo(x, y) end def bar x, y end bar の定義の方法ですね。私は好んでこの書き方をしてたんですが、同僚の遠藤さんに「そんな書き方をしているのは今時笹田だけだ」と言われてショックを受けたので、ちょっと調べてみました。 ちなみに、カッコがないと使えないメソッド定義の方法があるので、その時には涙を呑んでカッコをつけます。 def foo(kw:) # 必須キーワード引数 end def bar(&) # 無名ブロック引数 end 補足1:Ruby では「メソッド呼び出し時にカッコをつけるかどうか」にいろいろな論争がありますが、ここでは「メソッドを定義する

                                                    Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog
                                                  • OpenAI の GPT-4-vision-preview (VLM) を利用した商品画像のタグ付け - DROBEプロダクト開発ブログ

                                                    はじめに DROBE の課題と GPT-4-Vision-Preview を試すモチベーション ケーススタディ 入力するデータ 推論周辺部分のコード プロンプト 実験結果 おわりに 参考文献 はじめに OpenAIが Dev Day で発表したGPT-4-Vision-Previewは、画像処理と自然言語処理を組み合わせた最先端の技術です。 このモデルは、画像を理解し、その内容に基づいてテキスト情報を生成する能力を持っています。例えば、写真やイラストから物体を識別し、それに関連する説明や情報をテキストとして提供できます。この技術は、画像とテキストの間のギャップを橋渡しするものであり、多様な応用が可能です。 DROBEは、多様なファッション商品を取り扱うECサイトを運営しています。我々の挑戦の一つは、膨大な数の商品画像と説明文から、正確で有用なタグを抽出し、整理して保存しておく事です。このプ

                                                      OpenAI の GPT-4-vision-preview (VLM) を利用した商品画像のタグ付け - DROBEプロダクト開発ブログ
                                                    • LINEヤフー Tech Blog コード品質向上のテクニック: 第 1 回

                                                      こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 私達は、高い開発生産性を維持するために、コード品質と開発文化の改善に注力しています。 そのために様々な取り組みを行っているのですが、その 1 つとして Review Committee の活動があります。 Review Committee では、マージ済みのコードを再度レビューし、レビューアとオーサーにフィードバックしたり、レビューで集めた知見を Weekly Report と称して毎週共有したりしています。 この Weekly Report で共有される話題は、Android や iOS といったプラットフォームや、Kotlin や Swift 言語固有の注意点も含まれるのですが、多くの場合はプログラミング一般に適用できるものになるように配慮しています。(ただし、説明のために使うコードは Ko

                                                        LINEヤフー Tech Blog コード品質向上のテクニック: 第 1 回
                                                      • How an empty S3 bucket can make your AWS bill explode

                                                        Update AWS started investigating the issue: https://twitter.com/jeffbarr/status/1785386554372042890 Imagine you create an empty, private AWS S3 bucket in a region of your preference. What will your AWS bill be the next morning? A few weeks ago, I began working on a PoC of a document indexing system for my client. I created a single S3 bucket in the eu-west-1 region and uploaded some files there fo

                                                          How an empty S3 bucket can make your AWS bill explode
                                                        • Ultimate Guide to Visual Testing with Playwright

                                                          As your web app matures, it becomes challenging to ensure your GUI doesn’t break with any given update. There are a lot of browsers and devices, and countless states for every one of your components. Unit tests ensure your code remains consistent, and E2E tests will ensure your system remains consistent, but neither will catch visual anomalies, layout issues, or platform compatibility issues. Ente

                                                          • 自分のAWS環境について何でも教えてくれるエージェントが作れそう(Agents for Amazon Bedrock + Knowledge bases for Amazon Bedrock) - Qiita

                                                            ただし、LangChainが動作しているホストマシンの環境でPythonスクリプトを実行するので、誤って大事なファイルを消したりする危険性があります。 これをLambdaで動作させようと考えました。 Python REPLのLambda化 Python REPLの実装はとてもシンプルです。90行しかありません。 参考:GitHubのソースコード Lambdaへ移植する際に気をつけたのは2点です。 動作に不必要なLangChainの依存を削除する multiprocessing.QueueはLambdaで動作しないため、multiprocessing.Pipeに置き換える(参考) 出来上がったのが以下の3つの関数です。クラスですらなくしてしまいました。 import logging from multiprocessing import Process, Pipe import re imp

                                                              自分のAWS環境について何でも教えてくれるエージェントが作れそう(Agents for Amazon Bedrock + Knowledge bases for Amazon Bedrock) - Qiita
                                                            • pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog

                                                              概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは本質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 本記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケース毎に DB を簡単に初期化しつつ、テストケース毎の前提データ登録も簡単うことでテスト開発体験を向上させる方法を紹介します。 前提環境 本記事では、以下の環境を前提として説明いたします。 python

                                                                pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog
                                                              • モバイルアプリ上の WebAssembly 製ライブゲームで発生した例外を捕捉して計測する - Mirrativ Tech Blog

                                                                こんにちは、エンジニアのちぎら(@_naru_jpn)です。ミラティブでは、配信中のゲームに視聴者が介入できるゲームとライブ配信が融合した次世代のゲーム体験を提供しており、この体験を ライブゲーミング と呼んでいます。 ライブゲーミングは、Unity から WebGL 向けにビルドされた WebAssembly 製のゲームを、アプリに配置したウェブブラウザ上で動作させることによって実現しています。*1 今回は UnityでモバイルWebGLゲーム開発を頑張る話 の「メモリリークによって発生するクラッシュ」にも書かれているような、捕捉は難しいがユーザー影響があるような例外の発生を捕捉して、計測をするための仕組み作りについて解説をします。 ライブゲームが動作する仕組み 例外を捕捉することを考える前に、ライブゲームがどのように動作しているのかを知る必要があります。 Unity の WebGL 向

                                                                  モバイルアプリ上の WebAssembly 製ライブゲームで発生した例外を捕捉して計測する - Mirrativ Tech Blog
                                                                • OrbStack 1.0: Fast, light, easy way to run Docker containers and Linux

                                                                  If you work with Docker on an M1 Mac, do yourself a favor and install orbstack.dev Every operation feels 100x faster, and it should also have a lighter impact on the battery life of M1 Macs. ⚡️🔋 Hat tip to @kandros5591 👏 OrbStack is light Are your MacBook's fans taking off into space? OrbStack also has optimizations to strike a careful balance between performance and resource usage, resulting in

                                                                    OrbStack 1.0: Fast, light, easy way to run Docker containers and Linux
                                                                  • 2024年の今、いかにしてVS2005を捨ててVS2015にする戦いは終わったか、そしてなぜCOMとの苦しい戦いが繰り広げられたか ~再入の悪魔~ - OPTiM TECH BLOG

                                                                    概要 Optimal BizのWindows AgentはながらくVisual Studio 2005とVisual Studio 2015を併用してビルドする必要がありました。Visual Studio 2015化対応は2012年のVisual Studio 2012化対応からスタートしていましたが、対応範囲の大きさからモジュールごとにVisual Studio 2015化対応を行ってきました。そして2024年リリースのBiz 9.19.0にてVisual Studio 2015化対応は完了を迎えました。 しかし、埋め込まれたバグの修正にはCOMの理解が不可欠であったため、2020年代に突入した今になって私達はこれまで正面戦争を避けてきたCOMを0から学び直す必要がありました。そしてATLの不思議な挙動やSTAにおける再入との戦いを乗り越え、無事にリリースされました。 はじめに Opti

                                                                      2024年の今、いかにしてVS2005を捨ててVS2015にする戦いは終わったか、そしてなぜCOMとの苦しい戦いが繰り広げられたか ~再入の悪魔~ - OPTiM TECH BLOG
                                                                    • UTF-8 の BOM について - 将棋プログラミング

                                                                      1.はじめに UTF-8 の文字コードのファイルには、BOM (Byte Order Mark) がある場合とない場合がある。 Unicode の規格では、BOM は、推奨されないが、許容されている。 ja.wikipedia.org 今回、必要があり、色々な OS や言語で、UTF-8 の文字コードのファイルを作成した時、BOM が記録されるか、されないか、を調べた。 2.色々な OS や言語での BOM 2.1 Windows 10, Visual Studio, C++, _wfopen (_tfopen), // Visual Studio 2005 以降 保存 FILE *fp = _wfopen(name, _ L"w, ccs=UTF-8"); if (fp == NULL) { // エラー処理 } fwprintf_s(fp, L"ABC漢字123\n"); fclose

                                                                      • 「イスラエルは戦争犯罪」と国際会議の代表が発言したことを受けてイスラエルがボイコット&有力者も次々にボイコットを表明

                                                                        テクノロジー関連の国際カンファレンス「Web Summit」の代表が「イスラエルの戦争犯罪は非難されるべき」と発言した結果、イスラエルがカンファレンスをボイコットする事態に発展しました。加えて、イスラエル以外の国に居住する複数の有名技術者もボイコットを表明しています。 Israel pulls out of participation in Web Summit event over Paddy Cosgrave tweets – The Irish Times https://www.irishtimes.com/technology/big-tech/2023/10/16/israel-pulls-out-of-participation-in-web-summit-event-over-paddy-cosgrave-tweets/ Web Summit derailed by fou

                                                                          「イスラエルは戦争犯罪」と国際会議の代表が発言したことを受けてイスラエルがボイコット&有力者も次々にボイコットを表明
                                                                        • 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

                                                                          50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs 50 Shades of Go in Other Languages Chinese Translation: blog post, segmentfault (by wuYin) - needs updates Another Chinese Translation: blog post (by Shadowwind LEY) - needs updates Russian Translation: blog post (by Ilia Ozhereliev, Mail.Ru Group Blog) - needs updates Overview Go is a simple and fun language, but, like any o

                                                                          • Laravel 11 アプリケーション構造移行ガイド

                                                                            はじめにLaravel 11の新機能に 合理化したアプリケーション構造 “Streamlined Application Structure” というものがある: Laravel 11では、既存のアプリケーションに変更を加えることなく、新しいLaravelアプリケーション向けに合理化したアプリケーション構造を導入しました。新しいアプリケーション構造は、Laravel開発者がすでに慣れ親しんでいるコンセプトの多くを保持しながら、よりスリムでモダンなエクスペリエンスを提供することを目的としています。 https://readouble.com/laravel/11.x/ja/releases.html#structure 該当プルリクエスト で Slim skeleton と題されている通り、初期構造が大幅に簡略化されている。 一方、既存のアプリケーションをアップグレードする場合: Larav

                                                                            • PHP の Carbon をだいたい 3 倍くらい高速化した話 (または composer-patches の使い方) - COLOPL Tech Blog

                                                                              こんにちは。 Platform Engineer の工藤です。 今回は PHP で利用される日時ライブラリ nesbot/carbon の速度をだいたい 3 倍くらい高速化した話について紹介させていただきます。 nesbot/carbon について carbon.nesbot.com github.com nesbot/carbon は PHP で日付・時刻を扱うためのライブラリで、 PHP 標準の ext-date を拡張し、より利用しやすい形で提供してくれます。PHP のアプリケーションフレームワークで有名な Laravel でも標準で採用されており、昨今のプロジェクトだと基本入っている場合が多いと思います。 バージョンアップでパフォーマンスが悪化 便利な nesbot/carbon ですが、 Laravel 6 の EOL による Laravel 9 へのアップグレード対応の際、大幅

                                                                                PHP の Carbon をだいたい 3 倍くらい高速化した話 (または composer-patches の使い方) - COLOPL Tech Blog
                                                                              • メルコインにおけるGitHub Actions活用術 | メルカリエンジニアリング

                                                                                こんにちは。メルコインのバックエンドエンジニアのiwataです。 この記事は、Merpay Advent Calendar 2023 の23日目の記事です。 私はいまメルコインのCoreチームに属しています。Coreチームでは主にお客さまからの暗号資産の売買注文を受け付ける部分のマイクロサービスを開発運用しています。 メルコインではCI環境としてGitHub Actions self-hosted runnerを使用しています。またCIだけでなく、さまざまな自動化のためのワークフローの構築もこの環境を用いて実行しています。この記事では私の所属しているCoreチームにおいてGitHub Actions上に構築しているオートメーションについて紹介したいと思います。 PR-Agent PR-AgentはOpenAI APIを使って、PRのコードレビューなどを自動化してくれるActionです。La

                                                                                  メルコインにおけるGitHub Actions活用術 | メルカリエンジニアリング
                                                                                • 小数点の罠:メンバーシップポイント計算の裏側 - BASEプロダクトチームブログ

                                                                                  はじめに この記事はBASEアドベントカレンダーの四日目の記事です。 こんにちは!私は@shiiyannnと申します。現在、メンバーシップ Appの開発に携わっています。メンバーシップ Appはショップオリジナルの「メンバーシップ」(会員制度)を作成することができる機能です。 2023年9月、メンバーシップ Appは大幅な機能アップデートを遂げました。今回のアップデートでは、ショップオーナーが商品購入時に独自のポイントを付与できるようになりました。付与されるポイントの量は、注文金額にショップオーナーが設定したポイント付与率を掛け合わせて計算されます。 この記事では、ポイント付与機能の開発中に直面した、浮動小数点計算の問題とその解決策についてお話しします。この問題を深掘りすることで、料率計算や金額処理に取り組む開発者の皆さんに有益な情報を提供できればと考えています。 リリース直前に発見した浮

                                                                                    小数点の罠:メンバーシップポイント計算の裏側 - BASEプロダクトチームブログ