ゆるめ

ゆるめなのは公開範囲です。

はてなスターエージェントさんの来訪記録

question:1314035107 で引用スターのテストをした時のアクセスログです。HTML のサイズやタグの多寡、文字コードとその宣言方法などを変えたりしてテストしていきました。

絵文字は私の IP アドレスをマスクしたものです。

🐾.🐾.🐾.🐾 - - [23/Aug/2011:12:29:10 +0900] "GET / HTTP/1.1" 200 552 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:06:24 +0900] "GET / HTTP/1.0" 200 513 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:13:26 +0900] "GET /test/star HTTP/1.1" 200 1191 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:15:28 +0900] "GET /test/star HTTP/1.0" 200 1179 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:15:29 +0900] "GET / HTTP/1.0" 200 586 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:16:23 +0900] "GET /test/star HTTP/1.1" 200 1191 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:17:14 +0900] "GET /test/star HTTP/1.0" 200 1179 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:20:32 +0900] "GET /test/star HTTP/1.1" 200 1191 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:29:54 +0900] "GET /test/star HTTP/1.1" 200 1585750 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:30:18 +0900] "GET /test/star#test HTTP/1.0" 200 212828 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:30:19 +0900] "GET /test/star#test HTTP/1.0" 200 172032 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:31:20 +0900] "GET /test/star HTTP/1.1" 200 1585750 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:31:47 +0900] "GET /test/star#test HTTP/1.0" 200 244690 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:32:18 +0900] "GET /test/star#test HTTP/1.0" 200 196802 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:32:42 +0900] "GET /test/star#test HTTP/1.0" 200 234876 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:33:04 +0900] "GET /test/star#test HTTP/1.0" 200 124640 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:34:14 +0900] "GET /test/star HTTP/1.1" 200 1585750 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:34:41 +0900] "GET /test/star#test HTTP/1.0" 200 198424 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:35:03 +0900] "GET /test/star#test HTTP/1.0" 200 173188 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:36:12 +0900] "GET /test/star#test HTTP/1.0" 200 199028 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:36:33 +0900] "GET /test/star#test HTTP/1.0" 200 147814 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:36:50 +0900] "GET /test/star#test HTTP/1.0" 200 170384 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:37:08 +0900] "GET /test/star#test HTTP/1.0" 200 225006 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:37:25 +0900] "GET /test/star#test HTTP/1.0" 200 110372 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:37:40 +0900] "GET /test/star#test HTTP/1.0" 200 218134 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:38:09 +0900] "GET /test/star#test HTTP/1.0" 200 125520 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:40:10 +0900] "GET /test/star#test HTTP/1.0" 200 298056 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:40:20 +0900] "GET /test/star#test HTTP/1.0" 200 253404 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:40:41 +0900] "GET /test/star HTTP/1.1" 200 1585750 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:41:03 +0900] "GET /test/star#test HTTP/1.0" 200 122716 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:41:16 +0900] "GET /test/star#test HTTP/1.0" 200 121534 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:41:56 +0900] "GET /test/star#test HTTP/1.0" 200 188390 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:42:12 +0900] "GET /test/star#test HTTP/1.0" 200 207220 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:42:25 +0900] "GET /test/star#test HTTP/1.0" 200 236002 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:43:33 +0900] "GET /test/star#test HTTP/1.0" 200 205434 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:43:45 +0900] "GET /test/star#test HTTP/1.0" 200 97040 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:44:00 +0900] "GET /test/star#test HTTP/1.0" 200 172088 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:44:09 +0900] "GET /test/star#test HTTP/1.0" 200 200404 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:44:26 +0900] "GET /test/star#test HTTP/1.0" 200 107294 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:44:50 +0900] "GET /test/star#test HTTP/1.0" 200 378888 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:45:20 +0900] "GET /test/star#test HTTP/1.0" 200 189198 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:46:31 +0900] "GET /test/star#test HTTP/1.0" 200 212664 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:46:42 +0900] "GET /test/star#test HTTP/1.0" 200 154742 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:46:53 +0900] "GET /test/star#test HTTP/1.0" 200 142124 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:13:47:43 +0900] "GET /test/star HTTP/1.1" 200 1585750 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:13:47:56 +0900] "GET /test/star#test HTTP/1.0" 200 96380 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:48:06 +0900] "GET /test/star#test HTTP/1.0" 200 109438 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:48:20 +0900] "GET /test/star#test HTTP/1.0" 200 218272 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:48:31 +0900] "GET /test/star#test HTTP/1.0" 200 183084 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:49:02 +0900] "GET /test/star#test HTTP/1.0" 200 179098 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:49:17 +0900] "GET /test/star#test HTTP/1.0" 200 177394 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:13:49:53 +0900] "GET /test/star#test HTTP/1.0" 200 216814 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:14:08:34 +0900] "GET /test/star HTTP/1.1" 200 36438 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:14:09:07 +0900] "GET /test/star HTTP/1.1" 200 229478 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:14:10:30 +0900] "GET /test/star#q HTTP/1.0" 200 106626 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:10:31 +0900] "GET /test/star#q HTTP/1.0" 200 116888 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:11:36 +0900] "GET /test/star#q HTTP/1.0" 200 156886 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:11:58 +0900] "GET /test/star#q HTTP/1.0" 200 148474 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:12:18 +0900] "GET /test/star#q HTTP/1.0" 200 163374 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:12:31 +0900] "GET /test/star#q HTTP/1.0" 200 114578 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:14:32 +0900] "GET /test/star#q HTTP/1.0" 200 97782 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:15:17 +0900] "GET /test/star#q HTTP/1.0" 200 101960 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:15:40 +0900] "GET /test/star#q HTTP/1.0" 200 101018 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:15:55 +0900] "GET /test/star#q HTTP/1.0" 200 145532 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:16:18 +0900] "GET /test/star#q HTTP/1.0" 200 159168 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:16:45 +0900] "GET /test/star#q HTTP/1.0" 200 124118 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:17:00 +0900] "GET /test/star#q HTTP/1.0" 200 114524 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:18:02 +0900] "GET /test/star#q HTTP/1.0" 200 158068 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:18:14 +0900] "GET /test/star#q HTTP/1.0" 200 162274 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:18:34 +0900] "GET /test/star#q HTTP/1.0" 200 131128 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:18:44 +0900] "GET /test/star#q HTTP/1.0" 200 163594 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:18:55 +0900] "GET /test/star#q HTTP/1.0" 200 109438 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:19:13 +0900] "GET /test/star#q HTTP/1.0" 200 208622 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:19:25 +0900] "GET /test/star#q HTTP/1.0" 200 97754 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:19:35 +0900] "GET /test/star#q HTTP/1.0" 200 103362 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:19:46 +0900] "GET /test/star#q HTTP/1.0" 200 142426 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:19:54 +0900] "GET /test/star#q HTTP/1.0" 200 112902 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:20:03 +0900] "GET /test/star#q HTTP/1.0" 200 189792 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:20:13 +0900] "GET /test/star#q HTTP/1.0" 200 104764 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:20:33 +0900] "GET /test/star#q HTTP/1.0" 200 90744 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:22:22 +0900] "GET /test/star#q HTTP/1.0" 200 122716 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:22:33 +0900] "GET /test/star#q HTTP/1.0" 200 120186 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:22:43 +0900] "GET /test/star#q HTTP/1.0" 200 153862 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:22:56 +0900] "GET /test/star#q HTTP/1.0" 200 184624 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:23:06 +0900] "GET /test/star#q HTTP/1.0" 200 103362 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:23:17 +0900] "GET /test/star#q HTTP/1.0" 200 85136 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:23:29 +0900] "GET /test/star#q HTTP/1.0" 200 87940 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:23:43 +0900] "GET /test/star#q HTTP/1.0" 200 229249 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:24:29 +0900] "GET /test/star#q HTTP/1.0" 200 110620 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:24:38 +0900] "GET /test/star#q HTTP/1.0" 200 110098 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:24:44 +0900] "GET /test/star#q HTTP/1.0" 200 114304 "-" "Hatena Star UserAgent"
🐾.🐾.🐾.🐾 - - [23/Aug/2011:14:53:51 +0900] "GET /test/star HTTP/1.1" 200 218268 "-" "Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20110508 Firefox/4.0.6"
59.106.108.66 - - [23/Aug/2011:14:54:35 +0900] "GET /test/star#q HTTP/1.0" 200 170906 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:55:02 +0900] "GET /test/star#q HTTP/1.0" 200 139320 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:55:49 +0900] "GET /test/star#q HTTP/1.0" 200 187428 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:55:59 +0900] "GET /test/star#q HTTP/1.0" 200 162494 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:56:18 +0900] "GET /test/star#q HTTP/1.0" 200 218047 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:56:32 +0900] "GET /test/star#q HTTP/1.0" 200 159168 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:56:47 +0900] "GET /test/star#q HTTP/1.0" 200 218047 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:57:17 +0900] "GET /test/star#q HTTP/1.0" 200 130028 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:57:50 +0900] "GET /test/star#q HTTP/1.0" 200 218047 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:58:18 +0900] "GET /test/star#q HTTP/1.0" 200 181380 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:58:28 +0900] "GET /test/star#q HTTP/1.0" 200 180224 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:58:39 +0900] "GET /test/star#q HTTP/1.0" 200 218047 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:58:48 +0900] "GET /test/star#q HTTP/1.0" 200 183222 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:58:55 +0900] "GET /test/star#q HTTP/1.0" 200 110098 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:59:04 +0900] "GET /test/star#q HTTP/1.0" 200 149876 "-" "Hatena Star UserAgent"
59.106.108.66 - - [23/Aug/2011:14:59:33 +0900] "GET /test/star#q HTTP/1.0" 200 182122 "-" "Hatena Star UserAgent"

