破棄されたブログ

このブログは破棄されました。

Python

Python の socket でデータを送ってみる

ソケットを使ったクライアントプログラムを作成するには、 socket.socket を用いる。 # path/to/telnet.py import socket from sys import argv with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((argv[1], int(argv[1]))) while Tr…

直積を実装する

Python には、 itertools パッケージに product() があるわけですが、 今回はこれを自分で実装してみます。 2 変数の直積 2 変数の直積については、特に難しく考えず、愚直に実装します。 def product(xs, ys): return (x + y for x in xs for y in ys) asse…

Django の Form のバリデーションについて整理する

この記事は、 2015 tech-yuruyuru アドベントカレンダー 5 日目の記事です。 Django の Form には、色々なバリデーションの種類が存在します。 色々な種類に分かれている以上、それぞれに役割が存在しますし、 適切な場所にバリデーションを書かないと、そも…

mDNS を使いローカルマシン内の仮想環境に接続する

この記事は、 2015 tech-yuruyuru アドベントカレンダー 2 日目の記事です。 ローカルマシン内の仮想環境へアクセスするには、いくつかの方法があります。 この記事では、 mDNS を用いて名前解決行い、 仮想環境へのアクセスする方法について説明します。 mD…

vim-virtualenv のコード変更もシンボリックリンクの作成もせずに vim-virtualenv を Python 3 に対応させる

近年、 Python 3 への移行が進んでいる。(近年って言ってみたかった) (中略) vim-virtualenv を Python 3 に対応させるには、 vim-virtualenv のコードの変更が必要だとか、 python 2.7 へのシンボリックリンク作成が必要だとか言われていた。 でも、そ…

Django でログインフォームを雑に作るぞ!!

Django では、 django.contrib.auth パッケージでユーザ認証機能を利用できる。 また、このパッケージはログイン用のビューも予め用意してくれている。 ログインロジックを独自に実装する必要がない場合は、このビューを使うと楽っぽい。 django.contrib.aut…

Counter と defaultdict のパフォーマンス比較

TL;DR; イテレータの要素をカウントするだけであれば、 defaultdict の方が高速で、 Counter の 60% から 70% くらいの時間で処理が完了する。どっかにも書いてあった気がするけど。 検証内容 os.urandom() でランダムに生成した文字列をカウントした。また…

Python 3.4 からは、 spec, autospec を用いて生成されたモックオブジェクトがシグネチャを考慮する

Python 3.4 からは、 spec または autospec を用いて生成されたモックオブジェクトがシグネチャを考慮するようになっています。 以下のコードは、 Python 3.3 では成功しますが、 Python 3.4 では、 assert_called_once_with() で AssertionError が投げられ…

GitHub に芝を生やしたい

pjxiao/uecsyllabus 久々に GitHub でコードを公開した。 使っていないコードが残骸として残っていたり、色々と雑な感じがする。 ただ、最小限の実装で踏みとどまるっていう目標も持っていたので、必要以上に頭いい感じにはしなかった。 書き終わってから見…

Python におけるリストの引き算色々

Python でリストの引き算をする際には、フィルターか set 、もしくはその両方を組み合わせる。

Python でカジュアルにイミュータブルな型を作る

Python でカジュアルにイミュータブルな型を作りたいときは、 namedtuple を使う

Python で「実行中のプログラムの進捗度を手っ取り早く確認したい」

setproctitle というライブラリを使う。 sys.argv[0] に代入してもだめ。 あんまし手っ取り早くない。

Collection Pipeline in Python

martinfowler.com でコレクションパイプラインという記事が上がってきたので、サンプルコードを Python で書いた。 Collection Pipeline TL;DR Python の場合、 Ruby のようにメソッドチェーンで繋げないので、右下に伸びてきてツラい データ data = [ { "ti…

Python で Windows のスリープを抑止するコンテキストマネージャ書いた

FFMpeg でのエンコスクリプトを普通に bat で書いてたんだけど, スリープを抑止するのにいい方法が見つからなかったんで, bat をやめて Python で書くことにした. スリープを抑止するには, Windows の API である SetThreadExecutionState を ES_SYSTEM_REQU…

Django のログイン要求ミドルウェア

この記事は、Django の全ページに一括でログイン要求(ユーザ認証)を設定させるためのミドルウェアに関する Ryan Witt 氏による記事、 Django Login Required Middleware を著者の許可のもと翻訳したものです。コード中のコメントも日本語訳されていますの…