@kyanny's blog

My thoughts, my life. Views/opinions are my own.

プロフィール画像変更のユーザーインターフェースあれこれ

いくつかのソーシャル系サイトで使っているプロフィール画像を変更したのだけど、一度に作業するとそれぞれの違いがわかって面白かったのでスクリーンキャプチャを撮ってみた。

Twitter

f:id:a666666:20111108022432p:image:w800
ごくごくオーソドックスなフォームアップロード。アップロード後の画像切り取りもないので自分で正方形に加工する必要がある。縦長の画像をアップロードしたら自動的に中央部分が切り取られて顔の上下が欠けた。天下の Twitter にしてはずいぶんそっけないつくり。 Twitter はあんまり画像には関心がないようだ。

Facebook

f:id:a666666:20111108022429p:image:w800
アップロードボタンはふつうのフォームで、こちらも天下の Facebook がドラッグ&ドロップもできないのかとちょっと驚いたけど、アップロード後はおなじみの波打つプログレスアニメーションで快適な待ち時間を演出。あと特筆すべき点として、 Facebook は縦長の画像をアップロードできる(正方形に切り取る必要がない)これは他のサイトだとできないところが多いので加工の手間がはぶけるぶんありがたい。

Google+

f:id:a666666:20111108022430p:image:w800
ドラッグ&ドロップで画像をアップロードできる。まぁ天下の Google なんだから当然といったところか。でもアップロード後は正方形に切り取らなきゃいけなくてちょっと悲しい。ここまでのソーシャル御三家のなかでは一番直感的なインターフェースだと感じた。デザインも好みだ。ただし Google+ の場合の話だが(GmailGoogle Groups まで一緒にすることはないよね・・・)

Quora

f:id:a666666:20111108022431p:image:w800
意外にやるなぁと思ったのが Quora で、もともと「Facebook アカウントでログイン」とかでサインアップするので連携先のサイトから画像を引っ張ってきてくれるのだけど、変更時も改めて新しいプロフィール画像を引っ張りなおせるようになっていた。これはものすごく楽だし合理的でとても良いと思う。正方形の切り抜きも crop 済みの画像をいくつか提示してその中から選ばせるようになっていて作業の手間が少ない。そういう類のソーシャル系サイトをあんまり使ってないのでこれがふつうのことなのかどうかわからないけど、今後そういうサービスは全部こうなってたら楽でいいなぁ。

番外編: はてなプロフィール

ふつうのファイルアップロード、正方形に加工してからアップロードが必要、さらに縦長の写真をあげるとアイコン画像がつぶれる(img タグの width height が指定してあるからで画像そのものがつぶれているわけではないと思うけど)スクリーンキャプチャはなし。あんまり頻繁に使われない機能だろうし労力割きづらいと思うけど、気が向いたときに切り取りできるようになったりフォトライフの画像から選べるようになったりしてもらえるとうれしいですね・・・。

30days Album における MogileFS

mysql> select fid from file order by fid desc limit 3;
+-----------+
| fid       |
+-----------+
| 529889169 |
| 529889167 |
| 529889166 |
+-----------+
3 rows in set (0.00 sec)

mysql> desc file;
+----------+----------------------+------+-----+---------+-------+
| Field    | Type                 | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+-------+
| fid      | int(10) unsigned     | NO   | PRI | NULL    |       |
| dmid     | smallint(5) unsigned | NO   | MUL | NULL    |       |
| dkey     | varchar(255)         | YES  |     | NULL    |       |
| length   | int(10) unsigned     | YES  |     | NULL    |       |
| classid  | tinyint(3) unsigned  | NO   |     | NULL    |       |
| devcount | tinyint(3) unsigned  | NO   |     | NULL    |       |
+----------+----------------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> 

がんばります

はてなにおける MogileFS - mura日記 (halfrack)

任意のコマンドの実行時間を計測する p5-stopwatch.pl というプログラムを書いた

任意のコマンドの実行時間を計測する p5-stopwatch.pl というプログラムを書いた。 Time::HiRes モジュールが必要です。

kyanny/p5-stopwatch.pl - GitHub

使い方。

  $ ./stopwatch.pl \
      --initialize 'curl -O http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz' \
      --before     'tar xzf memcached-1.4.9.tar.gz' \
      --main       'cd memcached-1.4.9 && ./configure && make' \
      --after      'cd memcached-1.4.9 && make clean' \
      --finalize   'rm -rf memcached-1.4.9 && rm memcached-1.4.9.tar.gz' \
      --count 10

実行結果。

Trying 10 times... 
initializing...
1: run before hook...
1: run main...
1: Elapsed: 11.714476
1: run after hook...
2: run before hook...
2: run main...
2: Elapsed: 11.692463
2: run after hook...
3: run before hook...
3: run main...
3: Elapsed: 11.668393
3: run after hook...
4: run before hook...
4: run main...
4: Elapsed: 11.462474
4: run after hook...
5: run before hook...
5: run main...
5: Elapsed: 11.932532
5: run after hook...
6: run before hook...
6: run main...
6: Elapsed: 11.123197
6: run after hook...
7: run before hook...
7: run main...
7: Elapsed: 11.241909
7: run after hook...
8: run before hook...
8: run main...
8: Elapsed: 11.380771
8: run after hook...
9: run before hook...
9: run main...
9: Elapsed: 11.41942
9: run after hook...
10: run before hook...
10: run main...
10: Elapsed: 11.477144
10: run after hook...
finalizing...
Total: 115.112779

memcached のコンパイルにどれくらい時間がかかるかベンチマークをとりたくなったときなどにご利用ください。