サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
参議院選挙2025
qiita.com/simonritchie
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
TiDB ServerlessってどんなDB?(簡単な紹介) NewSQLと呼ばれる、従来のMySQLのようなリレーショナルデータベースのようにトランザクションなどをサポートしつつもNoSQLのような高いスケーラビリティを実現したDBです。 MySQL互換となっているためMySQLやAuroraなどと切り替えたりを楽に行うことができます。 TiDB自体が分散データベースとなっており、シャーディングなどの対応なくスケーリングを扱うことができます。 Aurora Serverless v2のように自動でスケーリングしてくれます。ほとんど負荷がかかっていなければ無料枠に収まる程度になったりと運用負荷の少ない形で扱うことができます。 db tech showcase 2022 Tokyoというイベントでの来場者アンケートで「今後、利用してみたいデータベース製品」の1位に選ばれたりなどしているそうで
普段Pythonなどをメインにお仕事をしていますが、Rustのごく基本的な文法や挙動などをPythonと比較しつつ学んでいってみます(前も入門書消化したタイミングで少し記事にしたりしていますが復習も兼ねて書いておきます)。 ※Rust初心者なため誤解している点などがあるかもしれません。その辺はご容赦ください。 ※長くなりそうなので記事を分割しています。本記事は2記事目となります(過去の記事で触れた点はスキップします)。 1記事目: ※今回はライフタイムなどのRust特有のトピックが多めでPython関係はあまり出てこず若干タイトル詐欺的な側面があるかもしれません・・・w Rustでのエラーハンドリング 詳細までは触れませんがRustのエラーハンドリングについて軽く触れておきます。 Pythonだとエラーになりうる箇所に関してはtry-exceptを使ったりしますが、Rustでは関数の返却値
最初のgitのコミットから約8年?経過し9年目に突入しているのでは・・・というレガシー感の溢れるプロジェクトを引き継いでから何年もかけて色々改善してきた内容だったり、逆に現在でも色々抱えていて今後改善していきたい課題などについて本記事で振り返り的に触れていきます。 ※執筆に関して上長から許可をいただいています。 プロジェクトの概略 弊社がゲーム会社なのですが、各ゲームタイトルで横断で使われているwebアプリです。 言語としては主にPython、フレームワークとしては主にDjangoが使われています。 テストやdocstringなどを含めた現在残存するPythonファイルの行数は約78万行くらいです。 サーバーはAWSのクラウドが使われています。 年数的に色々レガシー感のある点がたくさん残っていますが、一方でここまで長い間社内で使われ続けてきている・・・というのは中々無いケースでしっかり続い
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近以下の個人開発のPythonライブラリでフォーマッタをautopep8からblackに移行したので雑多に所感などをまとめておきます。 blackとは Python界隈でこの記事執筆時点で一番スターの付いているPythonのフォーマッタライブラリです(執筆時点でGitHubのスターが約3万)。 Pandasやscikit-learnなどのPython界隈の有名ライブラリ含め、非常に多くのリポジトリで使用されています(記事執筆時点でGitHub上のUsed byの表示が約17000リポジトリ)。 色を混ぜて別の色にできない黒色のごとく、
個人的に趣味(技術的盆栽1)で作っていっているPythonライブラリで使っているLintやサービスであったり、工夫している点や今後検討している点などを色々まとめていこうと思います。 ※1人でプライベートにちまちまと進めているのでまだまだ理想的ではない部分も多く、その辺は今後検討している点として触れていきます。「この頃はこんな感じになっていた」と個人的に将来振り返る時のためにも使います。 ※本記事はQiitaのイベント開始前に少しずつ書き始めていたのですが、GitHub Actionsも絡んでいるのとGitHub Actionsのイベントテーマが設定されていたので折角なのでイベント用のタグを設定させていただいています。 どんなライブラリなのか 各種説明をスムーズにするために軽く対象ライブラリの内容に触れておきますが、Pythonである程度フロントエンドを書けるようにしたい・・・と思い作り始め
Pythonの関数(メソッド)の内容に合わせてdocstringのテンプレートを生成してくれるautoDocstringというVS Codeの拡張機能をお仕事とプライベートで使っていたら結構気に入ったのでその紹介です。 autoDocstringでできること Pythonの関数やメソッドの引数名や型アノテーションなどに応じたdocstringのテンプレートをVS Code上で生成してくれます。 ※JSDoc的なもの含め、他の言語だと割とその辺をしっかり生成してくれる一方でPythonだと(出力されるdocstringのスタイルがずれていたりなど)個人的にしっくりくるものが無く、今まではスニペット的にクリップボードへ定型文登録などして過ごしていました。 PEP257やGoogleスタイル、NumPyスタイルなどメジャー所のdocstringのスタイルはサポートされています。 ※そもそもdoc
本記事はQiitaの「データに関する記事を書こう!」イベント用の記事となります。 最近聞くことが多くなってきたJinjaの書き方について整理&まとめてみました。 Jinjaって何?(どんなところで使われているのか) Djangoとかを普段使っている方はお馴染みの{% for i in range(10) %}とか{{ any_variable }}みたいな書き方を任意のテキストファイルに対して反映できるテンプレートエンジンのライブラリです。初版リリースはこの記事を執筆している時点で3年弱くらい前なので比較的新しいライブラリになります。 以下に書かれているようにDjangoのテンプレートの機能がベースとなっており、Djangoに慣れている方であればほぼ学習コスト0で書けるような書き方になっています。 Djangoのテンプレートエンジンにインスパイアされているので、パッと見はDjangoのデフ
先日以下のような記事を拝見しました。 「うんうん、そうだねぇ・・・」と思いつつ読んでいたのですが、ここ数年ずっとPythonばかりを書いていた身からすると少し違和感を感じるところもあったので頭の整理的に言語化しておきます。 前置き 本記事は元の記事を否定するものではありません。元記事で以下のように書かれている通り、元記事はあくまで「そういう傾向がある」という話ですので本記事はそういった傾向に当てはまらないPythonでの例外的なところに触れる形となります。 これまで色々なプロジェクトを観察(風聞も含む)して来たところ、そういう傾向があるのではないかという仮説です。 本記事はなんとなくPythonだと長期プロジェクトとかコード量が多いと詰むのでは・・・?と感じられた方に対してそういったプロジェクトでも(条件次第で)快適に開発を続けられるよ、と宣伝するためのものです。 逆に本記事に対して強い違
最近自作Pythonライブラリでがっつりdoctestを使い始めたので記事にまとめておきます。 doctestってなに? dostring内に書くコードサンプルを実際にPythonで動かしてエラーにならないことや返却値が正しいかどうかをチェックすることができる機能です。 ※docstringについては必要に応じて以下の記事などをご確認ください。 ※Rustなどにも似たような機能がビルトインで入っています。 doctestを書くとなにが嬉しいの? docstringにコードサンプルが載っているとユーザーがエディタ上などでさくっと使い方を確認できてユーザーフレンドリーです。 一方で書いただけだとそのコードサンプルはテストやLintでチェックされるわけではありませんので正常に動作しないケースが発生し得ます。書いたときは動いていても日々のアップデートでいつの間にか動かなくなってしまうこともあるかも
TL;DR Pythonで2つのモジュール間でお互いにimportしており、且つその中でのクラスなどの型アノテーションをエラーにならずに対応できるケースがあるよ、という話です。 使う環境 OS: Debian GNU/Linux 10 Python 3.6 ※個人で趣味で作っているPythonライブラリの最低バージョンの3.6に合わせているので新しいPythonバージョンではもしかしたら話が変わってくるかもしれません(そろそろPython 3.6のサポートを切っても良いかもですしね・・・)。 悩ましいPythonの循環importのエラーの話 他の静的型付け言語だと特に気になったりしないのですが、Pythonだと2つのモジュールでお互いにimportしあう形になっているとImportErrorになったりすることがあります。例えば以下のようにsample_A.pyというモジュールとsampl
息抜きを兼ねてQiitaで開催されている以下のイベントに参加してみました。 ※個人の好みが強い点、将来気が変わって別のことを学んだりといったことも結構起こると思いますがその辺はご容赦ください。また、仕事のものは別途学んだりはしますがその辺はあまり含みません(プライベートで興味を惹かれているものを中心に触れていきます)。 ※執筆者はゲーム業界に在籍しており、現在データエンジニアをしているためその辺の色が強くなっています。 数学関係の強化 以前も何冊か数学関係の本を消化したり、コンピューターサイエンスの基礎本なども消化したりしてきましたが、機械学習含めたデータサイエンス周りを強化するにしろゲーム関係にしろ数学は強化して損はない・・・ですし学んだことは長持ちしそうなため復習や新しいことの勉強も含め数学方面を強化したい・・・という感じがあります。 最近は朝は仕事関係のクラウドやらの勉強・夜はOSS
Rustのドキュメンテーションコメント(crateや関数などに対するコメントの書き方とドキュメント変換など)に関して備忘録として記事にしておきます。 ドキュメンテーションコメント(Doc comments)とは ドキュメンテーションコメントとはRustdocを使用した際にドキュメントにコンパイルされるコメントのことです。///によって普通のコメントと区別され、ここではMarkdownを使用することができます。ドキュメンテーションコメントは大規模なプロジェクトの際に非常に有用です。 ドキュメンテーション - Rust By Example 日本語版より引用。 いわゆるJavaScriptでいうところのJSDoc、PythonでいうところのdocstringなどのRust版に該当します。 書くと主にどんなメリットがあるのか エディタ上で参照した際にこのコメントを参照できて可読性が上がります。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Qiita公式が新人プログラマ応援のイベントをやっているようなので便乗して参加してみました。 ポエム成分などを多く含みますのでご注意ください。過去のQiita公式の発表や先日のガイドライン改定に目を通してみてとりあえずはこういった記事も大丈夫そうとは判断しておりますが、もし怒られたら削除するか別のところに記事を引っ越しいたします(はてブコメントなどで「こんな記事Qiitaに書くんじゃない」とご指摘いただきそうで戦々恐々としながら書いています)。 本記事で触れること 長く現役でいるために大切な睡眠・運動・食生活などのこと。 習慣化のこと。
ここ数か月、Pythonで型付きの状態でお仕事やプライベートでのコーディングをしてみて、UnionやTypeVarなどのジェネリックのものなどの使い分けに少し慣れてきたので備忘録として軽く備忘録としてアウトプットしておきます。ジェネリックについてもある程度深堀りします。 使う環境 Python 3.8.5 Pylance(型チェック用) 参考 : [Python]PylanceのVS Code拡張機能をさっそく使ってみた。 複数の型の引数と返却値を受け付ける関数でAnyを使う時の問題点 複数の型を受け付ける関数を作る場合、Any型を使うという選択肢があります。例えば以下のように引数の値を2倍するという関数を考えてみます。整数などを指定した場合には2倍された値、文字列などが指定されればその文字列を2回分繰り返した値が返却されます。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 結構前にPandasやDaskなどよりも大分高速と話題になっていたPythonのVaexライブラリについて、仕事で利用していきそうな気配がしているので事前にしっかり把握しておくため、色々調べてみました。 どんなライブラリなのか Pandasと同じように行列のデータフレームなどを扱うことのできるPythonライブラリです。 Pandasと比較して膨大なデータの読み込みや計算などを高速に行えます(数十倍~数百倍といったレベルで)。 計算上のメモリ効率がとても良く、無駄の少ない実装になっています。 Daskのように計算が遅延評価されたりと、通
VS Codeなどで使えるPylanceという拡張機能がリリースされていたので早速使ってみました。 参考 : 型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表 (大雑把に)どんな拡張機能? マイクロソフト製のPythonの拡張機能です。 Python拡張機能に入っているようなPythonの入力補完周りが有効になります。これはまあ大半のVS Code使ってPythonのコード書いている方はPythonの拡張機能入れていらっしゃるでしょうからそこまでは大きく変わりません。 以前書いたPythonの型チェック用のPyrightと同じように、コードを書きつつ型のミスや補完が効きづらい箇所で型アノテーションをすることで補完が効くようになってくれます(内部でPyrightが使われています)。 Pyrightの記事: 入力補完を充実させ、より堅
Pythonの文字列関係の制御を調べていて、f-strings(f文字列)が結構奥が深く知らないことも多かったので、別途Qiita記事にまとめておきます。 そもそもf-stringsってなに? Pythonで文字列の前にfという文字を付与し、且つ{}の括弧を使うことで文字列中に変数を展開したりコードを実行したりできる機能です。 以下のようなコードになります。 主な参考サイト f-stringsについて詳しく説明がされているPEP 498 -- Literal String Interpolationを主に参考にします。 記事上で使う環境 Windows10 Python 3.8.0 Jupyter(実行にはVS CodeのPython拡張機能を利用) f-stringsを使うと何が嬉しいのか? f-stringsを使ってできることの大半(変数の挿入処理など)は文字列のformatメソッドで
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? よりVS CodeのPythonの入力補完を精度良くしたり、入力補完が効かない部分をちゃんと補完してもらったり、もしくは静的型付き言語でコンパイルして型のエラーが無いか調べるがごとく、CIなどでチェックして安全にプロジェクトを扱うためのPythonの型アノテーションやPyrightなどについて学んでいきます。 記事執筆する際に使っている環境 Python 3.7.3(Anaconda。本記事の内容は古いPythonバージョンでは使えないものが含まれます) Windows10 VS Code 1.45.1 Kite VS Code上の以下
普段正規表現が必要になるケースがそれなりに発生しているものの、体系立てて勉強したことがなかったので整理・まとめておきます。言語はPythonを使います。 結構長めです。これを読んだ皆さんはきっと「Pythonの正規表現完全に理解した」とつぶやいても怒られないはず。 そもそも正規表現って? 英語だとRegular Expression。文字列関係の特殊な操作をやる際に、特定のパターンを指定して色々な処理を行う表現(処理)のことを言います。 普通の文字列関係のビルトイン関数やモジュールなどでは対応が面倒(もしくは対応が難しい)な文字列操作などが正規表現を使うことでシンプルに扱えるケースがあります。 主に以下のような用途で使われます。 文字列の特殊な検索(例 : 曖昧検索や表記ぶれなどを含める等) 入力値のバリデーション(例 : 入力されたメールアドレスが有効な値になっているか等のチェック) 固
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 社内で専門のインフラ関係の担当の方がいらっしゃって、環境などはよしなにしてくださっていたのですが、流石にそろそろDocker周りを自分でも勉強しておかないとまずいだろう・・ということで、最近Dockerにやっと入門したので、色々と学んだことを備忘録も兼ねてまとめたり試したりしていこうと思います。 経歴的にインフラ周りなど馴染みの薄いお仕事を長くしてきていたので、知識的に荒い(浅い)ところなどは色々ご容赦ください。 私も初心者ですし、あまりインフラとかに馴染みのない方向けの記事となります。 Windows環境(Docker for Win
ついにPandasの1.0.0rc版が公開されたようなので、早速アップデート内容の確認や挙動を試していきたいと思います。 元のツイート : Pandas 1.0.0rc0 is now available for testing! Please try it out and report any issues.https://t.co/iTjBtzy3WA — pandas (@pandas_dev) January 10, 2020 TLDR 極端にがらっと変わったという感じでもありませんが、細かいところが色々とたくさんブラッシュアップされたような印象を受けました。 整数の列に欠損値が含まれていた際に、カラムの型を整数のまま保持するためのpd.NAのシングルトンが追加された。 文字列のカラムがobjectではなく文字列専用の型を指定できるようになった。 真偽値のカラムでも、カラムの型を維
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? PandasやNumPyの並列処理だったり、メモリに乗り切らないデータを扱う際などによく見かけるDaskライブラリ。 ただ、細かいところまで触れている日本語の資料があまり無かったので、公式ドキュメントなどをしっかり読んでみてまとめてみました。 ※Daskのドキュメント既に読まれている方はご存知かと思いますが、ドキュメントがかなりのボリュームなのと、細かい所まで把握するのを目的とするため、本記事も長めです。仕事などの都合でさくっと使われたい方には向いておりませんので、そういった場合は別の記事をご参照ください。 どんなライブラリなのか Py
前々からVS CodeでJupyterが使えるのは知っていましたが、つい先日(2019-10-08)Pythonの拡張機能がJupyterをネイティブサポートしたそうなので、どんな感じなのか試しみます。 TL;DR ほぼJupyterに近い感覚でVS Codeで使える。マジックコマンドとかも要らなくなった。すごい。 補完とか置換やJupyter起動の手間を省いたりと、使えそう。 完全なJupyter再現ではないので、細かい、足りてないところは今後のアップデートに期待。 公式のマイクロソフトの発表 Announcing Support for Native Editing of Jupyter Notebooks in VS Code 前情報 主にTwitterのタイムライン上で色々流れていて知りました(貴重な情報感謝です)。 VSCodeのPythonプラグインが、10月の更新からデフォル
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 世の中的には分析などをする際にはBigQueryのケースが多いと思いますが、仕事でAmazon Athenaを触るケースが出てきたので、入門としてまとめておきます。 Amazon Athenaとは BigQueryみたく、SQLで大きなデータを集計などできるAWSのサービスです。 分析の他にも他のAWSサービスのログ確認などでも使われたりしますが、今回は分析寄りの記事として進めます。 BigQueryと比べて大きく異なる点として、「データをS3に配置する」という点があります(それによるメリットなどは後述)。 コストはどうなの? 基本的に
ついにJupyterLabの入力補完??Tab押さずに補完してくれるjupyterlab-lspを試してみたPythonPython3JupyterJupyterLabjupyterlab-lsp Jupyter notebookからさらに色々便利になっているJupyterLab。 便利な一方で、notebook側の入力補完の拡張機能のhinterlandなどが対応していません。 Tabを押せば補完は表示してくれる(且つ、補完がnotebookよりも賢い)ものの、できればVS Codeなどと同じ感覚でTabを押さなくても補完して欲しいところです。 Labのβが出てから長いこと「誰か作ってくれないかなー」と他力本願なことを考えていましたが、ついにそれらしきライブラリが公開されたようです。 Language Server Protocol integration for JupyterLab
TL;DR セルラーオートマトンの計算モデルの説明について触れます。 1次元のセルラーオートマトンの実装をPythonで進めて動かしてみます。 過程で必要になる知識なども、忘れているものなどがあるので調べつつまとめます。 主な参考文献 作って動かすALife ―実装を通した人工生命モデル理論入門 また、上記書籍のgithubのリポジトリのコードもMITライセンスなので参照・利用させていただきますmm ※本記事では割愛した説明なども山ほどあるので、ALife関係の詳細は書籍をお買い求めください。 セルラー・オートマトンとは 格子状のセルと単純な規則による、離散的計算モデルである。計算可能性理論、数学、物理学、複雑適応系、数理生物学、微小構造モデリングなどの研究で利用される。非常に単純化されたモデルであるが、生命現象、結晶の成長、乱流といった複雑な自然現象を模した、驚くほどに豊かな結果を与えて
ChainerやKeras、PandasやDask、Vaex関係などでちらほら見かけるHDF5(.h5とか.hdf5とかの拡張子のやつです)。 知識が無く以前は単なるバイナリフォーマットなのかと思っていましたが、しっかり勉強したら色々機能があって面白かったので、復習も兼ねてまとめておきます。 そもそもHDF5って? Hierarchical Data Formatの略(5はバージョン)で、名前の通り階層化された形でデータを保存することができるファイル形式です。 ある種フォルダやファイルシステムに感覚が近く、1つのファイル内に整理しつつ様々な複数ファイルを保存できます。 HDF5のここが凄い とりあえず機能に色々触れだすと長くなるので、先にHDF5の、個人的に良さそうに感じた点を書いておきます。 読み書きがCSVなどより大分速い いくつか記事を見ていた感じ、パフォーマンスはpickleよりも
次のページ
このページを最初にブックマークしてみませんか?
『@simonritchieのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く