2013-01-01から1年間の記事一覧

2013 年振り返り

なんか小さい病気ばっかりしてた気がする…。 1 月 手に熱湯を誤って掛けてしまい火傷する。 たしか金曜の夜に熱湯をかぶり土曜日の夜くらいに痛みが出て来てヤバいと思い慌てて近くの病院を探すも夜だしやってないし、次の日は日曜だったから当然休診だった…

aws-sdk-ruby で keepalive でハマった

メモ。 ストレージサーバに RiakCS を使って、Python の boto から RiakCS にファイルを送信する。 Ruby で書かれたサーバー(MessagePack-RPC)があり、それが Python で突っ込んだファイルを取得し処理をする。 Python から Ruby のサーバーに対して Message…

Flask-Restless を試してみる

API サーバとして Flask を使う場合にコードが簡略できそうなので、Flask-Restless を試してみた。 同様なプロダクトとして、Flask-Restful があるけど、Flask-Restless を選んでみたのは view を書かなくてよさそうだったから。 # 逆に言えば「おまかせ」に…

Flask-WTF0.9 で仕様変更

Flask-WTF0.8 を使っていて、0.9 にアップデートしたら色々互換性が無くなっていてハマった。 Field モジュールの廃止 0.8.x で動いてたコード from datetime import timedelta from flask.ext.wtf import Form, TextField, validators from flask.ext.babel…

Flask-SQLALchemy で multi-database をつかったのが動かない

Flask-SQLAlchemy を試してみるかと思って以下のようなのを書いた。 #!/usr/bin/env python # -*- coding: utf-8 -*- "" from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'…

QuickRun.vim で Python のテストを実行した際にモジュールが読み込まれない現象

メモ。 環境: Python2.7.4, MacVim Kaoriya 7.4.22, QuickRun.vim QuickRun-Unittest, vim-virtualenv Flask を使ってこんなコードを書いてた。app.py # -*- coding: utf-8 -*- from flask import Flask from flaskext.kvsession import KVSessionExtension…

Supervisor で Celery を管理

メモ。 [program:celery] command=celery -A foo.tasks.task worker -l debug -E environment=PYTHONPATH=%(here)s/../../barproject directory=%(here)s/../barproject autostart=true autorestart=true redirect_stderr=true stdout_logfile=%(here)s/../l…

dataset でマルチバイトが正しく処理されてない

dataset っていう Python でデータベースを簡単に扱うライブラリがある。 雰囲気的には以前書いた MoSQL と似た感じ。 dataset: databases for lazy people — dataset 1.0.8 documentation こっちはバックエンドに SQLAlchemy を利用している。 ドキュメント…

svn で間違ってコミットしてしまったのを取り消す

メモ。前提家では Git を使っている。 職場は svn な環境で $ svn commitとか間違ってしてしまって全ての変更が問答無用でコミットされる悲劇が起きた。 直前のコミットを取り消したい。 svn update svn merge -r 1000:999 .リビジョン番号 1000 を 999 に戻…

pip インストール元を Github のリポジトリを指定する

メモ。 requirement.txt にどうやって書くのか分からなかった。 こう書く。 -e git://github.com/bycoffe/python-placemaker.git#egg=placemakerアンインストールの方法。 $ pip uninstall placemakerみたいな egg の名前を指定すれば行けるのかと思ったけど…

MoSQL を試してみた

MoSQL って DB みたいな感じがするが、Python のライブラリ。 MoSQL — More than SQL — MoSQL v0.12.3 documentation 要は ORM を使う規模ではない、でも生の SQL を書くには苦痛という人向けのよう。 SQLAlchemy の Query オブジェクトみたいなのや SQLSoup…

RSpec を実行した時にモジュールがロードされない問題

メモ。 環境が rvm を使っていて、とあるライブラリを gem を利用してインストールしてある環境で、RSpec を使ってテストを書いている時にブチ当たった現象。 # なお当方 Ruby | RSpec 初心者 作っているモジュールのテストコードを書いていて、とあるモジュ…

jedi.vim の popup_select_first が効かない

Vim

jedi.vim がバージョンアップして補完候補が常に選択されるという現象にあたった。 let g:jedi#popup_select_first = 0 という設定で解除できるとの事が正しく動作していない。 報告したけどあんまり良い感触じゃないっぽい。 g:jedi#popup_select_first = 0…

jedi.vim

jedi.vim に Pull Request した - Memo で Pull Request して dev ブランチに取り込んで貰った物が jedi が 0.7 になって他の変更と共に master にマージされた。 jedi.vim の設定値もいくつか変更があった模様。 変更前 変更後 g:jedi#get_definition_comma…

Riak についての疑問

