c-bata web

@c_bata_ のメモ。python と Go が多めです。

Djangoライブラリのテストを setup.py testで実行するためのTestCommand

Djangoのアプリケーションをライブラリとして公開する際の、ファイル構成はいろいろな選択肢があります。 通常のプロジェクトの始め方と同じように django-admin startproject でプロジェクトを作成しその中に作成したアプリケーションを公開する場合や、プ…

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

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

Intel AVX (Advanced Vector Extensions) によるSIMD演算

SIMD(Single Instruction Multiple Data)は、名前の通り複数のデータを1命令で処理する方式を指します。各プロセッサコアに異なる命令を供給する機構が必要なMIMDと比べ、SIMDは必要なトランジスタ数が少なく小さな面積でプロセッサを設計することができるた…

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

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

Wrapping up 2017 and 2018, Hello 2019.

そういえば振り返り記事書いてなかったなと思いたち書きました。 よくみたら昨年も忙しすぎて書いてなかった。 (写真は年始に会社の人と新潟まで泊まりでスノボいったときの景色) Wrapping up 2017 and 2018 2018は振り返りをしてなかったので、2年前の目標…

CUDAメモ: NVIDIA Tesla K80, CUDA 10.0, Ubuntu 18.04

たまたま参加したもくもく会に石本さんも来ていたので、疑問点があれば聞けるいい機会かなと思いCUDAの勉強をしてみました。 公式ドキュメント が非常に丁寧に書かれていてすごくスムーズに調査できた。最適化や行列計算のアルゴリズム的なテクニックに関し…

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,稲田直哉,芝田将,渋川よしき,清水川貴之,森本哲也出版社/メーカー: KADOKAWA発売日: 2018/02/26メディア: 単行本この商品を含むブログを見る Webアプリケーションフレームワーク…

PyCon JP 2018 でDjangoの話をしてきました。

まずはPyCon JP 2018おつかれさまでした。全体的にクオリティの高い発表が多く、参加者としても楽しむことができました。 また最近は執筆を優先していた結果Pythonの勉強会にあまり顔を出せていなかったため、久しぶりにご挨拶できた方も多かったです。 自分…

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

この資料は DjangoCongress JP 2018で話した「Djangoにおける認証処理実装パターン」 の解説記事になります。 2019/04/08 追記: GithubのコードはPython3.7 Django2.2にupdateしています) 何年か前に 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 Advent Calendar 2016 - Qiita 18日目の記事です。 Django REST Frameworkは、DjangoでRESTfulなAPIを提供するときに非常に人気のあるフレームワークです。 既に使ってるよという方も多くいらっしゃるのではないでしょうか。 日経電子版さんも業務で…

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…

Electronでニコ動のコメントみたいにTweetを表示するアプリつくった

知り合いのエンジニア(rayさん)がGTK3で作っていた nsd というのがあるんですが、結構いい感じなのでMacでも動くものが欲しかった。 Electronで似たようなことが出来ないか調べてみると、GTK3とかに比べて簡単にできそうだったので作ってみた。 ポイントは:…

PIPEによるプロセス間通信とselect, poll, epollの話

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)作者: Michal Jaworski,TarekZiade,稲田直哉,芝田将,渋川よしき,清水川貴之,森本哲也出版社/メーカー: ドワンゴ発売日: 2018/02/26メディア: Kindle版この商品を含むブログを見る 先…