関連記事



Firefox で開いたソースファイル名を短くする

Firefox で外部エディタを使ってソースを表示させると、ソースのファイル名がページのタイトルになっています。

長いタイトルだとファイル名も長くなります。今使っているエディタのタブがファイル名の長さに合わせて伸びる仕様で、その結果ソースファイルのタブがとんでもない存在感になるので、どうにかしてファイル名を短くしたいなと思いました。

Firefox 側でそれっぽい設定は無くて、バッチファイル等で何とかするのがスタンダードみたいですが、バッチファイルでうまいことやれる自信がないので、PowerShell で書きました。

f:id:pacochi:20170215151126p:plain

元のファイル名から先頭八文字分くらい貰って、現在時刻付きのファイル名に変更してから開きます。

cd $env:TEMP

# スペースで区切られてきた
$longfile = if ($args) { Split-Path ($args -join " ") -Leaf } else { '' }
# パス結合うまくいかなかったら Temp フォルダ内の最新ファイル拾ってくる
if (!$longfile -or !(Test-Path $longfile)) { $longfile = (dir | sort LastWriteTime -Desc)[0].Name }
# タイトル同じで中身違うソースを複数開きたい
# とりあえず開いた時刻で差別化
$now = Get-Date -Format "ddHHmmss"
# 絵文字とかが切れないように
$shortfile = $longfile -replace '^(([\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]){1,8}).*$',"`${1}${now}.htm"
ren -LiteralPath $longfile -NewName $shortfile

