並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 48件

新着順 人気順

デコレータの検索結果1 - 40 件 / 48件

  • 脳に収まるコードの書き方

    Mark Seemann 著、吉羽 龍太郎、原田 騎郎 訳、Robert C. Martin まえがき TOPICS 発行年月日 2024年06月 PRINT LENGTH 312 ISBN 978-4-8144-0079-9 原書 Code That Fits in Your Head FORMAT Print PDF EPUB ソフトウェアは複雑さを増すばかりですが、人間の脳は限られた複雑さしか扱えません。ソフトウェアが思い通りに動くようするには、脳に収まり、人間が理解できるコードを書く必要があります。 本書は、拡張を続けても行き詰ることなくコードを書き、複雑さを回避するための実践的な方法を解説します。最初のコードを書き始めるところから機能を追加していくところまでを解説し、効率的で持続可能なペースを保ちながら、横断的な問題への対処やトラブルシューティング、最適化を行なう方法を説明します

      脳に収まるコードの書き方
    • サーバーレスの次はなんなんだ

      はじめに この記事は、同人誌サークル「めもおきば」から不定期刊行している技術解説本「めもおきばTecReport」に書いたものを公開用に再編集したものです。 ⇒ めもおきばTecReport 2023.12 この記事のほかにも「私もSecHack365に参加したい!」や、「2023年振り返りと2024年技術予想」としてこんなキーワードを取り上げているので、気になったらぽちっとしてください! メガクラウドと特化型クラウド/ハイパーバイザーのSoC化/ライセンスとクラウドベンダー/イベント駆動型API/LLM時代のAIペアプロ力/生活必需品としてのGPU・NPU/Passkey/ウェブアクセシビリティ/リアルイベントの再開 サーバーレスの次はなんなんだ サーバーレスと呼ばれる技術ムーブメントが盛り上がり始めて8年近くが経ちました。各クラウドベンダーのFaaS(Function-as-a-Ser

        サーバーレスの次はなんなんだ
      • 2023年下半期に他人に勧めたいWeb技術まとめ

        はじめに Web技術は日進月歩で新しい技術が増えているが、実務でそれらすべてを触る機会はない。そこで、今回の記事では2023年下半期に赤の他人に勧めたいWeb技術を個人の独断と偏見で解説する。 対象者 これから何をすればいいのかわからないプログラマー 新しい技術に興味があるひと スキルセットを拡大したいひと タイトルでなんとなく気になったひと フレームワーク FastAPI FastAPIはPythonでAPIを開発するために開発された軽量のWebフレームワークだ。FastAPIでは、主に以下の特徴がある。 Node.jsやGo言語に匹敵する高速なアプリケーションを開発できる 構造が簡単(Flaskの影響を受けている) Pythonに型定義を含められる 環境構築がコマンド一つで終了する 非同期処理を簡単に実装できる Pythonで開発されているので、機械学習との相性が抜群 RESTとGra

          2023年下半期に他人に勧めたいWeb技術まとめ
        • Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる

          Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる 概要 Pythonのテストライブラリといえばpytestが一般的です。 Python標準のuniitestとは異なり、クラスベースではなく関数ベースでテストコードを記述することが一般的ですが、fixture,conftest,parametrizeを理解すると一気に世界が変わり、テスト体験が圧倒的に向上するため、これらの実装方法を紹介します。 リポジトリ 本記事の説明に使用しているサンプルのテスト実装は、以下のリポジトリです。 想定読者 PythonやGitの基本的な使い方を理解している方を想定しているため、基本的な用語説明は省略しています。 環境 エンジニアの利用率の高いmacOSを前提として説明していますので、その他の環境の方は随時読み替えてください。 開

            Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる
          • 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で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
              • 個人開発OSSが世界に勝てなかった話

                ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

                  個人開発OSSが世界に勝てなかった話
                • Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp

                  寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的⁠・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ

                    Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp
                  • 高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita

                    アリスは驚きと興奮を抑えきれませんでした。彼女はすぐに新しいコードを試し、その速さに目を見張りました。今まで数時間かかっていた計算が、ほんの数分で終わったのです。 翌日、アリスはこの発見を友人たちに話しました。友人たちも同じように魔法の本を使い、彼らのコードを高速化しました。こうして、プログラミング王国全体で「JITの魔法の本」が広まりました。 やがて、アリスは王国のプログラミング大会で優勝し、JITの魔法の本の力をさらに広めることになりました。彼女は「JITの守護者」として称えられ、プログラミング王国はかつてない繁栄を迎えました。 アリスはいつも心に誓いました。どんなに強力なツールも、それを使う人々の努力と情熱があってこそ、本当の力を発揮するのだと。彼女の言葉は次世代のプログラマーたちに伝わり、JITの魔法の本は永遠に受け継がれていくのでした。 前回のあらすじ。 Python count

                      高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita
                    • 【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita

                      これは何? 競技プログラミングをPythonでやるときに注意すべき点をまとめました。 言語選択編 PythonがAtCoderには5種類ある AtCoderにはPythonの処理系が5つ入っています。具体的には Python (CPython 3.11.4) Python (Mambaforge / CPython 3.10.10) Python (PyPy 3.10-v7.3.12) Python (Cython 0.29.34) SageMath (SageMath 9.5) の5つです。それぞれ特徴があります。 Python (CPython 3.11.4) 一番オーソドックスなPythonです。 一般に(競プロ界隈でなく)Pythonというときはこれを指すと思います。 Python (Mambaforge / CPython 3.10.10) mambaforge経由で導入されたp

                        【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita
                      • Infrastructure from Code (IfC) ツールまとめ - maybe daily dev notes

                        昨今Infrastructure from Code (IfC)という概念をよく耳にします。先日もAWSのGregor Hohpeが関連する記事を書いていました。 architectelevator.com この記事では、Infrastructure from Codeとはなにか簡単に紹介し、具体的にどのようなツールがあるか網羅的にまとめます。 Infrastructure from Codeとはなにか Infrastructure from Code (IfC) とは、その名の通り、Infrastructure as Code (IaC) に関連する概念です。IaCとの根本的な違いは、IaCは開発者がインフラを明示的に意識して構成を記述するのに対し、IfCでは開発者がインフラをできるだけ意識しないよう抽象化を試みていることです。これにより、差別化に繋がらない重労働ができる限り排除された高

                          Infrastructure from Code (IfC) ツールまとめ - maybe daily dev notes
                        • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

                          この記事はScala Advent Calendar 2023の11日目です. 最近, 趣味でScala 3のコードをだいぶ書いていて, マクロの使い心地のよさに感心しました. 理論的な背景も含めて, 産業界で多く使われているプログラミング言語の中では筆者の知る限りぶっちぎりに優れたマクロを備えています. 他の言語にも見習ってほしいですね. たぶん見習おうとすると処理系を作り直す羽目になりますが. この記事ではScala 3のマクロのすごいところを例を使って紹介します. マクロの実践的な例 準備 実践的な例: NamedArray – 名前でアクセスできる配列 NamedArrayのマクロ実装 記述が明瞭 メタレベルのプログラムの扱い クォートとスプライスがある パターンマッチもある 生成コードに型がつく 多段階計算に基づいている クォートとスプライスの本当の意味 ネストしたスプライス ネ

                            あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
                          • 2023年版!エンジニア必見のチートシート集 - Qiita

                            2. 機械学習・AIチートシート まずは機械学習やAI開発に関わるチートシートからです! Machine Learning Cheat Sheet | DataCamp 主要な機械学習アルゴリズム、その利点と欠点、および使用ケースをガイドするものです。初心者からエキスパートまで、誰でも役立つリソースです。 機械学習アルゴリズム チートシート MicrosoftのAzureが提供している機械学習アルゴリズムに関するチートシートです。 TensorFlow Cheat Sheet https://zerotomastery.io/cheatsheets/tensorflow-cheat-sheet/ 機械学習と人工知能のためのオープンソースライブラリ、TensorFlowのチートシートです。基本的な概念やベストプラクティスがまとめられています。 (メールアドレスでサブスクライブするとPDFがダ

                              2023年版!エンジニア必見のチートシート集 - 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
                              • 【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog

                                ABEJA でプロダクト開発を行っている平原です。 先日、バックエンドで使っているGo言語のお勉強しようと「go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んでいました。その中でinterfaceは(パッケージを公開する側ではなく)受け側で定義するべきという記述を見つけてPythonでも同じことできないかと調べていると(PythonではProtocolを使うとうまくいきそうです。)、どうやら型ヒント機能がかなりアップデートされていることに気づき慌てて再入門しました。(3.7, 3.8あたりで止まってました。。) この記事では、公式ドキュメントを見ながら適当にコードを書き散らし、どの機能はどこまで使えるのか試してみたことをまとめてみました。 docs.python.org 環境 Python: 3.12.1 エディタ: Visual Studio Code Pylan

                                  【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog
                                • バックエンド視点で振り返るGraphQLを採用したプロダクト開発 - enechain Tech Blog

                                  はじめに 技術スタック eScanチームにおけるGraphQLの使い方 開発フローの工夫 N+1問題の対応と注意点 エラーハンドリングの工夫 モニタリングの工夫 ドキュメンテーションを必須化するための工夫 その他の取り組み 振り返り 良かった点 難しかった点 今後の展望 最後に はじめに こんにちは、enechainでソフトウェアエンジニアをしている小沢です。 私が所属しているチーム(以降、eScanチーム)では、eScanという電力会社向けのリスクマネジメントシステムを開発・運用しており、その中でGraphQLを採用しています。すでにGraphQLを採用するメリット・デメリットについて様々なところで語られていますが、eScanチームでもオーバーフェッチが解消できる点、1リクエストで必要なデータをフェッチできる点などのメリットを享受するために採用しています。 今回は実際にGraphQLを採

                                    バックエンド視点で振り返るGraphQLを採用したプロダクト開発 - enechain Tech Blog
                                  • 「JS体操」のすゝめ 〜その①〜 - KAYAC engineers' blog

                                    このエントリは【カヤック】面白法人グループ Advent Calendar 2023 の24日目の記事です。 こんにちは!意匠部のおばらです。 面白法人カヤックでは日々、様々な社内勉強会が開催されています。本記事では JS 好きな社内のエンジニア向けに私が企画&主催している「JS体操」についてご紹介します。 記事の最後にはみなさんも挑戦できるように最新の「JS体操」を紹介しています。ぜひ挑戦してみてください。 1.「JS体操」とは? 2.「JS体操」の掟 3.「JS体操」のメニュー 3.1. 何らかのロジックを解く 3.2. コードゴルフで文字数を競う 4.「JS体操」の流れ 4.1. 出題方法 4.2. 解答方法 4.3. 実際の様子 5.「JS体操」の過去問の紹介 5.1. 第一回 5.2. 第二回 5.3. 第三回 5.4. 第八回 5.5. 第十一回 5.6. 第十四回 5.7.

                                      「JS体操」のすゝめ 〜その①〜 - KAYAC engineers' blog
                                    • TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて

                                      本連載の趣旨 本連載は、TypeScriptのアップデートを紹介する連載です。 TypeScriptは、その登場以来、順当にバージョンアップを重ね、現在(原稿執筆時点)5.2が最新となっています。各バージョンアップでは、性能改善に関するアップデートが主なものもあれば、大きな機能追加が施されたものもあります。 本連載では、これらのアップデートの内容のうち、バージョン3から5.2までに施されたものを整理し、テーマごとに紹介していきます。具体的には、以下のテーマを予定しています。 タプルに関するアップデート 型システムに関するアップデート 型の絞り込みに関するアップデート クラス構文に関するアップデート デコレータに関するアップデート 第1回目である今回は、上記テーマに含まれていないもので重要なアップデートを取り上げます。これらは、ひとつのテーマで連載1回分の内容にはならないものを、詰め合わせセ

                                        TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて
                                      • TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?

                                        CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                          TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?
                                        • Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か

                                          Hypothesisとは何か、プロパティベーステストとは何か Hypothesisは、Python向けのプロパティベーステストのライブラリである。 プロパティベーステストは、生成された多数の入力データに対してプロパティ(性質)が満たされるかどうかをテストする手法である。 HaskellのQuickCheckライブラリが初出で、現在は各プログラミング言語に移植されている。 従来のユニットテストは、ある程度固定したテストデータを指定してテストを行っていた。 その際、境界値分析などで妥当なパラメータを決定していた。 しかし、境界値分析が必ず通用するとは限らないし、人間が行う以上、ミスも発生する。 プロパティベーステストはデータを固定する代わりにそのデータが満たすプロパティを指定してテストを行う。 実際のテストケースはHypothesisがプロパティを満たすパラメータを決めて生成してくれる。 人力

                                            Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か
                                          • タスクとパラメータの一元管理で実現するMLOps - enechain Tech Blog

                                            はじめに 背景 タスクランナーを導入するモチベーション パラメータ管理ツールを導入するモチベーション 実現したいこと モデルや環境に依存しないタスクによるパイプラインの操作 共通部分と環境特有部分を分離したパラメータ定義 パラメータ定義の構造化 実装方法 利用するツール パラメータファイル 構造化パラメータのマージ処理の実装 おわりに はじめに enechain データサイエンスデスク エンジニアの藤村です。 enechainでは市場活性化を目的として、機械学習や最適化アルゴリズムを用いて電力や燃料などの商品に関する指標を算出し、社内外に提供しています。本稿では、これらを算出するモデルの構築・運用を効率化するために作成した、タスクランナーinvokeとパラメータ管理ツールhydraを一体化したシステムを紹介します。 背景 タスクランナーを導入するモチベーション 機械学習モデルの構築・運用に

                                              タスクとパラメータの一元管理で実現するMLOps - enechain Tech Blog
                                            • TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?

                                              CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                                TypeScriptに導入された新たな仕組みのデコレータ、その使い方と利便性とは?
                                              • Culture Against Apartheid  アパルトヘイトに抗する文化

                                                〈Culture Against Apartheid アパルトヘイトに抗する文化〉は、私たちひとりひとりが、パレスチナでの大量虐殺と民族浄化を止める事を早急の課題とし、この問題の根幹にある占領や、アパルトヘイト体制、「日本」をふくむ世界中の、あらゆる抑圧に抗う『文化』を主体的に創造していくことを宣言する声明です。私たちは団体としてではなく、声明に共感する「ちいさな人びと」の意志の集まる場所として、新しい文化を望むすべての人びとの活動のためのネットワークとして存在します。 声明「パレスチナを忘れるな」というのが、エドワード・サイードの最期のことばでした。 パレスチナの未来のために、彼が最期まで重んじたのが、『文化』というものでした。 わたしたちは、Culture Against Apartheid(アパルトヘイトに抗する文化)というチームをつくりました。 わたしたちが、心から追い求めている新

                                                  Culture Against Apartheid  アパルトヘイトに抗する文化
                                                • 続・ムダな仕事を増やしてませんか? ~ MLの実行パイプラインでworker間の重複作業をなくす ~ - エムスリーテックブログ

                                                  DALL-E作成の「worker間で重複タスクを確認しながら作業を進める」イメージ図です こんにちは。AI・機械学習チーム(以下AIチーム)の池嶋(@mski_iksm)です。 仕事で、誰か一人がやればいい作業を、気がついたら同僚と同じタイミングでやっていた、という経験はありませんか? せっかく頑張って作った機能が実は被っていてムダになってしまった。。。というのは誰もが悲しいものです。 そうならないように作業チケットを切るなどしてタスクを中央管理する方法もありますが、もっとゆるくやりたいこともあるかと思います。 そういうときは一言「この作業私がやりますね!」と声掛けをすれば済みますね。 以前のブログで、私たちはgokartを使ったMLパイプラインの効率化について掘り下げました。 具体的には、「すでに完了したタスクをスキップする」と「タスクの実行順序をできるだけランダムにする」という2つの戦

                                                    続・ムダな仕事を増やしてませんか? ~ MLの実行パイプラインでworker間の重複作業をなくす ~ - エムスリーテックブログ
                                                  • Hugging Face ZeroGPU のチュートリアル|ぬこぬこ

                                                    tl;drHugging Face に月に 9 ドルお布施すると ZeroGPU が使えるよ! ZeroGPU は Hugging Face Spaces にて最大 120 秒間 A100 が使えるという代物だよ! 通常はホスティングに時間単価で課金が発生するから安心だね! ちょっとしたモデルの推論サーバとして重宝するよ! ZeroGPU とはなにか Hugging Face Spaces で追加のコストなく GPU を使える代物。 この記事の読者の多くは、大規模言語モデルや画像生成モデルなどのデモアプリが Hugging Face Spaces 上で動いているのを目にしたことがあるでしょう。 こういう感じの一度くらい見たことがありますよねきっとこれらを自前で Hugging Face Spaces にホスティングする際にはなかなかにめんどうくさい。 このモデルってどのくらいの推論メモリを

                                                      Hugging Face ZeroGPU のチュートリアル|ぬこぬこ
                                                    • decoratorを使ってログ出力コードの削減し可読性を上げた話 - NTT Communications Engineers' Blog

                                                      この記事では TypeScript ver4.x にて実験的な機能である decorator を使い、ログ出力コードを削減・コードの可読性を上げた経験を紹介します。 はじめに 背景 decorator とは decorator を使ったログ出力方法の検討 decorator を使ったログ出力の実装 実装時にハマったこと等 関数定義方法の変更 非同期・同期両方に対応 クラス名の取得 ログメッセージの統一 その他考慮した点 ライブラリの利用 実践結果 良かった点 悪かった点(苦労した点) まとめ 参考文献 はじめに こんにちは、NeWork 開発チームの加藤です。普段はオンラインワークスペースサービス NeWork の開発エンジニアをしています。 今回は TypeScript ver4.x にて実験的な機能である decorator を使った事例紹介をします。我々開発チームではログ出力のための

                                                        decoratorを使ってログ出力コードの削減し可読性を上げた話 - NTT Communications Engineers' Blog
                                                      • Mojo入門 (2) - Mojo言語の基本|npaka

                                                        1. Mojo言語の基本「Mojo」は、「Rust」「C++」などの他のシステム言語と多くの共通点がありますが、「Pythonのスーパーセット」になるよう設計されているため、「Python」の機能や概念の多くは、「Mojo」にうまく反映されています。 (1) Pythonパッケージからコードをインポートして実行することが可能。 (2) Pythonと同様に REPL や Jupyte Notebook でトップレベルでのコード実行が可能。 ただし、「Mojo」は新しい言語であり、Pythonの新実装ではありません。「Mojo」は、システムプログラミング機能、強力な型チェック、メモリ安全性、次世代コンパイラなどを備え、Pythonをまったく新しいレベルに引き上げます。 2. Mojoプログラム「Mojo」はコンパイル言語であり、パフォーマンスとメモリ安全性の多くはこの事実から派生しています。

                                                          Mojo入門 (2) - Mojo言語の基本|npaka
                                                        • Pythonクイックリファレンス 第4版

                                                          本書はPythonの機能を十分に活用するためのリファレンスです。チュートリアルとしての「Pythonを使ってみる」、型アノテーションや文字列といった「Python言語と組み込み機能」、ファイルやテキスト、時間の操作、数値処理などをまとめた「Pythonの標準ライブラリと拡張モジュール」、HTTPの処理や構造化テキストを学ぶ「ネットワークとWebプログラミング」、バージョン移行などに関する「拡張、配布、バージョンのアップグレードと移行」という5部構成となっています。Pythonを本格的に学びたい人から、さらなるスキルアップを目指したい人まで、Pythonを最大限に活用するための有益な情報がぎっちり詰まった1冊です。Python 3.11対応。 まえがき 1章 Pythonの紹介 1.1 Python言語 1.2 Pythonの標準ライブラリと拡張モジュール 1.3 Pythonの実装 1.3

                                                            Pythonクイックリファレンス 第4版
                                                          • kannonを実プロダクトに組み込んで3倍高速化を達成した話 - エムスリーテックブログ

                                                            こんにちは!エムスリー Advent Calendar 2023 7日目担当の小栗 (@irungo_ic)です。私は東京大学 電子情報工学科で学生(B4)をしており、エムスリーには業務委託で参画しています。 今回はgokartの分散並列化ライブラリkannonをエムスリーの実プロダクトに組み込んだ取り組みについて紹介します。結果として、社内のとあるプロダクトのIntegration TestのJobを7時間30分から2時間20分に短縮するという、約3.2倍の高速化を達成できました!それまでに生じた苦労、kannonへの追加機能などについてお話しします。 kannonとは? kannonとは、M3が主体となって開発しているOSSのデータパイプラインライブラリgokartをk8s上で分散並列実行するためのライブラリです。私が今年3月に参加したAIチームでのインターンで開発したライブラリで、そ

                                                              kannonを実プロダクトに組み込んで3倍高速化を達成した話 - エムスリーテックブログ
                                                            • [LLM 論文]アプリ全自動開発"ChatDev"の日本語訳|すめらぎ

                                                              こちらで紹介された論文が面白かったのでChatGPTを使用して日本語に訳してみました。一語一句訳すというよりは小さく区切って分かりやすく要点をまとめてもらってます。 仮想のLLMチャット駆動型ソフトウェア開発会社「ChatDev」を設立し、さまざまな役割を持つエージェント達に仕事をサポートさせましょう。 北京大学などの研究グループにより開発されたアーキテクチャが公開されました。 ○ Chen Qian et al. Communicative Agents for Software Development… pic.twitter.com/YWHquTSGtv — AIDB (@ai_database) August 30, 2023 要約ソフトウェアを作るのは難しい仕事で、経験や相談が必要です。でも、最近の深層学習の技術の進歩で、そのやり方が大きく変わりつつあります。今回の論文では、ソフ

                                                                [LLM 論文]アプリ全自動開発"ChatDev"の日本語訳|すめらぎ
                                                              • Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita

                                                                はじめに 最近はあまり触れていないが、PythonでDiscordのBOTを作成しようとすると、discord.pyやPycordのようなライブラリを使うのが一般的と思う。 その中でよく使われる構文の中に@bot.commandのような構文を目にすることだろう。 これはデコレータと呼ばれる構文なのだが、私は中身の構造は関数型引数を実装した関数のような感じなんだろうなと予想はしながらも、なんとなしで利用していた。 そんなわけで、調べていきながら便利な使い方なんかを探してみる。 import discord from discord.ext import commands intents = discord.Intents.default() intents.members = True intents.message_content = True bot = commands.Bot( co

                                                                  Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita
                                                                • LangChain の LangChain Expression Language (LCEL) を理解する - A Day in the Life

                                                                  LCEL は LangChain の chain を簡単に構築するための方法です。2023 年後半から開発が盛んに進んでおり、現在(2024 年1月)は LangChain のコードを記述するには、基本 LCEL を使って書く(以前の書き方もできますが)ことが推奨されています。LCEL のメリットについてはオフィシャルドキュメントの LCELを参考すると良いでしょう。 しかしながら、LCEL を書き始めると、オフィシャルドキュメント通りに書けば動くけど、ちょっとでもアレンジして書こうとするうまく動かなくなったりします。これは一重に LCEL の挙動を理解していなからなのですが、オフィシャルドキュメントやチュートリアルでは、LLM+RAG のコードなど、LCEL 使うとこんなにシンプルに書けるんだ、というコードは多くのっているのですが、LCEL の挙動についてはあまりのっておらず、のっていて

                                                                  • URLからテキストを抽出する自作APIアプリケーションの構築|youtube, PDF

                                                                    1. はじめに Webページや動画からテキスト情報を抽出することは、情報収集やデータ分析など、様々なタスクにおいて重要です。この記事では、DockerとFastAPIを用いて、URLからテキストを抽出するアプリケーションを構築する方法について解説します。Dockerは、アプリケーションの実行環境をコンテナ化することで、環境依存の問題を解消し、デプロイを容易にする技術です。FastAPIは、Python製のWebフレームワークであり、高速で効率的なAPI開発を可能にします。 この記事を活用するとできること youtubeから字幕(transcript)を取得して、Difyで要約させる WebサイトのURLから、テキストを出力して、Difyのワークフローに流し込む Web上のPDFからテキストを抽出して、DifyでQAチャットボットを構築する 2. 環境構築 2.1 Dockerfile 以下

                                                                      URLからテキストを抽出する自作APIアプリケーションの構築|youtube, PDF
                                                                    • mypy 設定ファイルの読み合わせと修正を実施しました - CADDi Tech Blog

                                                                      こんにちは MLエンジニアとMLOpsエンジニアを兼任している押条です。 CADDi の機械学習プロジェクトでは Python がよく使われています。 本番環境にリリースするコードのlinter や formatter、test に関しては、 CI で自動的に適用し運用できていました。 一方、型注釈については開発担当者に一任されており、プロジェクトごとにあるものとないものと混在していました。 採用を強化してチームを拡大していこうという動きもあり、開発に携わる人が増える見込みがあります。 そのような背景から、型注釈による既存コードの可読性の向上の重要性が増してきました。 そこで現行の mypy の設定の読み合わせと mypy 設定の修正を実施しました。 その時の議論の内容と修正後の設定をご紹介しようと思います。 目次 現行ルールがどのようなものか認識合わせする 現在のプロダクションコードを参

                                                                        mypy 設定ファイルの読み合わせと修正を実施しました - CADDi Tech Blog
                                                                      • 読書メモ: A Philosophy of Software Design

                                                                        A Philosophy of Software Design, 2nd Edition (English Edition)英語版 John K. Ousterhout (著) 形式: Kindle版 Amazon.co.jpで詳細を見る 良い設計をするためのコンセプトを解説した本。類書はいろいろとあるが、自分が読んだものの中では一番良かった。ソフトウェアエンジニアリングを行う人には広くおすすめできる。コンパクトですぐに読み切れるのも良い。 複雑さをいかに削減するかという観点と、その対策としての深いモジュールというコンセプトを導入し、この軸ですべての章を論じている。筋が通っていて読みやすいし、納得感も高い これらのコンセプトを通して、従来は良しとされているプラクティスの再検討も行っていて、こちらも面白く納得しながら読めた。例えばできるだけメソッドは小さくするという慣習や、Clean Cod

                                                                          読書メモ: A Philosophy of Software Design
                                                                        • NestJSに入門してみた

                                                                          こんにちは! フロントの方で使ってみたいライブラリがあったりして、自分用のツールの開発を行なっていたのですが、何となく NestJS も使ってみたくなりました。 ということで、NestJS に入門してみました!! 本記事では、今回 NestJS で開発をして学んだことをまとめていきます。 NestJS とは NestJS は、TypeScript で構築された、バックエンド開発のための Node.js フレームワークです。Angular の影響を受けて開発されているようです。 Controllers Controllersは、ルーティングを記述し、クライアントからリクエストを受け取り、レスポンスを返す役割をします。 @Controller()デコレータを記述することで、Controllersとして定義することができます。 Providers Providersでは、Serviceファイルを

                                                                            NestJSに入門してみた
                                                                          • testcontainers-python: pytest 実行時に使い捨て可能な LocalStack を起動する - kakakakakku blog

                                                                            Testcontainers を使うと,テストコードを実行するときに必要になるデータベース・キャッシュ・キューなどの依存関係をコード上で管理できて,実行後にはコンテナを自動的に消してくれるという使い捨て可能な仕組みを簡単に作れる❗️Testcontainers のサイトに載っている「Test dependencies as code」という表現はピッタリだと思う👌 testcontainers.com Testcontainers は Java / Go / .NET / Rust など多くの言語をサポートしているけど,今回は Python 用の testcontainers-python を試してみた.検証に使ったコードを紹介しつつ,簡単にまとめておく✍ また Testcontainers Cloud もあったりする🌩 testcontainers.com 前提 今回は以下の前提で試

                                                                              testcontainers-python: pytest 実行時に使い捨て可能な LocalStack を起動する - kakakakakku blog
                                                                            • 「Python標準ライブラリのドキュメントでも読むか~」「え、何その裏技」 - Qiita

                                                                              読み飛ばしてください おはようございます、しなもんです。 この記事は↓の続編的立ち位置です。 前回の記事がありがたいことに爆発的にトレンド入りしました。ありがとうございました。 (あれらの機能を知らなかったのが私だけじゃないことが分かって安心しました) 思ったより反応があり、Twitter(自称X)でもいろいろ意見をいただきました。 というわけで、今回は標準ライブラリのドキュメントを読んでみました。 予想通り、知らない裏技がたくさん出てきました。 Pythonすごい。 functoolsが便利すぎる partialを使った関数の部分適用 partial関数を使うと、関数の一部の引数を固定した新しい関数を作成できるようです。 コールバック関数を使う際や、関数型プログラミングっぽいコードを書く際に非常に便利なようです。 私は関数型プログラミングには明るくないのですが、 クラスの継承的なことをし

                                                                                「Python標準ライブラリのドキュメントでも読むか~」「え、何その裏技」 - Qiita
                                                                              • フロントエンドフレームワークでのコンポーネント作成で意識すべきこと。 - Qiita

                                                                                chatGPTで勉強をしています。 フロントエンドフレームワーク(Vue、Angular、Reactなど)でコンポーネントを作成する際に意識すべきポイントはいくつかあります 1. 再利用性 コンポーネントは再利用可能であるべきです。特定のビジネスロジックやスタイルに依存しないように設計すると良いでしょう。 2. 単一責任原則 一つのコンポーネントは一つの機能または責任を持つべきです。 3. データフロー データの受け渡しや状態管理を明確にすることが重要です。Vueではpropsとemit、Angularでは@Inputと@Outputが一般的です。 4. パフォーマンス レンダリングのパフォーマンスを考慮し、不要な再レンダリングを避けるように設計することが重要です。 5. テスト容易性 単体テストや結合テストを容易にするために、コンポーネントは疎結合に保つべきです。 6. 可読性とメンテナ

                                                                                  フロントエンドフレームワークでのコンポーネント作成で意識すべきこと。 - Qiita
                                                                                • Java開発者を対象としたPythonコーディング研修─インターネット・アカデミー | IT Leaders

                                                                                  IT Leaders トップ > テクノロジー一覧 > スキルアップ > 新製品・サービス > Java開発者を対象としたPythonコーディング研修─インターネット・アカデミー スキルアップ スキルアップ記事一覧へ [新製品・サービス] Java開発者を対象としたPythonコーディング研修─インターネット・アカデミー 2024年1月24日(水)日川 佳三(IT Leaders編集部) リスト Web専門の教育講座を運営するインターネット・アカデミーは2024年1月24日、研修コース「Pythonプロフェッショナル研修 for Javaエンジニア」の受付を開始した。Java言語の開発者が対象のPython言語のコーディング研修コースである。Java開発者が知るべきPythonの作法やつまづきやすいポイントの解説から、Pythonコーディング時の重要事項を習得する。研修時間は20時間(1日

                                                                                    Java開発者を対象としたPythonコーディング研修─インターネット・アカデミー | IT Leaders