さよなら Firefox Developer Edition
愛用していた Firefox Developer Edition が近々終了することになりました。
rockridge.hatenablog.com
10年くらい前から、動作テスト用に素の Firefox を残しておいて、生活用に別アプリとして起動するエディションを使っていました。lolifox や Pale Moon などを経て Firefox Developer Edition に辿り着き、これで安泰かなと思った矢先のことでした。*1
プロファイルがいつの間にか共用されるようになり、同時起動もできなくなっていたので、当初のメリットがなくなってしまったのですが、野良アドオンがインストール可能だったり、開発ツールが充実していたりで、手放せない感じになっていました。
しかし今回の終了告知で改めて調べてみたら、素の Firefox にも開発ツールがしっかり搭載されていました。 Firefox Developer Edition 登場以前からのっかってました。Firebug が幅を利かせているのを見て、標準搭載はしていないものだとばかり思っていました。そして Firebug の虫感が苦手なので、Firebug は可能な限り使いたくないなあと思っていました。
開発ツールあるなら素のやつでもいいかな、動作確認も適当にプロファイル変えたショートカットでも作っとけばいいかなと思ったのですが、まだ野良アドオンの問題が残っています。
野良アドオンが使えないと、自分でアドオンを作ったり更新したりする際に面倒そうなので、ノーブランド版のものを入れることにしました。今個人的にバージョン 53 以降にしたかったので、Beta 版の方をインストールしました。
Release 版だと検索して出てくるアドオンを入れたら日本語化できるのですが、Beta 版はなんか奥まったところにあって、探すのに少し時間がかかりました。ちなみにリンク先は windows の 64bit 版向けのものです。
言語パックを入れた後に about:config の general.useragent.locale に ja-JP と入れて再起動したら日本語の UI になりましたが、後から言語コード一覧ページを確認したら、ja だけで良かったみたいです。
参考にしたページでは、intl.locale.matchOS を false にする必要があるとも書かれていました。私のところでは既にそうなっていたのでいじっていません。
先ほど書いた通り、プロファイルががっつり共用されているので、何の移行作業もなしに移行完了しました。変わったのはタスクバーのアイコンと開発ツールの色くらいです。
これが昨日たまたま撮っていたコンソール。
こっちが今撮りたてほやほやのコンソールです。まぶしかったので、これを撮った直後に設定で Dark に戻しました。
なんだかエラーメッセージが英語になりましたが、エラーメッセージは英語のままの方が検索によく引っかかるので、特に直そうとは思っていません。
他にも細かい設定とかがいじられてる気もするので、しばらくセンシティブに様子見したいところです。
追記:復活したので戻りました。
*1:体感的には矢先なんですが、実際は二年半近く経ってたみたいです。
コードダンジョン潜伏記録
先日ゴルフの衝動にかられたので以前書いたものに追加するついでに短くしました。
しかしこのご時世、正直ブックマークレットの文字数上限なんてあってないようなものなので、可読性を下げるデメリットに打ち勝つほどのメリットがショートコーディングにあるかというと、書いてる時に楽しいとかそんなもんなんですよね。
という訳でブックマークレットのバイト削りはほどほどにして、ゴルフはゴルフ場でということで、ここしばらくゴルフ場に行ってました。
JavaScript のゴルフ場に行ったことがなかったので検索したら、コードダンジョンというブラウザゲームが出てきたので、そこで遊んでいました。レベルが上がって禁止文字の縛りが入ると、検索しても解法が直接出てくることがまずないので、思う存分脳みそしぼってあれこれ考えたり試せたりできるのが熱かったです。
ちょっとしたストーリーがあって、正しいコードの入力に成功するとストーリーが進むようになっています。コマンド入力でストーリーを進める往年のアドベンチャーゲームやインタラクティブフィクションみたいで、レトロ心をくすぐられます。
あんまり面白かったものですから、プレイ料金代わりにこのゲームの攻略本みたいな本を買いました。全問解いた後に買って読んだので、メモリアルブックみたいに感じました。
元は別サイトで出されたクイズらしく、そちらも見に行ってみましたが、現在そういうテーマの問題は出されていないようです。
以下は現時点での全問 (19問) を解いた記録です。ネタバレ以外の何物でもないので、これからプレイする予定のある方は続きを読まずにまっすぐダンジョンへ向かってください。
続きを読む16年前のブックマークレット
ふと、自分が一番最初に書いたブックマークレットって何だろう、と思い、過去のファイル群を漁ってみました。
多分この辺が一番最初に書いたものです。
という部分に時代を感じますね。<FONT COLOR="blue">
当時は「ブックマークレット」という呼称を知らなくて、「JavaScript お気に入り」とか「jsfav」とか呼んでたみたいです。
同じフォルダに他のサイトからもらってきたブックマークレットもありました。
昔のサイトでも埋め込みリンク可能だったりするんですね。META 要素の description を読み込んでいるみたいです。
スターの見た目変更記録
ブログのスターを表示させる際にちょっといじったのは前に書いたのですが、具体的な内容を書きそびれていたので、忘れないうちに書いておきます。
記事の下から記事タイトルの横にスターを移した
HatenaStar.js と、Hatena.Star.SiteConfig をいじっている hatenablog.js が、ページのずっと下の方で読み込まれるので、こちらは DOMContentLoaded のタイミングで以下のように書き換えています。
if (Hatena.Star) Hatena.Star.SiteConfig.entryNodes['article.entry'].container = 'h1';
追記: 引用ツールを表示させないとはてなスターの引用が失敗するようなので表示させたら、ツールの方からスターをつけられない不具合が発覚したので、修正しました。
DOMContentLoaded より早い実行タイミングがあればそっちにしたいところです。
スターの画像を変えた
こういう画像に変えました。
使用イメージはこんな感じです。私のプロフィールアイコンは四隅が透過色なのですが、何故かその部分が黒くなっているみたいです。後で詳しく調べたいです。追記: .hatena-big-star-star-container > .hatena-star-star と .hatena-big-star-star-container に border-radius:0px;
を追加したらはじっこも白くなりました。
はてなブログは元々プロフィールアイコンの上にスターを置くのがデフォルトで、そんなことしちゃっていいなら私も置いちゃうよということで、半透明のスターを描いてアイコンに重ねました。
CSS は、はてなのデザイナーさんのブログ記事を参考にして書きました。
.hatena-star-inner-count, .hatena-star-inner-count-green, .hatena-star-inner-count-red, .hatena-star-inner-count-blue, .hatena-star-inner-count-purple { font-size: 16px!important; display: inline-block; vertical-align: middle; } article.entry .hatena-star-star-image { background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/p/pacochi/20170206/20170206085555.png'); } article.entry .hatena-star-green-star-image { background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/p/pacochi/20170206/20170206085552.png'); } article.entry .hatena-star-red-star-image { background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/p/pacochi/20170206/20170206085554.png'); } article.entry .hatena-star-blue-star-image { background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/p/pacochi/20170206/20170206085550.png'); } article.entry .hatena-star-purple-star-image { background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/p/pacochi/20170206/20170206085553.png'); } article.entry .hatena-star-temp-star-image { background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/p/pacochi/20170206/20170206091214.png'); } article.entry .hatena-star-star-container a { display: inline-block; vertical-align: top; width: 20px; height: 20px; position: relative; } article.entry .hatena-big-star-star-container { width: 16px; height: 16px; position: relative; border-radius:0px; } article.entry .hatena-big-star-star-container > .hatena-star-star { background: transparent; border-radius:0px; } article.entry .hatena-star-star { padding: 0px; border: none; width: 16px; height: 16px; position: absolute; top: 0; left: 0; } article.entry .hatena-star-user { padding: 0px; border: none; width: 16px; height: 16px; position: absolute; top: 0; left: 0; border-radius: 0; }
ボタンをいつものに戻した
はてなブログのスター付加ボタンはデフォルトだとこういうちょっと大きめのボタンなのですが、なんだか気後れしてしまうのでいつものボタンに戻しました。
span.hatena-star-add-button-image { background-image: url('http://s.hatena.ne.jp/images/add_rd.gif'); } span.hatena-star-comment-button-image { background-image: url('http://s.hatena.ne.jp/images/comment_rd.gif'); } span.hatena-star-comment-button-image-active { background-image: url('http://s.hatena.ne.jp/images/comment_active_dark.gif'); }
たった今色違い画像の存在に気付いたのでそっちに差し替えました。馴染んでて嬉しいです。
スターコメントを表示させて、スターを促すツールチップを隠した
スターコメントが非表示にされていたので、出しました。スターコメントは人力検索やはてなブックマークでも非表示にされてて不憫だなと思います。
もういっこのセレクタは、なんかでっかい緑色の吹き出しが出てきてびっくりしたので反射的に display:none;
しました。
span.hatena-star-comment-container { display: inline-block; } div.star-navigation-tooltip{ display: none; }
置き換わってほしいとちょっと強めに願う場合はセレクタに要素名を足したり子孫セレクタにしたりして、優先順位を若干高めさせています。!important よりは弱めの願い方です。
Hatena::Let でもスターをいじるブックマークレットをいくつか投稿したので、一緒に紹介しようと思っていたのですが、記事が長くなってしまったのでこれ単体で出すことにします。
関連記事
ダイアリーの影を負うブログスター
すったもんだあったその後のスター話をまとめようと思ったのですが、びっくりするほどまとまらなかったので、まとめずつらつら書いていきます。
はてなスターのブログ一覧ページに旧ダイアリーが復活していました。
ログインしている状態 (右) としていない状態 (左) です。プライベート扱いしてくれています。私のダイアリーがプライベートモードだったことはあまり関係なく、HTML を取得できなかったから強制プライベート状態になっているのではと思っています。
先日間違って消しちゃって、下のフォームから登録し直そうとすると「はてなのサービスはこっちでやるからいいよいいよ」と登録させてくれず、途方に暮れていたのですが、いつの間にか再登録してもらっていました。
先日お知らせ記事を疑似的に作ってヘッダに表示した際、パーマネントリンクをブログのルート (http://yurume.hatenadiary.jp/) に設定したのですが、そこでテストのためにルートにスターをつけたのが関係しているかもしれません。
ちなみに現在のお知らせ記事は、はてなブログに未来日記の機能がちゃんとあったので、それを使って表示しています。未来の日付を設定するとすべて予約投稿になるものだとばかり思っていましたが、即時か予約か選ぶことができました。
このブログの他にも、ダイアリーからインポートしたブログを持っているので、そちらでも少々実験しました。結論としては、はてなダイアリープラスも、プライベートモードも、スターの不審な挙動とは関係がなさそうでした。追記: プライベートモードは関係あるかもしれません。
どうも、ダイアリー時代に既にスターがついていた記事は、ブログに移行してからも引用スターがつけられるみたいです。リダイレクト (HTTP 301) をエラーの一つとして考えていて、エラーの時はキャッシュを参照しているのではないかと思われます。
リダイレクトがエラー扱いだとしたら、まだスターのついていない旧ダイアリー時代の記事に最初にスターを付けたときの挙動なんかも納得できます。
多分私のブログ記事に紐づいたスターの情報は、はてなスターのサーバに全く蓄積されていなかったんだと思います。
前の記事で紹介した、ひとつだけ guested になった記事は、おそらくこのブログ全体で一番初めにスターがついた記事だったのではないでしょうか。yurume.hatenadiary.jp が id:pacochi に結びついているのをサーバが知ったのは、最初のスターのリクエストがタイムアウトで強制切断した後だったのではないかと思います。エラーが出てもスターを URL の場所につけることを優先して、誰宛なのか、引用は正しいかなどの付加情報の取得を諦めた結果、guested になっているのだと想像しています。
最初のスターで yurume.hatenadiary.jp/* が id:pacochi のものであると分かったので、以降はその情報をキャッシュして活用しているのだと思います。
引用スターをつける度に毎回愚直に旧ダイアリーに HTML を取りに行き、エラーになり、そこで引用と通知 (所有者情報の紐づけ) を諦めスターだけつけるものの、つけ終わった後に参照したキャッシュに所有者情報だけはあったので、後から所有者情報を付け足し、次から通知が来るようになった。でも引用チェックの HTML は取れないままなので引用は無理、という感じの流れなのではないかと妄想しています。
もうひとつスターに関する記事を書くつもりですが、久々に人力検索の方から回答リクエストが来たので、そちらに回答してから手をつけようと思っています。
追記: ダイアリーの公開範囲をカスタム (プライベートモード) にすると、新しく書いた記事でも引用に失敗するみたいです。また、引用ツールを表示させる設定にしないと、引用した文字列がサーバに送信されず、こちらも引用に失敗します。
はてなブログではこんな感じの設定にしておかないと、引用スターを楽しめないみたいです。
関連記事
はてなスターエージェントさんの来訪記録
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 で書きました。
元のファイル名から先頭八文字分くらい貰って、現在時刻付きのファイル名に変更してから開きます。
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.path に PowerShell のパスを入れて、view_source.editor.args に -windowstyle Minimized -File "ps1 ファイルのパス" と入れておいたら動きました。
一瞬 PowerShell のウィンドウが表示されるのですが、抑止方法を調べたらあんまりカジュアルじゃない方法ばかり出てくるので、そのままで行くことにしました。
余談ですが、作成途中で Temp フォルダを確認したらごみが 300MB くらいあって、Temp フォルダの掃除はちょくちょくしないといけないなとしみじみ思いました。
追記: 半角カナの混じったタイトルや角括弧を含んだタイトルのページをうまく開けなかったので修正しました。