タグ

ブックマーク / qiita.com/ksato9700 (8)

  • PydanticがRustで爆速になるという話 - Qiita

    はじめに 最近ポッドキャスト聴く時間が少し減ってしまったんだけど、久しぶりに Talk Python to Me を聴いたらPydanticの話題でした(エピソードのリンクはこちら)。作者のSamuel Colvinさんが秋に予定しているメジャーバージョンアップの話をし始めたのですが、冒頭で「コアをRustで実装して17倍速くなる」と言っていて、リンク張られていたドキュメントを読みました。この記事はそこで語られていた内容を中心にPydantic v2についてご紹介します。 Pydanticとは v2の話の前に、そもそもPydanticとは何かについて簡単に触れておきます。PydanticはPythonの型ヒント情報を使ってデータバリデーション(データの妥当性検証)を行うライブラリです。予めデータの構造を定義しておいて、入力されたデータがその構造に合っているかを調べてくれます。 例えば、id

    PydanticがRustで爆速になるという話 - Qiita
    sh19910711
    sh19910711 2024/06/17
    "久しぶりに Talk Python to Me を聴いたらPydanticの話題 / 作者のSamuel Colvinさんが秋に予定しているメジャーバージョンアップの話をし始めたのですが、冒頭で「コアをRustで実装して17倍速くなる」と言っていて" 2022
  • 噂のpidfdをRustで試してみた - Qiita

    はじめに Python3.9の新機能 (まとめ)という記事を書く中でpidfdというものを知りました。まだあまり良い解説記事がないのですが、最近の5.x系Linuxカーネルに新たに導入されたプロセスを識別するための仕掛けです。この機能がRust言語でCrate(ライブラリのようなもの)として実装されていたので試してみました。 pidfdとは これまでプロセスはPID(Process ID)によって指し示されていました。PIDはプロセスを一意に指し示すための識別子で、例えばシグナルなどを送ったりするのに使われます。 PIDは32bitの整数で、プロセスが生成される時にカーネルが割り振りますが、システム全体で共有しているので枯渇しちゃいます。32bitならそこそこあるように思いますが、実はPIDの最大値はもっと小さく設定されています。Linuxの場合は cat /proc/sys/kernel

    噂のpidfdをRustで試してみた - Qiita
    sh19910711
    sh19910711 2024/05/24
    "pidfd: 5.x系Linuxカーネルに新たに導入されたプロセスを識別するための仕掛け + Pythonでは asyncioの子プロセスを監視するための仕掛けとして 3.9から導入 / PIDの最大値: Linuxの場合は cat /proc/sys/kernel/pid_max で見ることができ" 2020
  • etcd総選挙を眺めてみる - Qiita

    はじめに (2015/09/20追記) 初出時はv0.3.0くらいだったetcdも今の最新は2.2.0。起動時のオプションやAPIも非互換な形で変わってしまっているので、最新に合わせてお試し部分を少し修正。(@takiuchiさん、ご指摘ありがとうございます) etcdとRaft etcdはCoreOSで使われている軽量KVSで、Configurationなどの情報を複数のマシン間で共有できるようにする仕組みみたい。/etcに置かれた設定ファイルの置き換え的な意味合いで "etc" daemonなのかなと思ったが、語源を発見できず、もしかしたらぜんぜん違うかもしれない。 ともかく、etcdはKVSでありながら複数マシン間でのreplicationを実現している。まぁ、そんなKVSは沢山あるが、etcdで取っているアプローチがやや面白かったのでちょっと調べてみた。 まず、基になる考え方が、

    etcd総選挙を眺めてみる - Qiita
  • Python3.9の新機能(2) - Pythonで有向非巡回グラフのソートをする - Qiita

    はじめに 2020年10月にリリースが予定されているPython3.9で新たに加わる変更をPython3.9の新機能 (まとめ)という記事でまとめています。少し分量のありそうな話題を別記事にしていますが、これはその第二弾で、有向非巡回グラフのソートについてです。 有向非巡回グラフとトポロジカルソート まず、ここでいうグラフは折れ線グラフとか棒グラフとかデータを視覚的に表す図表のことではなく、グラフ理論のグラフです。グラフはデータ構造の一種で、ノード(頂点)とそれらを繋ぐエッジ(枝)で構成されています。ノードやエッジに何かしらの意味をもたせることによって、関連性を持つ情報を表すことができます。 グラフにもいくつか種類があり、その最初の分かれ道がエッジに方向があるかないか。方向があるものを有向グラフ(左側)、無いものを無向グラフ(右側)といいます。 エッジはノードを繋ぐものですが、繋がれたノー

    Python3.9の新機能(2) - Pythonで有向非巡回グラフのソートをする - Qiita
    sh19910711
    sh19910711 2020/10/19
    "from functools import TopologicalSorter"
  • Pythonの文字列が標準でf文字列になる(かも) - Qiita

    はじめに Python言語サミット2020が4月の15日、16日の2日間で開かれました。これはPython実装の開発者(家のCPythonに加えてPyPyなども)が集まる会議で、単にプレゼンし合う場というよりは言語体や標準ライブラリの現状や今後に関する議論をして合意を目指すという会議とのこと。 今年はコロナウイルス蔓延の影響で、ご多分に漏れずオンライン開催となったそうですが、2日間の議題を見るとなかなか興味深いものが並んでいます。 全ての文字列をf文字列にする CPythonのパーサーをPEGベースの物にする (C)Pythonの仮想マシンの形式仕様記述 実装非依存のC言語拡張API CPythonのドキュメンテーション保守の変革 ライトニングトーク pip, PyPI そしてパッケージングに今後何を求める? 「マルチコアPythonプロジェクトの失敗を振り返る Pythonの型導入

    Pythonの文字列が標準でf文字列になる(かも) - Qiita
  • 2016年版 Node.jsで幸せになれる10の習慣 - Qiita

    はじめに Herokuのブロク記事10 Habits of a Happy Node Hacker (2016)を、「洋の東西を問わず、みんな『10のなんとか』って好きなんだな」と思いながら眺めていたら、結構面白かったので内容をピックアップしてみます。 以前、Go言語で幸せになれる10のテクニックというのをあるブログ記事を元にして書いた時には、原題の "Ten Useful Techniques in Go"を意訳して「幸せになれる」としたのだが、今回は原題にシッカリ"Happy"が入っているというおまけ付き。 なお、「2016年版」と言っているのは2013(2014?)年版があるから。これらを読み比べてみるのもまた面白いが、とりあえず今回は最新の2016年版のご紹介。 1. 新しいプロジェクトは npm init で始めろ 新しいプロジェクトはこう始めようよ、と言っている。

    2016年版 Node.jsで幸せになれる10の習慣 - Qiita
  • Go言語で幸せになれる10のテクニック - Qiita

    はじめに Go近辺を徘徊していて見つけたブログポスト。 Ten Useful Techniques in Go Goな方々には常識なのかも知れないけど、Go初心者の私にとっては面白かったのでちょっとまとめてみる。 紹介されているのは以下の10個の項目。 Use a single GOPATH Wrap for-select idiom to a function Use tagged literals for struct initializations Split struct initializations into multiple lines Add String() method for integers const values Start iota with a +1 increment Return function calls Convert slices,maps,et

    Go言語で幸せになれる10のテクニック - Qiita
  • Python3.4からpipが標準インストーラに!? - Qiita

    Rubyにはgem、Node.jsにはnpmがあるが、元々Pythonにはパッケージマネージャは無かった。 それがいつの頃からか、easy_installなるものが現れ、さらにpipが作られた。今ではpipがほぼデファクトとなりつつあるけど、後付でインストールするパッケージの一つという位置づけは変わらない。箱を開けたら直ぐに使えるという意味で "Batteries included" を標榜しているPythonとしてはちょっと寂しい。 その状況をなんとかしようということでPEP-453 Explicit bootstrapping of pip in Python installationsが提案されている。「pipをPython 2.7, 3.3 及び3.4の公式推奨デフォルトインストーラとしよう」という提案で、3.4から実際に標準搭載されるらしい。Pythonをインストールするとpip

    Python3.4からpipが標準インストーラに!? - Qiita
  • 1