@ITのDeep Insider編集長「一色」が、日ごろの情報収集や開発、執筆・編集を通じて得た“技術的な気付き”や“新たな発見”を自由気ままにつづるオピニオン連載。気になるデータ分析を試したり、AI・機械学習で迷走したり、Pythonとツール活用を語ったり。不定期更新ですが、疲れたときの息抜きにどうぞ! 次回以降の新着記事を見逃したくない方は、ぜひ以下のメール通知の登録をお願いします。 なぜ今、uvを学ぶべきか?【筆者の危機感】 長年、pipとcondaを使い、特に不満もなく作業してきた筆者ですが、最近はuvを見かける機会が急増し、「このまま知らずにいると、時代に取り残されてしまうのではないか」という危機感を強く持つようになりました。 実際、Anthropicが提供する“MCP”公式ドキュメントでも、uvを使った環境構築方法しか説明されていません(なお、MCPについては前回記事で解説して
皆さんは『配列から欠けている数字を見つけろ』と言われたら、どう答えますか? 多くの方は「HashSetで解けばいい」と考えるでしょう。しかし、1000万個の要素で実測したところ、Pythonのsetは945MBもの追加メモリを消費し、処理に2.3秒かかりました。一方、XORを使った解法は追加メモリゼロ、C言語なら1ミリ秒で完了します。 なぜこれほどの差が生まれるのか? XORには単なるトリック以上の深い理論があり、配列の欠損値検出だけでなく、RAID 5のデータ復元やネットワークのエラー検出など、実務で幅広く応用されているのです。 追記: ネットワーク転送時のパケットロスやノイズによるデータ欠損、さらには宇宙線がメモリに衝突してビットが反転する「ソフトエラー」により、配列から要素が失われることがあります。 本記事では、Florian Hartmannの「That XOR Trick」1を基
読みやすいコードとは何か 読みやすいコードとは、脳に負荷がかからないコードである。脳に負荷がかからないコードとは、人間の脳の特性に配慮して書かれたコードである。したがって読みやすいコードを書くには、まず人間の脳の特性を把握する必要がある。読みやすいコードの特徴は、この人間の脳の特性から論理的に導かれる。 また、「コードを読む」とは過去から未来への情報伝達、または自分から他者への情報伝達であり、情報理論における以下の2つの数学的原理にも支配される。 頻出する情報には共通の符号を割り当てることで情報を圧縮することができる。 失われた情報を復元することはできない。 この記事に書かれた内容はプログラムに止まらず、ドキュメント、記事の執筆など、プレインテキストによって情報を伝達する際には一般に適用可能である。 もしもこの記事を読むのが面倒であれば、以下の5つだけを覚えておけばよい。 ひとつの処理の単
Python開発者向けツールRuff/uvの開発チーム(Astral inc.)がPython向けの型チェッカーを新規開発しているので紹介いたします。この型チェッカーはコードネーム"Red-knot"と呼ばれており、まだリリース前ですが将来的にはRuffに組み込まれる予定であるようです。以下ではこのプロジェクトの概略を説明したいと思います。 特徴 既存の型チェッカー(e.g. mypy, pyright)の不満点である遅さを改善すべく、徹底的にパフォーマンスに気を配った設計となっています。pyrightもそこまで遅くはないのですが、さらに高速であることを目指すようです。 Red-knotはRuffと同様Rustを用いて実装されています。Ruffが使っている諸々のデータ構造を共有しているため、フォーマット、lint、静的解析が一気通貫で行えるようになります。JavaScriptツールチェイン
TL;DR Pythonの型チェッカーを一人で作っていたらそれが仕事になりました。 私は(大学院生として物理学を専攻する傍ら)以前よりプログラミング言語やその周辺ツールのデザイン・実装に興味があり、趣味で開発したプロジェクトをOSSで公開するなどしていました。 ErgはPython APIと互換性を持つトランスパイル型の静的型付け言語で、pylyzerはこれの型検査器を流用したPython向け型チェッカーです。 ありがたいことに両方とも結構反響を受けて、公開から数年経っても未だにissueなど報告をいただいております。これはもう少し大きな話にできるのではないかと考え、Ergの開発の方で2023年度の未踏IT人材発掘・育成事業に応募し、運よく採択され、スーパークリエータにまで認定していただきました。 これだけでもかなりの僥倖ですが、それだけではなく、今年の3月からcontract softw
Pythonコードのパフォーマンス最適化の総合ガイド Pythonは動的型付けのインタープリタ言語として、Cのような静的型付けのコンパイル言語と比較すると、実行速度が遅い場合があります。しかし、特定の技術と戦略を通じて、Pythonコードのパフォーマンスを大幅に向上させることができます。 この記事では、Pythonコードを最適化して、より高速かつ効率的に実行させる方法を探ります。Pythonのtimeitモジュールを利用して、コードの実行時間を正確に測定します。 注意: デフォルトでは、timeitモジュールはコードの実行を100万回繰り返して、測定結果の精度と安定性を確保します。 def print_hi(name): print(f'Hi, {name}') if __name__ == '__main__': # print_hi('leapcell')メソッドを実行する t = t
はじめに 皆さん、はじめまして。Thinkings株式会社でプロダクトエンジニアとして働いている、まろんです! 突然ですが、皆さんは「Python」をご存じでしょうか? 「空飛ぶモンティ・パイソン」というコメディ番組が由来で、今や非常に人気のあるプログラミング言語です。 Pythonはそのシンプルな文法と豊富なライブラリによって、データ分析や機械学習、バックエンド開発など、幅広い分野で活躍しています。技術系情報共有サイト(Qiitaなど)でも、常に人気上位に入る言語です。 しかし、Webアプリケーションを開発するとき、バックエンドはPython、フロントエンドはReactなどの別言語で開発することが一般的ですよね。言語が分かれることで、初心者は「なぜフロントとバックエンドで異なる言語を覚えなきゃならないの?」と苦労することもあるでしょう。 そんな方にご紹介したいのが、2022年4月にAna
What is HPy?¶ HPy provides a new API for extending Python in C. In other words, you use #include <hpy.h> instead of #include <Python.h>. What are the advantages of HPy?¶ Zero overhead on CPython: extensions written in HPy run at the same speed as "normal" extensions. Much faster on alternative implementations such as PyPy, GraalPy. Universal binaries: extensions built for the HPy Universal ABI can
この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から本格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの
米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ 米ホワイトハウスの国家サイバー局長室(The White House Office of the National Cyber Director:ONCD)は、サイバー空間における攻撃対象領域を積極的に削減する目的で、テクノロジーコミュニティやソフトウェアコミュニティに対してメモリ安全(Memory Safe)なソフトウェアの実現を積極的に呼びかけるプレスリリース「Future Software Should Be Memory Safe」(将来のソフトウェアはメモリ安全になるべき)を発表しました。 プレスリリースの中で、国家サイバー局長Harry Coker氏は「私たちは国家として、サイバースペースにおける攻撃対象領域を減らし、あらゆる種類のセキュリティバグがデジタルエコシステムに
In this blog post, we’ll take a high-level tour of what’s inside the Mojo SDK. First, let’s quickly review what Mojo is and how it can benefit you. Mojo: a high performance 'Python++' language for computeMojo is a new programming language for AI developers that will grow into being a superset of Python over time. It already supports integrating with arbitrary Python code seamlessly and has a scala
Python3入門のためのPDFテキストを配布しています. 本書はフリーソフトウェアの書籍です.出典明記していただければ自由に使っていただいて結構です.(印刷,再配布も可) ●書籍情報 「Python3入門 - KivyによるGUIアプリケーション開発,サウンド入出力,ウェブスクレイピング」, 中村勝則, IDEJ出版, 2024年, ISBN978-4-9910291-3-4 C3004 「Python3入門」 (ミラーサイト1)(ミラーサイト2) 公開しているテキストに関する質問やメッセージお待ちしています. 「Python3 ライブラリブック」 (ミラーサイト1)(ミラーサイト2) 【Python3入門の目次】 1 はじめに — 1 1.1 Pythonでできること — 1 1.2 本書の内容 — 1 1.3 本書の読み方 — 1 1.4 処理系の導入(インストール)と起動の方法 —
ThinkPythonの日本語版ページ Pythonを勉強しよう ThinkPython:How to Think Like a Computer Scientistの日本語訳は こちら です。 また、ThinkPython:How to Think Like a Computer Scientist(2nd Edition)の日本語訳は こちら です。 また、Tkinter Tutorial by Bernd Kleinの日本語訳は こちら です。 また、wxPythonの例題集は こちら です。 日本語訳の感想やご意見は thinkpython(at)cauldron.sakura.ne.jp までお寄せください。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く