& "エディタのパス" "`"${env:TEMP}\${shortfile}`""

about:config の view_source.editor.pathPowerShell のパスを入れて、view_source.editor.args-windowstyle Minimized -File "ps1 ファイルのパス" と入れておいたら動きました。

一瞬 PowerShell のウィンドウが表示されるのですが、抑止方法を調べたらあんまりカジュアルじゃない方法ばかり出てくるので、そのままで行くことにしました。

余談ですが、作成途中で Temp フォルダを確認したらごみが 300MB くらいあって、Temp フォルダの掃除はちょくちょくしないといけないなとしみじみ思いました。

追記: 半角カナの混じったタイトルや角括弧を含んだタイトルのページをうまく開けなかったので修正しました。

サブブログへのリダイレクト URL

はてなにログインする際、ドメインが hatena.ne.jp の URL を クエリの location= に設定しておくと、ログイン後にその URL にリダイレクトしてくれます。

Twitter の アカウントでログインした後にメインブログにリダイレクトする URL は、以下になります。

https://www.hatena.ne.jp/oauth/twitter/oauth?location=http%3A%2F%2Fblog.hatena.ne.jp%2Fはてな ID%2F

これのサブブログ版が欲しくてちょくちょく検索していたのですが見つからず、諦めかけていたのですが、久しぶりに公開範囲を全体公開からはてなにログインしているユーザのみ公開に変更してテストしていたら、偶然サブブログのリダイレクトに使えそうな URL を発見しました。

http://blog.hatena.ne.jp/login?blog=http%3A%2F%2Fブログのドメイン

これを location= に入れて試してみたら、ばっちり成功して、サブブログでもリダイレクトできました。

https://www.hatena.ne.jp/oauth/twitter/oauth?location=http%3A%2F%2Fblog.hatena.ne.jp%2Flogin%3Fblog%3Dhttp%253A%252F%252Fブログのドメイン

今までは Twitter のアカウントでスムーズに読めるよう、公開範囲が狭い (Twitter のフォロワー + α程度) 日記をあえてメインブログに据えて、なぞなぞ認証の文面に Twitter アカウントでのログイン用リンクと、はてなプロフィールから来た人向けにここへの誘導リンクを併記していました。

これからはそんな面倒なことをせずにシンプルに記述できます。嬉しい。

というわけで意気揚々とここをメインブログにしましたが、他の人視点のプロフィールからはてなブログのリンクが消えていました。

f:id:pacochi:20170212191736p:plain

さっきさらっと言いましたが、実験的に全体公開にしていた公開範囲を元に戻したので、全てのはてなブログがカスタムの公開範囲になったため、消えたのだと思います。

ちなみにはてなダイアリーも全て公開範囲がカスタムなのですが、こちらはずっとアイコンが出続けています。先日のスターの件でもそうなんですが、プラスが切れたダイアリーは色々と挙動が怪しいので、はてなポイントシステムがリセットされたらまた色々調べてみたいなと思っています。

http 記法の :sound オプションを使い続けたい

はてな記法のひとつである http 記法には :sound というオプションがあります。

そのURLが「.mp3」で終わるmp3ファイルを示している場合、「:sound」と記述すると再生プレーヤーを表示します

リンクを簡単に記述する(http記法、mailto記法) - はてなダイアリーのヘルプ

メロディ記法と違ってはてなブログでもこの再生プレイヤーが利用できるのですが、Flash なので限られた環境でしか再生できません。

以前別のブログで「じゃあ audio タグで囲っとこっか」と思い、該当の記法部分を audio タグで挟んだところ、ダウンロードリンクまで挟みこんでしまい不便になってしまいました。

あと個人的にはてなプレイヤーの外観がはてなっぽくて好きなので、やっぱりできる限りこっちを表示させたいなと思いました。

そこで「じゃあはてな記法展開後に audio 要素を object の中に滑り込ませるのが正解かな」と思い直し、そういうスクリプトを書きました。

はてなブログで [http://~.mp3:sound] と書いた時に出るプレイヤーを優しくするもの

mp3 プレイヤーを使った記事の最後に以下のコードを貼り付けると、ちょっとアクセシビリティが上がるかもしれません。

はてな記法での書き方なので、別の編集方法を採用している場合は別途読み替えてください。)

><script type="text/javascript" src="https://cdn.rawgit.com/pacochi/72fead25eebf75e3d750fe43a47c496b/raw/hb_mp3_audio.js"></script><

ここに動作確認用サンプルを書いておきます。

Download

この記事用に音源を作る時間が割けなかったので、昔色々あってお蔵入りした音源の一部を使いました。ライセンスのゆるさを基準にしてチョイスしました。フル音源および歌詞とその訳は SoundCloud にあります。

viewport が設定されていないか特殊な設定だと、hatenablog.js の document.documentElement.scrollWidth <= window.outerWidth に引っかかって FastClick が発動して audio 要素のコントロールが操作不能になるので、viewport を設定していない場合は勝手に付け足します。特殊な設定で操作不能になる場合はご自身でコードを書き換えてご利用ください。

ダイアリーの影が差すはてなスター

f:id:pacochi:20170206093904p:plain
先日なぜか移行前のダイアリー (d.hatena.ne.jp) の方にスターを貰いました。

貰う数日前に、誤ってはてなスターブログ一覧ページからここに移行する前のはてなダイアリーを削除してしまって、その影響か上記ページの Entries でダイアリー時代に書いたエントリがずらっと並んでいたので、そこから直接スターをつけたりしたのかなとなんとなく思っていました。

スターがついた時点ではこのブログ上にはてなスターを設置しておらず、ブックマークも締め切っていたため、スターをつけるとしたら何かしらアクロバティックな行動を起こさないといけないので、ブログの URL が勢い余ってダイアリーに戻っていても別に不思議はないなと思っていたのです。

それで、ダイアリーの URL にスターがついたエントリはブログの方でもスターが表示されるのかどうか気になったので、スターを有効にして、ついでにちょっと調整しました。

f:id:pacochi:20170206103130p:plain
表示してびっくり、思った以上にたくさんついていました。

でも他のエントリについたスターの通知は来ていません。おそらくこれらのスターも同時期に貰ったものだと推測できますが、☆レポートのページはもちろん、冒頭で出したブログ一覧ページのこのブログのところにも一切スターは反映されていません。久々の迷子スターです。

通知が来た分はレポートには載っていますが、やはり d.hatena.ne.jp 宛になっているためブログには反映されていません。逆になんでこの一エントリだけスターの通知が成功したのか謎でした。

真相を探るべく試行錯誤してみたところ、大体こんな感じの結果になりました。

  • 移行後に書いたエントリにスターをつけると特に問題のない挙動をする。
  • 旧ダイアリーから移行した記事にスターをつけると URL が旧ダイアリーのものになる。
  • 通知は来る、一度スターかスターコメントをつけたところは二回目から通知が来ると予想。
  • 引用がすべて失敗する。リダイレクトページにつけたスターに一切引用ができないのは以前からの仕様。
  • 記事を編集しても挙動は変わらない。カスタム URL を変更すると当然ながら今までについたスターが消える。
  • スターコメントが表示されていない場合がある。
    • 記事一覧ページやトップページでは表示される。挙動がおかしくないページと一緒にまとめてスター情報を取ってくると表示されるっぽい。
    • 2 ページ目以降や個別エントリではまちまち。スターがつけられたエントリでは表示されてる率が高いけど絶対ではない。
    • どこか表示されている場所で一旦コメントすると、以降いつでも表示される。コメントを削除しても表示される。

後でまた別の気付きがあるかもしれないので、ちょっと長いですが各エントリのリクエストとレスポンスも載せておきます。スターコメントを表示させるべくあくせくしたので、現在は値が違います。絵文字は RKS の文字列を私が削除した跡です。

続きを読む

ゆるアイキャッチ

Hatena::Let のマイページをさかのぼっていると、まだハッピィが表示できることに気付きました。ハッピィの着せ替えはもうできないので、変なかっこにしたままだと悔やまれるなあと思いつつ自分のハッピィを見てみました。

http://cdn1.www.st-hatena.com/users/pa/pacochi/happie.png

目がありませんでした。

https://cdn.mogile.archive.st-hatena.com/v1/image/pacochi/297793964081360138.png

せっかくなので「め」を描いて、ついでに「ゆ」と「る」も描いてアイキャッチ画像にしました。ゆる👁キャッチ。

はてブの id と最近の let

先日はてなブックマーク向けのブックマークレットを書いていて気付いたのですが、はてなブックマークマークアップスタイルってロックですね。個別エントリのページでユーザ別に bookmark-user-はてな ID みたいな ID がふってあるのですが、その ID が同時に複数個所で使われていました。

人気コメント、新着コメント、すべてのブックマークの三か所にそれぞれ同じ ID がどーん。document.querySelector('#bookmark-user-はてな ID') したらどこのが取れてくるか分かりません。海のものか、山のものか、人気のものか、新着のものか。

以前 Lhankor_Mhy さんが奥歯にものが挟まったようなセレクタ指定をしていた理由はこれだったのかな、と思いました。

結局その辺の部分は使わず全く別のアプローチでやりたいことを実現しました。

初めて async/await を使いました。うちのブラウザでは実装されたバージョンと今使ってるバージョンが同じでした。新しそうだとは思っていましたが、そこまでできたてほやほやだったとは。基本的におおもとの仕様書やリリースノートは読んでなくて*1、風の噂で新機能を知るので、const くらいの新しさだと思っていました。

そういえば最近やってみて知ったのですが、const と let が古めの IE で文法エラー扱いになって丸々動かなくなるみたいです。それってむしろ半端に動いて変なとこでエラー出るより好都合じゃんねと思い、以前より積極的に使うようになりました。出戻り前は可能な限り手持ちのブラウザで動くようにしていましたが、今は確認と修正の手間が取れないのでほったらかしです。

そんな最近の let (ダブルミーニング) です。

ちょっと話が戻りますが、はてなブックマークマークアップは他にも SPAN 要素の中に DIV 要素ぎゅうぎゅう詰め込んでたりしてて自由だなと思いました。

はてなブックマークも自由ですが、最近またこういうちゃらんぽらんなスクリプトを思い付きで書けて、自分の自由っぷりも実感できました。私が出戻ったのは自由時間が取れたからで、逆に言うとここしばらく自由時間がほとんどない生活をしていた訳で、スクリプトを書き上げる度に自由のありがたみを感じます。

以前より割ける時間は減りましたが、ありがたみが増えた分充実している気がします。

それとはまたちょっと違う自由の形の話なんですが、私が変数名も考えずにスクラッチパッドをごりごりしているときに感じる自由は、多分井之頭さんがモノを食べるときに求める自由と同じテイストなんじゃないかなと思っています。

今そんな自由の余裕がいくばくかあるので、まだこのブログに出ていない自作ブックマークレットをついでにまとめて置いておこうと思います。

Twitter 連携している ID を調べるもの

二つでワンセットです。CSP のオンオフ*2がめんどい場合はコンソールに以下を貼り付けて実行して、出てきた URL に飛ぶとはてなプロフィールはてな ID が出たり出なかったりします。

(function(u) {
	//何故か twitter では console.log() が封じられてるから console.dir() になった
	if (u) console.dir({
	 'プロフィール': `http://profile.hatena.ne.jp/${u}%40twitter/`,
	 'ID 判別': `http://n.hatena.ne.jp/${u}%40twitter/profile/image`,
	 '説明': 'プロフィールは別途 http://let.hatelabo.jp/pacochi/let/hLHVp_u9oskI を使用、ID 判別は URL にはてな ID が含まれた画像にリダイレクト。'
	});
})(document.querySelector('.ProfileNav').getAttribute('data-user-id'));

