[Dd]enzow(ill)? with DB and Python

DBとか資格とかPythonとかの話をつらつらと

2017-10-01から1ヶ月間の記事一覧

Pythonでシンプルな文章の類似度判定をやってみた

会社の後輩に、社内のFAQの利用率を高めたいからなんとかしたいといわれ、自然言語の入力を受け付けて近いFAQのリンクを戻すコードを書いてみました。 後輩に説明しながらという点と元データも70件程度と少なかったことや、そもそも自分がちゃんと理解してな…

scouty 機械学習講習会 〜自然言語処理入門「Pythonでつくる言語モデル」〜 に参加してきた

ISUCONショックから1週間ほど更新が空いてしまいました。先日表題のイベントに参加してきたのでその備忘録です。 scouty.connpass.com

ISUCON7で惨敗してきました

先日ISUCON7に出場してきました。個人としては初めての参加でしたが、結果としては最高得点でも予選通過の20万に遠く及ばない、7万程度と振るいませんでした。 反省の意味も込めて感想を残します。 敗因 今回の予選は初の複数台構成でした。そのため、nginx…

WEBアプリケーションにおいて「あなたはどこにいますか?」(Flask, Bottleでのセッションデータの格納先)

WEBアプリケーションを作ると、ログインしているか?や買い物かごに何が入っているのか?といった状態を管理する必要があります。通常はセッション(session)データに格納しますが、そもそもこのセッションデータがどこにあるのかを調べました。

Redisの永続化とパフォーマンスのバランスを考えてみる(redis-pyを添えて)

ISUCONに関わって初めて真面目にRedisと向かい合ってます。RedisはオンメモリのKVSですが、デフォルトの設定では、再起動後もその内容が失われないように永続化されています。しかし、ISUCONというパフォーマンス重視の環境で永続化を考える場合、いくつか検…

Flaskで書かれたWEBアプリをBottleに書き換えるときの勘所

今週はISUCON7予選ですね。ここのところ毎回ですが今回もISUCON関連のネタです。ISUCONのPython実装はFlaskで作成されているケースが多いですが、これをBottleに書き換えるとパフォーマンスが上がるケースがあります。しかし書き換えにはいくつか注意点があ…

uWSGI caching frameworkを試してみる(PythonのWEBアプリケーションでのプロセス間情報共有)

今回はuWSGIのワーカプロセス間でキャッシュを共有できる、cache frameworkを試してみます。ISUCONをPythonで戦うとなると、大抵はRedisあたりだと思うのですが、それだと1プロセスで動作するGoやNode.jsに対してディスアドバンテージをもつことになるので、…

PythonでRedisを効率的に使う(redis-pyのパフォーマンスをあげるには)

前回書いたようにISHOCONというプライベートなISUCONに出てきました。MySQLの思いクエリをRedisに変えることでスコアは伸びたのですが、Redis自体もプロセスローカルのメモリに比べると遅いのでできるだけ効率的な使い方を模索しました。いつになく記事が長…

PythonでRedisを扱う(redis-pyの基本)

先日、ISUCONの練習としてISHOCONに参加してきました。ISUCONもそうですが初期実装のRDBMS部分をどれだけRedis等に移せるかでスコアの伸び方が違う気がします。少なくとも今回の問題はRedisを上手に使えるかが鍵です(少なくともPythonでは しかし、イマイチR…

Pythonのunittestで標準出力のテストを作る

最近やたらunittestを書いているのですが、標準出力部分のテストをしなければいけなくなり、やり方を確認したのでメモとして残します。 どういうことか こういう標準出力に内容を書き出す関数についてunittestを作成したかったという話です。 def hoge(): pr…

nginxでクエリストリングに応じて静的ファイルをばらまきたかった

そろそろISUCONということで、先日チームであつまって練習をしたところnginxでドハマリしたので復習した内容をまとめます。 やりたかったこと ISUCONはほとんどがフロントにWEBサーバ(nginx)があり、裏にgunicorn等のAPサーバを配置した構成が多いようです。…