一日のクリック回数
普段PCを使っていて一日に何回ぐらいクリックしてるのか気になったことはありませんか?ということで調べてみました。
調査方法
/dev/input/mouse0にマウスのイベントが流れてくるので、それを解釈してクリックのログを取ります。フォーマットはどこかのフォーラムの発言を参考にしました。
使ったコード
import Control.Concurrent import Control.Monad import Data.Time import Data.Bits import qualified Data.ByteString as BS import System.IO main=do withBinaryFile "/dev/input/mouse0" ReadMode $ record record hMouse=do hSetBuffering hMouse NoBuffering iter hMouse False False False iter h pL pR pM=do [button,horz,vert]<-liftM BS.unpack $ BS.hGet h 3 let leftPressed=(button .&. 0x01)/=0 rightPressed=(button .&. 0x02)/=0 middlePressed=(button .&. 0x04)/=0 -- not including scrolls tz<-getCurrentTimeZone date<-getCurrentTime let d=show $ utcToLocalTime tz date when (not pL && leftPressed) $ appendFile "buttonlog" $ d++" ,left\n" when (not pR && rightPressed) $ appendFile "buttonlog" $ d++" ,right\n" when (not pM && middlePressed) $ appendFile "buttonlog" $ d++" ,middle\n" print [leftPressed,rightPressed,middlePressed] iter h leftPressed rightPressed middlePressed
よく見ると分かるように、実際には押した回数を数えてます。
これを一日ほど動かしました。できたログからRでヒストグラムを描きます。
t<-read.table('log_under_analysis',sep=',') png('total.png',width=600,height=800,res=100) par(mfrow=c(3,1)) for(tag in c('left','right','middle')){ hist(as.POSIXlt(t[which(t$V2==tag),]$V1),'hours',freq=TRUE,main=sprintf("%s click",tag), xlab='',las=1,col='lightblue') t0<-as.POSIXlt('2012-03-06 00:00:00') lines(x=c(t0,t0),y=c(0,1000)) grid() } dev.off()
結果
2012/3/5 20:28〜2012/3/6 21:43における一時間ごとのクリック回数を種類別に分けたのが次の図です。
2012/3/5 20:28〜2012/3/6 20:28の合計回数は
- 左クリック: 5124回
- 右クリック: 57回
- 中クリック: 349回
でした。
ちなみに、このとき何をしてたかはtwilog(3/5 3/6)を見ると・・・残念ながらわからないので思い出してみると、適当な回路のデバッグ、調べ物、ニコ動閲覧等で、ゲームとかはしてません。
結果について
みっつのヒストグラムですが、だいたい同じ傾向を持っているように見えます。中クリックはほぼ「新しいタブでリンクを開く」専用ですが、わりと使っているようです。
ちょっと驚いてるのは右クリックの少なさで、コンテキストメニューはわりとどこでも出るのに、ほとんど使ってないな、という感じです。あまりUIを変えなくてもタッチパネルへ移行できるのはこういう理由もあるかもしれません。