この人ってはてなで見たあの人かな?という確認や、はてな公式アカウント系のはてな ID がいっこいっこ用意されてることに感嘆したりするのに使えます。

逆にはてなから連携している Twitter アカウントを確認する場合、人力検索を利用している場合はプロフィールページの span.oauth-twitter aはてなダイアリーを開設していて連携アカウントを表示する設定にしていたら h1 a#twitter-header-iconはてなブログを開設していてサイドバーにhttp://blog.hatena.ne.jp/images/admin/curation/services/twitter.pngフォローボタンを表示した Profile モジュールがあったらdiv.hatena-module-profile a.twitter-follow-button の href が連携しているアカウントの URL になっています。はてなブックマークa[data-twitter-clicks-marked="true"] の href を見ると個別ツイートの URL になりますが、こちらでもアカウントが分かります。

ちなみにはてなプロフィールに書かれてある Twitter のリンクは自己申告制なので、連携しているアカウントと同じであるという保証はありません。

Myはてな「アカウント・アドレス設定」項目に 外部アプリケーションアカウントの設定欄がありますが、こちらは、ご自身のプロフィールとして外部アプリケーションアカウントを広く第三者もしくはフレンドに宣伝するための機能として運用します。設定は、ユーザー自身が手入力で行う必要があり、特に他サービスでの連携設定に本稿が連動するといった実装は行いません。

