Naive New Beaters – Shit Happens

サイコーに素晴らしい動画を見つけました!
みんなに人気のキャラクターがでているのですが、
振る舞いとかなんとも愛らしいです。

期待以上の仕事をすることが
絶大な人気を不動のものにしている秘訣なんですかね。
ますますこのネズミ野郎が好きになりました!

わたしも多くの人に夢を与える仕事をしたいと思いました!

以上

SynergyでShiftキーが使えない

愛用しているソフトの「Synergy」に不具合がありました。
Synergyは複数のPCを一つのマウス・キーボードで操作できるソフトで
最近、いきなりShiftキーが使えない状態になっていました。
Shiftキーが使えないと、ローマ字の大文字にしたり
記号が使えなかったりと、プログラミングする際に超不便なので、
面倒くさかったのですが意を決して調べてみました。
結果、単なるソフトのバグらしいです。
簡単に原因はわかりましたが、問題はまだ対応しているバージョンが出ていないことです。

↓に内容が記載されています。
http://synergy-project.org/spit/issues/details/4125/

新しいバージョンで対応すると書いているのですが、
このままShiftキーが使えないのはストレスが溜まりまくるので
代替案として書かれている暫定対応を試してみました。
解決策はWindowsUpdateのKB2982791とKB2993651をアンインストールすることのようです。
この二つセキュリティパッチなので、セキュリティレベルを落とすことになるわけですが、
ま、もちろんセキュリティよりも仕事の方が優先なので
速攻でアンインストールしてやりました。
やはりセキュリティよりも便利さを求めてしまいますね。
Shiftキーが使えるようになって凄くうれしいです。

まあでも何が起きるかわかりませんので、
今回の例外以外は最新のパッチを適用するといった
セキュリティ対応の基本は徹底しておいた方がいいと思います。

以上

Pyhton Apacheアクセスログを取り込んでグラフで表示する

前回ApacheアクセスログをCSVファイルに変換したので
グラフに表示してみます。

%pylab
import pandas as pd

# CSVファイルの取り込む。
df = pd.read_csv('test.csv', header=None, names=['ip', 'identd', 'user', 'datetime', 'method', 'request', 'status', 'size', 'referer', 'agent', 'other'])

# データが欠けているところを削除する。
df = df.dropna(subset=['datetime'])

# 時間でindex化する。
df.index = pd.to_datetime(df['datetime'], format='%d/%b/%Y:%H:%M:%S +0900')

# requestをカウントする。
request_counts = pd.value_counts(df['request'])

# 上位10件を横棒グラフにしてみる
request_counts[:10].plot(kind='barh', rot=0)

# iptをカウントして横棒グラフで表示する
ip_counts = pd.value_counts(df['ip'])
ip_counts[:10].plot(kind='barh', rot=0)

# アクセスログを1分ごとにカウントしてグラフで表示する
dfm = df.ip.resample('T', how='count')
dfm.plot()

# グラフを消す
plt.close()

# 不要なカラムの消し方
del df["identd"],df["user"],df["datetime"],df["method"],df["request"],df["status"],df["size"],df["referer"],df["agent"],df["other"]

↓アクセスログを1分ごとにカウントしたグラフ
figure_1

resampleの引数は’T’を指定していますが
以下のようにいろいろとあります。

==================================================================
B = business day frequency
C = custom business day frequency (experimental)
D = calendar day frequency
W = weekly frequency
M = month end frequency
BM = business month end frequency
MS = month start frequency
BMS = business month start frequency
Q = quarter end frequency
BQ = business quarter endfrequency
QS = quarter start frequency
BQS = business quarter start frequency
A = year end frequency
BA = business year end frequency
AS = year start frequency
BAS = business year start frequency
H = hourly frequency
T = minutely frequency
S = secondly frequency
L = milliseonds
U = microseconds
==================================================================

※参考
pandas.DataFrame.dropna
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html

pandas.DataFrame.resample
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html

以上

return top