タグ

ブックマーク / qiita.com/haminiku (5)

  • Slack,HipChat,IRCで利用されているXMPPプロトコルの解説と実装 - Qiita

    『アッオー』でおなじみICQからIRC,Yahooメッセンジャー,HipChat,Slack,GoogleTalkの共通点は、すべて通信にXMLベースのXMPPプロトコルを利用していることです。インスタントメッセージサービスは目まぐるしく移り変わっていくため、変わらないコアの部分を抑えることが重要だと思います。 XMPPプロトコルを喋ると、大半のメッセージサービスを利用できるBotが作れます。この記事ではXMPPを開発・公開したJabber社のライブラリを利用して複数のメッセージサービスに対応したBotを実装していきます。 作るもの 起動したらHipChatとSlackに両方ログインしていて、話かけたらdeployしたりコマンド実行したりするBot。海外Slack、国内はHipChatを使う特殊事例が発生して開発することになりました。過渡期つらい 新しいものを、どんどん取り入れていくこと

    Slack,HipChat,IRCで利用されているXMPPプロトコルの解説と実装 - Qiita
  • 【PyCharm5.0新機能】async/awaitのスレッド実行状況を可視化してデバッグする - Qiita

    2015/11/23にPyCharm5.0がリリースされました。リリースノートにはPython3.5サポートと非同期実行の可視化機能などが記載されています。非同期実行の可視化機能が便利そうだったので早速使ってみた記事です。 Thread Concurrency Visualization(非同期実行の可視化機能) 以前書いたasync/awaitの記事を試しにPyCharmで実行して可視化してみた。 今回作るモノ Wikipediaの13記事を同時にダウンロードしてファイルに保存するプログラム 改善前のプログラム ざっくりざっくりで書いてみました。 # -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals import aiohttp import asyncio async def d

    【PyCharm5.0新機能】async/awaitのスレッド実行状況を可視化してデバッグする - Qiita
  • Flask+PyPy 大規模Web向けBlueprintで速度ベンチマーク取ってみた - Qiita

    前回の記事でDjangoとFlaskとPyramidを比較して、Flaskいいなーとなったので早速試してみました。 FlaskというPython Webフレームワークにて大規模向けと言われているBlueprintチュートリアルに沿って構築した機能をベンチマークして比較しています。Blueprintとは複数の小さなアプリ毎(機能毎)にViewを切り分けるFlaskの機能です。 構築後Apache Benchを利用して、PyPy3 2.4とPython3.5を比較した ベンチマーク を取得しています。 ディレクトリ構成 デフォルトの単一Viewと異なりviewsディレクトリを設置して、その中に機能毎のviewを設置していきます。今回はroot とreport 機能を追加してみました。 ■ ディレクトリ構成 テンプレートの抽象化 HTMLのHEADやBODYタグといった共通部分をmaster.h

    Flask+PyPy 大規模Web向けBlueprintで速度ベンチマーク取ってみた - Qiita
  • Python3.5で実装されたasync/awaitを使って軽量スレッドの性能ベンチマーク - Qiita

    Python3.5でasync/awaitが追加されていたのでメモリ消費量とコンテキストスイッチのコストの観点でベンチマークを取ってみました。 async/await構文とは 非同期処理やノンブロッキングI/O処理を良い感じに書ける非同期処理のパラダイムにおける最先鋭の構文です。C#に実装されたあと、C++,VB,Node.jsに実装されついにPythonにもやってきた!という感じです。特徴はいままでThreadingで頑張って書いてた非同期処理が、より簡潔により強力に書けるようになります。軽量スレッドとはマイクロスレッド、ファイバーとも呼ばれるもので、「C10K問題」(クライアント1万台問題)と言われるI/O待ちによってクライアント数が多いとハードウェアの性能が生かしきれない問題の解決策の1つです。I/O待ちの際に高速にコンテキストスイッチして他のクライアントを捌くことでハードウェアの性

    Python3.5で実装されたasync/awaitを使って軽量スレッドの性能ベンチマーク - Qiita
  • Redis 本番障害から学んだコードレビューの勘所

    Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以

    Redis 本番障害から学んだコードレビューの勘所
  • 1