OSC 京都に Riak のセッションを聞きに行った。 内容は Riak の基礎的な事で入門には最適なセッションだった。 仕事で Riak-CS を試験的に分散してないストレージとして試していて、Riak 自体を直接使ってる訳ではないのでとても良かった。 # ちょっと落ち着…

MacPorts で入れた MySQL5.6 に接続できなかった時の対応

仕事マシンを移行してローカル環境に MySQL5.6 を入れて、Python で書いたアプリケーション経由で ローカルの MySQL にアクセスしたら、以下のように出た。 OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on 'localhost' (61…

Flask の Extension の Python3 対応状況

Flask がめでたく Python3.3 をサポートしたので、Flask に依存している Flask-Extension の Python3 対応状況が気になったので調べてみた。 #!/usr/bin/env python # -*- coding: utf-8 -*- import pprint import requests from bs4 import BeautifulSoup P…

Ruby から RiakCS にアクセスする

メモ。aws-sdk を使ったら行けた。 # -*- encoding: utf-8 -*- require 'logger' require 'aws-sdk' configs = { access_key_id: 'C_AHU4UXUQE9CBDSY8WX', secret_access_key: 'GR63vRcdenI1P99LPD8_ucE_RZhf9lpXwlyVxA==', s3_endpoin: 'localhost', proxy_…

jedi.vim に Pull Request した

jedi.vim をアップデートしたら以下の様な警告が表示された。 jedi-vim/jedi/jedi/api.py:209: DeprecationWarning: Use completions instead. warnings.warn("Use completions instead.", DeprecationWarning)補完自体は出来るが警告が気になったのでソース…

Riak CS を使ってみる

Riak が動いたので、Riak CS も試してみる。 Vagrant で作った CentOS 上に yum を使って Riak CS に必要なパッケージはインストール済み。 Riak CS は HTTP ポートに 8080 を使っているので、Virtual Box にポートフォワードさせる。 Vagrantfile に以下を…

Riak を使ってみる

ここ数日 Riak について調べていたのでメモ。 因にゴールが Riak CS を使って分散ストレージを使う事。 まずは Riak のセットアップ。 手元の Mac に入れてみる。 http://blog.basho.co.jp/post/50004340626/mac-riak-1-3-1 を参照。 #!/usr/bin/env python …

Celery を使ってみる

昔ちょっと Celery を試した事があったが、ジョブキューなのが必要になったので再入門してみた。 WAF には Flask を使っている。 Celery には Flask の Extension があるが、Celery3.0 になってから非推奨になっており、Celery 本体の API を使う事が推奨さ…

検索時のハイライト

Vim

/ とかで検索時にデフォルトじゃハイライトされていて、どの行にいまカーソルがあるのか分かりにくい。 / とか * とかの検索の場合は でビジュアルモードで現在行を視認するという方法もある。 これが、:%s/foo/bar/gc の様な場合で、foo が沢山ある場合、今…

raven-python で非同期に Sentry にイベントを投げる

昨日書いたやつで同期で Sentry にイベントを送りつけると送信元のサイトのパフォーマンスが遅くなるのが気になったので、非同期に送る方法がないか調べてみた。Github に raven-python/async.py at master · getsentry/raven-python · GitHub とかあるので…

イベントログ収集ツールの Sentry が凄そう

Disqus が作っている Sentry というツールが凄そうというお話。 # 元 Disqus の社員さんだったみたい Sentry って何かというと "Sentry is a realtime event logging and aggregation platform." と書いてる通りアプリケーションからイベントログを送信して…

JUnit で System.out.println の出力を assertion したい

とある事情で System.out.println で出力している箇所があって、その値がちゃんと出てるか JUnit でテストしたい。 ググったらあっさり出てきた。 java - JUnit test for System.out.println() - Stack Overflow using ByteArrayOutputStream and System.set…

meinheld でログを出す

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Vim で Unicode エスケープシーケンスを変換

Vim で JSON 文字列なファイルを以下のようなコマンドを使って整形するとする。 :%!python -m json.tool綺麗にインデントが出て嬉しいけど、そこにマルチバイトな文字列があれば Unicode エスケープシーケンスにして変換してくれる。 Unicode エスケープシー…

LTSV パーサを書いた

Python の C 言語の拡張で書いてみた(Python2 系でしか動かないはず)。 GitHub - heavenshell/py-pyltsv: Dead simple LTSV parser written in Python C extension最初 Pure Python で書いてたけど既に作られてたので、どうせならと勉強の意味も兼ねて C 言…

vim-jp.org に tips というコンテンツを追加した

Vim

Vim を使っていてこんな情報どっかにまとまってないかなとか、そういう情報へのポインタが欲しかったので、vim-jp に tips というコンテンツを作ってみて、どうですか? と言う意味もこめて Pull Request した。 # 速攻でマージされたw 意図としては情報への…