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

2014 年振り返り

4 年近く常駐していた所から自社に戻って来た。 まぁ色々あって 11 月後半から年末にかけて障害が続いたりで大変だった。 来年も続く…。 # ことしはこれから年末対応の待機のための出勤 去年の ToDo の振り返り LXC というか Docker 試しにつかってみた程度…

雑談対話用の Python クライアント作った

リフレッシュ休暇中で、出かけようと思ったけど天気悪いし、寒いし、雪降るし…なので docomo が提供している API の Python クライアントを作った。 元ネタ。 docomoが提供している雑談対話APIを利用し、docomoruというライブラリを使いながらBOTと雑談する…

log

割と大きい障害が起きた。 うちはデータストアとそれを使う検索システムを作って 1 年くらい前に納品した。 7 月に自分がサポートを引き継いだ。 ちょくちょくメールで問い合わせがあったりして、まぁ分かる範囲で対応してた。 エンドユーザの環境に入れない…

locust.io でカスタムクライアントを作る

お仕事で自社製の分散 KVS の環境構築をやっている。 運用試験や負荷試験を行うんだけど、負荷試験を行うのにツールを使いたい。 Python 製の locust.io を使う。 locust.io を選んだ理由は クライアントを自分で作れる(負荷試験ツールは HTTP でしかお話で…

ここ最近のお仕事

デスマってるけど、新しいものを試せたり知見を得た。箇条書きでメモ。 Ansible + Serverspec でサーバ構築を自動化した 自動化便利。テストも書いたら安心感が得られた Serverspec 動かす際に spec_helper.rb を少し変えたけど、ここを変えるだけで、いい感…

html なファイルを開いて行挿入をすると意図しないコマンドが実行される

Vim

GitHub の vim-jp に issue として登録したら速攻で問題の場所を教えてもらった。 filetype indent on を設定し行挿入を行うと意図してないコマンドが実行される · Issue #614 · vim-jp/issues · GitHub これの何が困るかって言うと、今まで F に FizzyFinde…

Py-Autodoc 0.3 リリースした

主に仕事で必要になりそうと思ったので、requests に対応した。 仕事で Java の API サーバを書いていて、応答が JSON のみで、 リクエストとレスポンスを自動でドキュメントに出して楽をしたかったので、 以前作った Py-Autodoc を使おうとした。 自分で作…

socket.io-go-emitter を試してみる

SocketIO のサーバー側が Node.js で以下のようなコード。 var io = require('socket.io').listen(9000); var logger = require('./logger'); var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', port: 6379 })); io.sockets.o…

CentOS で sudo yes でエラー

メモ。 Ansible で CentOS6.4 に対して以下のコマンドを実行しても転送されない。 hosts/development [development] 192.168.1.10 $ ansible-playbook -i hosts/development site.yml -k -c paramiko PLAY [development] **********************************…

Node.js の logger

どれ使えばいいのか良く分からない。 log4js を使えばいいのか。 適当にググったら winstone ってのを見つけたので試してみる。 var env = process.env.NODE_ENV || 'dev'; var winston = require('winston'); winston.setLevels(winston.config.syslog.leve…

Vim で Golang を書く時の補完の設定

Golang 付属(最近 vim-jp でもホストされるようになった) Vim の設定で C-x C-o で補完候補を選べる。 neocomplecache や neocomplete を使えばなにも気にしなくて良いのかもしれないけど、Golang の場合、補完のリストを出すのが遅い。 なので、. を打つ度…

また Flask-Injector の仕様変更

Injector の仕様変更 - Memo また変更があった。 $ python manage.py runserver /path/to/virtualenvs/project/lib/python3.4/site-packages/flask_injector.py:146: UserWarning: init_app and post_init_app are deprecated in favour of FlaskInjector. P…

pluginbase が便利そう。

@mitsuhiko 先生の新作の pluginbase が便利そうというお話。 Python は他の Python なファイルをモジュールとして動的に読み込む場合は import があるから少し面倒。 例えば今作ってる Flask を使ったアプリケーションで、WSGI ミドルウェアを読み込む時に…

Ansible が Vagrant に接続できなくなった

メモ。 ちょっと試したい事があったので、Ansible playbook をローカルに建てた Vagrant に対して実行したかった。 いつも通り、以下のコマンドを打ったら、エラーになった。 $ ansible-playbook -i hosts vagrant.yml -k -c paramiko -vvv SSH password: PL…

yaml 内での変数のエスケープ

変数というより `{{`, `}}` をエスケープしたい。 Ansible の yaml 内から docker に対して以下のコマンドを発行したかった。 - shell: docker run -d -p 22 centos /usr/sbin/sshd -D register: docker_i - shell: docker inspect --format="{{.NetworkSett…

GitHub勉強会 for Designers OSAKA に行って来た

仕事が割と暇してるので、定時前に抜け出して行って来た。 イベント名の通りデザイナーさんをメインにした話しだった。 話しの中で気になったのが、GitHub がデザインや新機能などの評価をする時にスタッフや一部のベータユーザーに機能を提供するのは Featu…

Onsen CSS Components がいい感じ

css

仕事でデモを作ってる時にスマートフォンっぽい UI*1 でってなった時に適当に作るんじゃなくて、それっぽい画面が欲しくて Onsen CSS Components を使ってみたら、いい感じだった。 http://components.onsenui.io/ パターンに幾つかの構成はあるし、コンポー…

Ansible の vars を外部ファイルにする

メモ。 Ansible を使っていて、変数の vars を外部ファイルにしたかった。 site.yml - vars: python_version: 2.7.6 ruby_version: 2.1.2 これを site.yml から vars.yml みたいなのを作って Serverspec と共有したい。 vars_files を使ったら出来た。 site.…

typeahead.js でマウスイベントを取得する方法

メモ。 Twitter が開発している typeahead.js(v0.10.2) を使っていて、表示されたリストの中からマウスのカーソルを移動させたら、選択中の項目を取得したい。 typeahead.js には Custom Eventsというのでイベントをフックできる。 この中に、typeahead:curs…

テストを始めるまでのヤク狩り

メモ。 色々言い訳作って JavaScript のテストを書かなかったけど、さすがにマズいので書いてみる。 なお、ここでの JavaScript のテストは Web ブラウザで動く JavaScript。 テストを始めるまでに敷居が異様に高いと感じたのでまとめる。 典型的な yak shav…

VMWare Fusion6 が起動できなくなった

Mac

メモ。 職場の Mac で VMWare Fusion6.0.3 を使っている。 VMWare Fusion6 で Windows8.1 を起動しようとして、 「カーネル記号を取得できません。」 「モニタデバイスの初期化に失敗しました。」 「内部エラー。」と、エラーが出て一切起動しなくなった。 …

最近の日報の作り方

Vim

3 月末に常駐が終わって自社に戻ったのを機に日報という物の書き方を以下の様に変えた。 1. memolist.vim でメールで送る件名で新規に作成 2. sonictemplate-vim で定型文と Markdown のテンプレートを挿入 3. 何か作業を行ったら Markdown で記述 4. 一日の…

Gokyoto に行って来た

Golang に興味あるけど、他に優先したい事があるから環境構築を終わって、Hello World を出して終わってたのを何とかせんといかんなーと思ってたら初心者向けハンズオンがあって、しかも講師が @Jxck_ さんという事で行って来た。 ハンズオンの資料は Go Kyo…

API のオーケストレーション層

Rebuild: 35: You Don't Need API Version 2 (Kenn Ejima) で話題になった API のオーケストレーション層(ラッパー層)を設けるという方法について、作っていたシステムでそういう事をしていた(因にこの作りにして 2 年目くらい)。 # ただし API のバージョニ…

Mosquitto を試してみる

ほぼ [twitter:@voluntas] さんが書かれた MQTT コトハジメ と Mac OS X に Mosquitto をビルドする - Qiita の通り。 $ curl -O http://mosquitto.org/files/source/mosquitto-1.2.3.tar.gz $ tar xvfz mosquitto-1.2.3.tar.gz $ cmake $ make allインスト…

テストをどこまで書くか

Flask を使ってアプリケーションを開発している。 テストを書いていてどこまで書くかに悩んでる。 例えばユーザー登録の画面があって、Form ライブラリを使っている。 Form にはバリデーションのルールの一つに正規表現を使ったルールを書いた。 その正規表…

Flask-Featureflags で呼び出しを制限する

Flask-Featureflags というものを見つけた。 GitHub - trustrachel/Flask-FeatureFlags: A Flask extension that enables or disables features based on configuration.何をするものかというと、Flask でこの機能はまだ一部のユーザーにベータテストとして…

Injector の仕様変更

Flask-Injector を使っていて以下の様な警告が出た。 Injector Modules (ie. configure) should not be injected. This can result in non-deterministic initialization. Support will be removed in the next release of Injector.configure を直接注入す…

Alembic でデフォルト値を設定する

今までスキーマーの管理は普通に SQL ファイルで管理していた。 別に DDL を書くのは苦痛じゃないし分かり易いので良いんだけど、マイグレーションツールに Alembic を使ってみようと試している。 """Create users table. Revision ID: 197f6c68376 Revises:…

Autodo を decorator に依存するようにした

Python2.7 と Py.Test の組み合わせた場合に、examples にあるのが動かないと報告頂いた。 @pytest.fixture def setup(): setup = TestApp(create_app) return setup @autodoc.describe('POST /') def test_post(setup): res = setup.post_json('/', params=…