BusterとかStretchという名前が見慣れない方もいるかもしれませんが、これはLinuxディストリビューションとしてシェアの大きなDebianのコードネームです。 Debianバージョンが少し古いStretchの方がちょびっとサイズが小さかったりはしますが、まあ実用的にはサポートが長い方がいいですよね。slimを使ってGCCとかのコンパイラを自前でダウンロードしている記事とかもたまに見かける気がしますが、マルチステージビルドであれば、そんなにケチケチしなくていいのと、パッケージダウンロードは逐次処理なので遅く、処理系が入ったイメージのダウンロードの方が高速です。並列で処理されるし、一度イメージをダウンロードしてしまえば、なんどもビルドして試すときに効率が良いです。また、多くのケースでネイティブのライブラリも最初から入っており、ビルドでトラブルに遭遇することはかなり減るでしょう。 Py
依存モジュールが少ないソースコードを読む - スペシャリスト岡野真也に聞くPythonの読み方と使い方 現在、多くの支持を集めるPython。10年以上にわたりPythonを使い続ける岡野真也さんに、同言語の学び方、使い方を聞きました。 機械学習やデータサイエンスの隆盛に伴い、Pythonは多くの人に使われる言語になりました。GitHubの「The State of the Octoverse 2019」のレポートによると、GitHubリポジトリのコントリビューターから人気のあったプログラミング言語として、PythonはJavaScriptに次いで2位となっています。 「さまざまな課題を、楽に解決できるのがPythonの魅力」と語るのは、10年以上も前からPython・Djangoフレームワークのヘビーユーザーであり続けてきた岡野真也(おかの・しんや/ @tokibito )さん。彼はいか
はじめに Djangoを使ったアプリケーションで、2つのバッチ処理用プロセスA、Bを同時に立ち上げたときに、Aのトランザクションでsave & commitした値をBでは読み取れないという問題に直面しました。 問題の箇所のソースコードはこのような感じです。 実行順 プロセスA プロセスB 1 with commit_on_success(): p = Post(id=1) p.save() 2 # saveしたデータが見える Post.objects.get(id=1) 3 with commit_on_success(): p = Post(id=2) p.save() 4 # saveしたデータが見えず例外発生 Post.objects.get(id=2) Djangoではデフォルトで自動コミットが有効なので、Aでコミットした値をBで読み取れるはずと思っていたのですが、これは間違いでし
時折、ちょっとしたスピードアップにhttp(https) requestを並列で投げたい場合がある。aiohttpなどを使っても良いが既存のコードを書き換えるのもめんどくさい。そのようなときの方法のメモ。 concurrent.futuresを使う方法も考えられるけれど。今回はasyncioだけに絞った話。 いわゆるpythonでのhttp requestのデファクトスタンダードはrequestsだと思う。ところでこのrequestsはnon blockingではないのでasyncio上で使おうとすると処理がblockしてしまう。run_in_executor()を使うと処理を外部の環境に移せる。 試しに、run_in_executor()を使ってみよう。動作確認自体は直接のhttp requestではなく、requestを模したfakeの関数を使って行う。以下の様な関数。この処理はtim
最近は Python がデータ分析や機械学習の分野でも使われるようになってきた。 その影響もあって REPL や Jupyter Notebook 上でインタラクティブに作業することも増えたように感じる。 そんなとき、重い処理を走らせると一体いつ終わるのか分からず途方に暮れることもある。 今回紹介する tqdm は、走らせた処理の進捗状況をプログレスバーとして表示するためのパッケージ。 このパッケージ自体はかなり昔からあるんだけど、前述した通り利用環境の変化や連携するパッケージの増加によって便利さが増してきてる感じ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.5 BuildVersion: 17F77 $ python -V Python 3.6.5 もくじ もくじ 下準備 基本的な使い方 panda
DjangoでWebSocketやるには時間が足りないけどサーバーサイドpushをしたかったので、ゴリ押しでSSRを使って対処することにしました 修正点があれば指摘していただけると幸いです 注意 ローカルサーバーで実験した所、接続を中断させた時に[ConnectionAbortedError: [WinError 10053] 確立された接続がホスト コンピューターのソウトウェアによって中止されました。]というエラーメッセージが出ます 恐らく無害だと思いますが、気持ち悪いので扱う時は気をつけて下さい そもそもServer-Sent Eventsって何よ ざっくり言うとすごいCometです。つまりゴリ押しサーバーサイドpushみたいなものです WebSocketの方が優秀かもしれませんが、実装コストが低いのがメリットです 詳しく知りたい方は調べて下さい。 コード内容概要 SSEをするだけ。他
Inside Meinheld 先日、TCFMを聞いてたら「グリーンスレッドってなんぞ?」みたいな話が出て、少し思い出したことがあったので書いてみる。 システムコール云々に関しての部分は以下の記事を参考にして下さい。 最速最強Webサーバーアーキテクチャ Meinheld 僕はかなり前に Meinheld という WSGI Server を書いた。 これは買収前のTestFlightでも使われていたし、MDNでは数年前から今でも使われている。 (このことはあまり知られていないのかも知れないが。DevToolでヘッダを確認するとserverのとこにmeinheldと出てるはずである) まあ一般的にはパフォーマンスがウリのように思われている。 実際内部は非同期IOを使っていて速いんだけどこれはタダのWSGI Serverではない。 MeinheldのWSGIハンドラはグリーンスレッド上で動作し
背景 PythonでFlaskやBottleを使って個人的に利用するWEBアプリケーションを作っているのですが、実行環境はuWSGIとか使わずに,FlaskやBottleの組み込みサーバーで動かしている事がほとんどです.十分それで満足しているのですが.すごく簡単にWEBアプリケーションを実行する環境が用意できるというNGINX Unitが気になっていました. そして,最近NGINX Unitが2018年4月13日に正式バージョン(記事)になったので,いい機会だと思って軽い気持ちで触ってみたところ,いろいろ大変な思いをしたので,ここにできる限り誰でもできるように記しておきます. もし,これからNGINX Unitをサクッと試したいと思っているのであれば,Ubuntuで試すと幸せになれます.なんと言っても公式の用意したリポジトリからPython3系が実行できるモジュールをaptでインストールす
DBスキーマのバージョン管理したい ちゃんとしよう、と思ったのでAlembicを入れた。 DBスキーマのバージョン管理ィ~? http://www.slideshare.net/kwatch/db-28097225 インストールや基本的な使い方はここが最高に参考になりましたのでもうこれでいいと思う http://momijiame.tumblr.com/post/45191790683/python-alembic-rdb 開発途中でも簡単に導入できる ところで、今回のぼくのケースは、もうアプリ作り始めちゃってるから、既にSQLAlchemyのモデル定義がいくつかあって、もちろんDBにもテーブルが既にあって、何、これAlembicのマイグレーションスクリプトにもう一回テーブルの定義を全部書いてop.create_table しないといけないの? マジで? つらい…… 戦争くらいつらい……
GitHubの Trending を眺めていたりすると時たま気になるpython製のツールやライブラリがあって試したくなったりします。 でもよく知らないし試したらすぐ消すようなものを普段の環境に入れるのも抵抗があって、その都度仮想環境を作ったりしていました。 try はそんな時に手軽に仮想環境を作って使い終わったらさくっと廃棄してくれる便利ツールです。 インストール tryで作る環境は2.7などでもいいようですが、try自体はPython3.4以上の対応のようです。 python3 -m pip install trypackage これ(またはpip3など)でインストールでき、コマンドラインからtryコマンドが使えるようになります。 使い方 try [試したいライブラリ名] [[ライブラリ2] [ライブラリ3] ...] これで新しい仮想環境が作られてライブラリがインストール&impor
Complete beginners start here!Getting started with the webGetting started with the webInstalling basic softwareWhat will your website look like?Dealing with filesHTML basicsCSS basicsJavaScript basicsPublishing your websiteHow the web worksHTML — Structuring the webIntroduction to HTMLIntroduction to HTMLGetting started with HTMLWhat's in the head? Metadata in HTMLHTML text fundamentalsCreating hy
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く