著書『実践Django Pythonによる本格Webアプリケーション開発』が本日から発売されます。

Twitterでは以前から告知を行っていましたが、著書『実践Django Pythonによる本格Webアプリケーション開発』が本日から発売になります。 購入を検討している方は、Amazonもしくはお近くの書店で探してみてください(エキスパートPythonプログラミング 改訂3…

最近の登壇資料と出版予定の書籍、インタビュー記事

最近は勉強会での登壇や書籍の出版などアウトプットが色々重なりました (昨年は一度もプロポーザルを書かず登壇依頼もなかったので随分増えました)。 そのたびにツイートもしてきましたが、ほとんど流れてしまって少しもったいない気がしたのでブログにまと…

Pyppeteer(with headless Chromium) + GitHub Actionsでoptuna-dashboardの継続的E2Eテスト

以前 optuna-dashboard というWebツールを開発・公開しました。 もともと Goptuna のために実装したReact.js + TypeScript製のSPAのWebツールでしたが、Optunaでも使えるようにしたところ、周りでも使ってるよという声をいただくことが増えてきて、公式に利…

mypyc_ipython: mypycを気軽に動かせるIPythonマジックコマンドの紹介と実装解説

最近mypyc(型ヒントのついたPythonのコードからC拡張を生成するコンパイラ)のコードを読んでいたのですが、Cythonの %%cython マジックコマンドみたいに手軽に確認したいなということでマジックコマンドを実装してみました。CythonやPythonとサクッと性能を…

Kubeflow/KatibがGoptunaを使った最適化に対応しました。

KubeflowのKatibというハイパーパラメーター最適化等を担当するコンポーネントにGoptunaを使ったSuggestion serviceを実装しました。

Django 3.1 MySQL db_flush() の高速化とTransactionTestCase利用時の注意点

追記: 翔泳社さんからDjangoの書籍を出版するので、ぜひ読んでみてください。 実践Django Pythonによる本格Webアプリケーション開発作者:芝田 将翔泳社Amazon DjangoのMySQL DatabaseOperations Backendのとある処理を最適化するためのpatchを書いていて、そ…

Github ActionsでクロスコンパイルしてGithub Releaseにアップロードする

追記: GoReleaserのbabarotさんの記事があったので紹介。GoReleaser使ったほうが手軽でよさそう。 Go で書いた CLI ツールのリリースは GoReleaser と GitHub Actions で個人的には決まり | tellme.tokyo 追記: GoReleaserのプロジェクトがGithub Actionを公…

LLVMのauto-vectorizationとc2goasmによるGo Plan9 Assemblyの生成によるSIMD最適化

InfluxDBの開発チームはApache Arrowの技術に注目していて、ArrowのGo実装の開発にも積極的に参加しています。Stuart Carine (InfluxDBの開発チームメンバー)がApache ArrowのGo実装に取り入れたc2goasmとLLVMを使った最適化が以前話題になりました。 www.in…

Github Actionsでbranch作成/削除にフックしてFeature環境を構築する

最近Github Actionsを触る機会があったのですが、まだ自分のgithub accountはbetaのwait list待ちで業務で使ってるrepostioryでしか使えないので、使い方とかポイントを忘れないようにメモ。ついでにいくつか公式のactionにPR送ったり、KubernetesのIngress …

RAW Socket / BPF(Berkeley Packet Filter)を用いたパケットキャプチャーツールの実装

パケットキャプチャーツールは、ネットワークを流れるすべてのパケットを受け取り解析します。 NIC(Network Interface Card)のほとんどはプロミスキャスモードとよばれるモードをサポートしており、これを有効にすることでアドレスにかかわらずNICはすべての…

Google Translate APIを使ったSphinxドキュメントの自動翻訳

多言語への翻訳は大変な作業ですが、近年は機械翻訳の精度も上がってきました。 ふと思いついて .po 形式の翻訳ファイルをGoogle翻訳を通して自動で入力するスクリプト を作ったのですが、サクッと書いた割に予想以上に便利で料金も思ったより安かったので記…

Double forkによるプロセスのデーモン化と、ファイル変更時の自動サーバーリロードの実装 (Python)

Pythonで約100行のシンプルなWSGIサーバーを書いてみる - c-bata web でWSGIサーバーを作ってみました。 100行程度の非常に簡易的なものでしたが、実際にDjangoアプリケーションを動かすこともできました。 前回作ったWSGIサーバーをもう少し便利に使えるよ…

Pythonで約100行のシンプルなWSGIサーバーを書いてみる

エキスパートPythonプログラミング改訂2版作者:Michal Jaworski,Tarek Ziade発売日: 2018/02/26メディア: 単行本 はじめに — Webアプリケーションフレームワークの作り方 in Python の資料が最近になってホットエントリー入りし、思ったよりも多くの方に読ん…

Django における認証処理実装パターン

追記: 翔泳社さんからDjangoの書籍を出版するのでぜひ読んでみてください。 実践Django Pythonによる本格Webアプリケーション開発作者:芝田 将翔泳社Amazon この資料は DjangoCongress JP 2018で話した「Djangoにおける認証処理実装パターン」 の解説記事に…

エキスパートPythonプログラミング 改訂2版が発売されました

改訂2版と書いてあるように、この本には初版があり日本語の翻訳書は2010年頃に出版されていました。 自分がPythonを書き始めたのが2014年頃だったのですが、当時通っていた学校の図書館で見つけてこの本を借りたことがあります。 プログラミングの勉強を初め…

Mach APIとCPUレジスタ値の取得について

AbemaTV Advent Calendar の10日の記事です。 最近作っているツールの話をしようかと思ってましたがちょっと開発が間に合わなかったので、同期のiOSエンジニアから教えてほしいと言われたMach APIについて書きます。 あまりMach APIに関する資料は日本語・英…

PyCon APAC 2017 参加レポート

今年で3回目のPyCon APAC参加になりました。 前回まではgihyo.jpさんの方で連載していたのですが、今回はpyladiesの方々が書いてくれるみたいなので楽しみ。 台湾で開催された「PyCon APAC 2015」参加レポート:レポート|gihyo.jp … 技術評論社 「PyCon APA…

python-prompt-toolkitをgolangに移植。kubernetesクライアント作った

Github Trendingに載ってから、予想以上に伸びました。ありがとうございます。 Wow... #githubhttps://t.co/ENQjRyqZmN pic.twitter.com/iqFx59ydcq— c-bata (@c_bata_) 2017年8月17日 python-prompt-toolkitをgolangでも使いたいなと前から思い移植していた…

2週間半のReact Nativeアプリ開発を振り返る

React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~作者: 松澤太郎出版社/メーカー: マイナビ出版発売日: 2018/08/29メディア: 単行本(ソフトカバー)この商品を含むブログを見る ここ2週間ちょっとReact NativeでiOSアプリ…

Protocol BuffersをJSONに変換する

React Native + GoのProobuf API Serverの構成でアプリケーションを作っているのですが、次の条件でdeserializeができないことがわかってしまった。 [javascript] Failed to deserialize protobuf message which has other message types. · Issue #3098 · g…

asyncioがPOSIXスレッドを使っている原因を調べる

tokibito先生 (id:nullpobug) がオフィスに遊びにおいでと声かけてくれたので、オープンコレクターさんに遊びに行ってました。 aodag先生 (id:aodag) と3人で雑談してたんですが、ふと以前気になっていたことを思い出したので聞いてみた。 気になっていたこ…

2017年抱負(エンジニアリング)

今週のお題「2017年にやりたいこと」 あけましておめでとうございます。 今年やりたいことを書き出してみる。 nwpct1.hatenablog.com 2016年はインプットのかなり多い年だったので、今年はアウトプットを増やしたい。 卒論の提出と卒業: まずはちゃんと卒業…

2016年のふりかえり

2016年も終わりですね。大学院には進まずに都内のWeb系企業に就職するので、学生生活もそろそろ終わりみたいです。 3月頃から渋谷新宿あたりにいると思うので、またご飯行きましょう OSS活動 Write Code Every Dayには程遠いですが、昨年に比べてコードを書…

docker-composeにnginxのコンテナ追加したらRedirectでハマったのでメモ

自作のWSGIフレームワークKobinのExampleにおいて、手元でも静的ファイルをNginxで返すように変更を加えた。 ただしRedirectがうまくいかないので調査 & 雑にメモ (ところどころ英語)。 Problem GitHub - kobinpy/kobin-example: Example application using …

Core APIの概要とDjango REST Frameworkでの使い方

追記: この記事の内容はかなり古くなっています。翔泳社さんからDjangoの書籍を出版するこちらを読んで頂くのがおすすめです。 実践Django Pythonによる本格Webアプリケーション開発作者:芝田 将翔泳社Amazon Django Advent Calendar 2016 - Qiita 18日目の…

rexecute: ファイルの更新を検知して指定したコマンドを自動実行するCLIツールつくった

そんなことより卒論書きなよって話ですが、texファイルの更新を検知して自動でビルドする仕組みを整備しました。 2年前に論文を書いていたときは、RubyのGuardを使っていたのですが久しぶりに試すと動かなくて、それを直すのも面倒だったので、少し汎用的に…

Released Kobin v0.1.0: Web Framework for Python3.

少し開発が停滞気味だったのですが、最近多くのアップデートを加えたので、v0.1.0をリリースしました。それに伴い、WSGIミドルウェアやWSGICLIの開発、ドキュメントの整備を行ったので紹介。 github.com Kobin Kobinの説明や使い方は、ドキュメンテーション…

Webフロント周りのパフォーマンスを計測・チューニングする

Github Pagesで公開しているポートフォリオサイトがそんなに色んな情報載せてる訳でもないのですが、遅くてあまり気持ちのいいものではないので、最適化していきます。 結論から書くと、2.87sぐらいかかっていた読み込みが1.57sぐらいになりました。 まだま…

h2load, apache benchによる負荷テスト

前回の記事で触れたApache JMeterやGatlingとは違って、今回試したのはシナリオとかもなくHTTPのリクエストを大量に投げて、スループットやレイテンシを計測してみたい時に便利なツール。 実際に試したのは次の2つ。他にも、wrkやvmbench、siegeが気になった…

Apache JMeterメモ

Website: http://jmeter.apache.org/ Apache JMeterを教えてもらったので、後で見返せるようにメモ。 Apache Software Foundationで開発されているオープンソースのJavaアプリケーション Webサーバーに対して複数のHTTPリクエストを送信し負荷をかけたり、JD…