はてなIDと外部アプリケーションアカウント紐付け情報の取扱いについて - お問い合わせ - はてな

同じページにこんなことが書かれているので戸惑いますが、七年前の情報らしいので、忘れ去られているのかもしれません。

  • ただし積極的に第三者に開示することは行わない。例えばMyはてなのプロフィールのように連携を行ったサービス以外での場所へは、公開しない
はてなIDと外部アプリケーションアカウント紐付け情報の取扱いについて - お問い合わせ - はてな

私は人力検索で連携を行った覚えがないのですが、ばっちりアカウントが表示されています。ブックマークコメントによるとはてなモノリスでも表示されていたそうです。「積極的」の解釈が私とはてなで違うだけなのかもしれません。

Hatena::Let でブックマーク数を確認するもの

増田のはてブ数を手前 Fork しました。トップページの他にマイページでも使えます。

Fork に使わせてもらったブックマークレットを紹介しようとしたらなぜか Google から消えていたので探索に時間を要しました。

はてなブックマークアイキャッチ画像を確認するもの

RSS リーダーから各エントリに飛んでるので、画像は見ているはずなのに、すぐどんな画像だったか忘れてしまいます。そんな時に画像に言及されると気になってしょうがないのですが、RSS リーダーの方では既読のものは非表示になってて再表示がめんどくさいので、はてなブックマークに直接出すことにしました。

