タグ

ブックマーク / blog.ymyzk.com (7)

  • ISUCON7 本選で学生枠1位になりました

    チームMLとして @ishiy1993 と2人で ISUCON7 の選に出て,学生枠の1位 (全体の7位) になりました.使用した言語は Python で,最終スコアは 19,172 でした.満足のいくスコアではありませんでしたが,我々が今持っている力は出し切れたかなあと思っています. 問題 近いうちに問題の詳細が公開されると思うので簡単にまとめると,今回のお題はクッキークリッカーを複数人でプレイできるようなものでした.通信は基的に WebSocket で行われるという特徴がありました. 追記: GitHub で参考実装やベンチマーカーを含むリポジトリが公開されました 事前の準備 予選は論文締め切り直後に出場したためあまり準備をせずに参加してしまったのですが,選では以下のようなことを事前に準備することが出来ました. 開始直後の作業手順書 サーバーセットアップ用のスクリプト ミドルウェ

    ISUCON7 本選で学生枠1位になりました
    peketamin
    peketamin 2017/11/28
  • WSGI ミドルウェアとして使えるラインプロファイラを作った話 - ymyzk’s blog

    この記事は CAMPHOR- Advent Calendar 2016 の1日目の記事です. Python の WSGI ミドルウェアとして使えるラインプロファイラ wsgi_lineprof を作成しました. wsgi_lineprof は Django や Pyramid, Flask, Bottle などの WSGI 互換のアプリケーションやフレームワークと組み合わせて利用できるようになっています. 背景 Web アプリケーションを作成する際に, ボトルネックとなっている部分を発見するために, ラインプロファイラは有用です. Ruby での WSGI に対応する Rack には rack-lineprof というライブラリがあり, Rack の middleware として簡単にラインプロファイラを利用できます. ISUCON の参加記事等を見ていると, Ruby ユーザーはこのライ

    WSGI ミドルウェアとして使えるラインプロファイラを作った話 - ymyzk’s blog
    peketamin
    peketamin 2016/12/17
  • Python 2 と型ヒント (Type Hints) – ymyzk’s blog

    この記事では PEP 484 — Type Hints の更新によって提案されている Python 2 における型ヒントについての情報をまとめます. 型ヒントとは Python 3.5 から導入された型ヒント (Type Hints) はソースコードに型注釈 (型アノテーション) を記述する標準的な方法を定義するものです. この記法は mypy で利用されていたものの影響を強く受けており, Python 3.0 で導入された関数アノテーションを利用します. 型ヒントは次のように記述します: def add(x: int, y: int) -> int: """docstring here""" return x + y Python 3.5 は様々な型を記述するために typing モジュールが追加されました. この typing モジュールは Python 3.5 以前でもバックポートが

    Python 2 と型ヒント (Type Hints) – ymyzk’s blog
    peketamin
    peketamin 2016/02/29
  • Let’s Encrypt で証明書を発行して運用するための nginx の設定 – ymyzk’s blog

    この記事では Let’s Encrypt で証明書を発行し, nginx で利用するための設定を紹介します. Nginx をアプリケーションサーバーのためのプロキシとして利用している場合を想定して, Let’s Encrypt のための webroot を別に設定しています. 概要 Let’s Encrypt では様々な方法での認証・証明書のインストール方法がプラグインとして提供されています. Nginx 用のプラグインも開発されていますが, 現時点で experimental となっているようなので, webroot プラグインを利用するのが一般的なようです. この記事では /var/www/letsencrypt に Let’s Encrypt の webroot プラグインによる認証のためのディレクトリを作成し, 以下のようなコマンドで証明書の発行を行えるようにすることを目標とします

    Let’s Encrypt で証明書を発行して運用するための nginx の設定 – ymyzk’s blog
    peketamin
    peketamin 2016/02/16
  • Swift でジェネレータを作ったり、遅延評価してみる - ymyzk’s blog

    Swift 1.2 を使ってジェネレータを作成したり, ジェネレータを使って遅延評価をしてみます. 同様のことをこれまでいくつかの言語で行っていますが, それについては以下を参照してください. これまでの流れ Ruby の Enumerator でジェネレータを作ったり、遅延評価してみる Python でジェネレータを作ったり、遅延評価してみる ECMAScript 6 でジェネレータを作ったり、遅延評価してみる Rust でジェネレータを作ったり、遅延評価してみる ジェネレータの基 Swift でのジェネレータは GeneratorType プロトコル (protocol) に適合している型として表されます. GeneratorType の定義は以下のようになります. protocol GeneratorType { typealias Element mutating func ne

    Swift でジェネレータを作ったり、遅延評価してみる - ymyzk’s blog
    peketamin
    peketamin 2015/05/21
  • Django Compressor + Babel で Django でも簡単に ES6 コードを扱う方法

    ECMAScript 6 の実装は各処理系で少しずつ進んでいますが, 現実的に Web ブラウザで ECMAScript 6 のコードを実行するには一部の機能のみを用いるか, Babel 等のコンパイラを用いて ECMAScript 5 互換のコードに変換して利用することになります. この記事では Python の Web アプリケーションフレームワーク Django と Django で静的ファイルの圧縮等を行う Django Compressor と Babel を組み合わせて利用する方法を紹介します. 環境 Python・Django・Django Compressor・Node.js (io.js)・Babel がインストールされた環境があり, 適当な Djangoプロジェクトが生成できているものと仮定します. Django と Django Compressor は pip

    Django Compressor + Babel で Django でも簡単に ES6 コードを扱う方法
    peketamin
    peketamin 2015/05/07
  • Swift で Singleton パターンを実装する (Swift 1.2 対応) - 意識低い開発者のBlog

    Swift で Singleton (シングルトン) パターンを実装する方法はいくつか提案されていますが�, ここでは Swift 1.2 以降で利用できる方法と Xcode 6 Beta 4 から利用出来る古い方法の2つを紹介します. Xcode 6.3 / Swift 1.2 以降 コード class SingletonSampleClass { private init() { // Initialization here } static let sharedInstance = SingletonSampleClass() } 説明 private init() { // Initialization here } イニシャライザは private にしておき, sharedInstance 経由でのアクセスを強制します. ただし Swift の private のスコープは同じ

    Swift で Singleton パターンを実装する (Swift 1.2 対応) - 意識低い開発者のBlog
  • 1