Togetter の引用ツイート乱舞を止めるもの

twitter で元ツイートの URL を検索した結果をばしばし載せまくったようなまとめに当たると、おんなじ引用が連なってスクロールが大変なので、省略しました。複数の引用ツイートがまぜこぜになってる場合、どれがどれだか分かりにくくなると思います。

うるおいの雨が降るもの

ダジャレを思いつくままに書いたら肌色の手が降ってきて、なんとなく後に引けなくなったので緑化させて、ゴルフも何もあったもんじゃないコードになったので後から変数名を考え直しました。

色々書き替えてる時に h:id:noromanba さんからはてなハイク経由でアドバイスを貰い、そのまま使わせていただいたのですが、コード中にお礼を書くのを忘れて無礼な人みたいになってしまいました。

お礼の付け足しだけでまた新着一覧のトップに浮上するのもためらわれるので、この場でお礼を言わせていただきます。ありがとうございました。

昔見たハンドクリームの CM がひたすらいろんな手を映してるだけのもので、それをぼんやりと思い出しつつこれを書いたのですが、そのハンドクリームが atrix だったのかどうかは定かではないです。

f:id:pacochi:20170206160149j:plain
ちなみにうちで使っているのはニベアです。かかと用に買ったのですが、以前使ってたパックスナチュロンを切らして以来手もこっちを使っています。ほぼ毎日塗り忘れるのでなかなか減りません。

*1:最後に仕様書がっつり読んだのが HTML4.01 と CSS2 あたりだった覚えがあります。

*2:Firefox だと about:config で security.csp.enable の値を切り替える