練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

最近気になったPC設定

コメントなし»

効果絶大、Windows10の高速化 - Qiita

fsutil behavior set disablelastaccess 0x3

FirefoxでYoutube見続けるとSSDが早死にする問題とその対処法

browser.cache.disk.max_entry_size

さすがに128KBは小さすぎかな、という気がしないでもないです。

ZIP 圧縮フォルダが使えなくなった

コメントなし»

気がついたら、エクスプローラで ZIP ファイルをダブルクリックしても圧縮フォルダが開かなくなっていました(アプリの選択ダイアログが表示される)。

原因は思いつきませんが、何日か前に Explzh のインストールとアンインストールを行っていたのはなにか関係があるのかないのか。

File Association Fixes for Windows 10 (Default Settings) » Winhelponline

こちらのレジストリファイルを使ったら、エラーが出たけど問題なく圧縮フォルダが使えるようになりました。

DocuWorks PDF Creatorで印刷(保存)ができない

コメントなし»

WordやExcelからDocuWorks PDF Creatorに対して印刷することでPDF形式に変換して保存することが出来ます。

Word等のアプリで印刷実行

PDFの保存ダイアログが開く

変換実行

こういう流れで処理されますが、ある日突然、PCを起動してからWordで印刷を実行しても保存ダイアログが表示されなくなりました。

よくあるご質問 富士ゼロックス

DocuWorks PDF Creatorをインストールしても、PDFへの変換処理が行われません。対処方法を教えてください。

1)
DocuWorks PDF Creatorをインストールしても、PDFへの変換処理が行われない場合があります。
OSを再起動することでPDFへの変換処理を行うことができます。

再起動しろとか安直だなあ、と思いつつも実際に再起動したら直りました。

少しググってみただけだと同様の体験談は見つかりませんでしたが、サポート情報として掲載されているということはメーカーへの問い合わせはある程度あるのかも知れません。

原因は不明ですが、同じ日にAdobe Reader XIが勝手にAdobe Acrobat Reader DCにアップデートされていた(ライセンス同意画面が表示されたので同じ日というのはほぼ確実)のが関係している可能性もあり。

Android: 『スマホ最適化アプリの決定版』の発生源が『QRコードリーダー EQS』だった

コメントなし»

android_eqs_1

しばらく前から、Nexus 7 2013 (Android 4.4.4) の通知領域に☆アイコンが表示されるようになりました。
一度消しても時間が経つとまた表示されて鬱陶しい。

android_eqs_2

通知領域を開くと

スマホ最適化アプリの決定版
スマホの「困った」を速攻解決

という広告が表示されます。

android_eqs_3

通知を長押しすれば「アプリ情報」というボタンが表示されるので、タップすると通知を発生させたアプリの管理画面が表示されます。

android_eqs_4

というわけでアンインストールしました。

正規表現技術入門 ――最新エンジン実装と理論的背景

コメントなし»

webdb_regexp

読みました。
勉強になりました(小並感

正規表現の入門書というより、正規表現エンジンの実装のための入門書。
正規表現エンジンを書きたいと思っているけどどうすればいいのか分からない、っていう人におすすめ。

一部のページは、Software Design 2013年5月号の正規表現特集に掲載された新屋氏自身の記事(sd_engine.pdf)がベースになっているっぽいです。

第2章
歴史が面白い。
Ken Thompson すごい。
Kleene はクリーネと読むのでしょうか。

p64
「合計が閾値θ(ノード内部)を超えると」は「θ以上」と書くべきではないか気になりましたが、ニューロン業界だとそういう表現をするらしい?

p75
『以降、本書では「POSIXの正規表現」と言えば「ERE」を指す』とあるので心して読み進めましたが、p246とp253でしか言われてない上にどちらもどの仕様かは関係ない意味合いで使われてました。

第3章
p99
TRE はこれでしょうか。
TRE — The free and portable approximate regex matching library.

p105
妥協するという選択肢っていいですね。
メールアドレスの正規表現はもう HTML5 方式だけでいいでしょ。

第4章
p127
「ε遷移の除去」という見出しですがε遷移のやり方を説明しつつ、中盤の「しかし、実はどんなε-NFAでもε遷移を取り除くことができます。……」という段落だけは除去の話をしているのでちょっと分かりにくかったです。

p131

しかし、現代の正規表現エンジンで有限オートマトンベースのマッチングをするもので、
NFA だけを用いるエンジンはほとんどありません。
NFA ベースのマッチングを実装しているエンジンは同時に DFA ベースのマッチングにも
対応しているのです。そのため、本書では有限オートマトンベースのマッチングを用いる
正規表現エンジンを DFA 型の正規表現エンジンと呼んでいます。

これはつまり

  • DFA に変換せず NFA のまま直接処理するエンジン(ごく少数)
  • NFA を DFA に変換して処理するエンジン
  • NFA のまま処理するコードと、NFA を DFA に変換して処理するコードを併せ持つエンジン

を DFA 型と呼んでいるということなのでしょうか。

NFA を DFA に変換して処理するという定義に限定すべきでは。

第4章は

  1. 分岐のない NFA の説明とコード
  2. ε-NFA の説明とコード
  3. 部分集合構成法の説明とコード
  4. DFA の説明とコード

というような順番で説明して欲しかったです。

第5章
p163,173
後方参照に使われるキャプチャにバックトラックが必要なのはなぜ?
いつか鬼雲のソースを読もう。

第6章
p221
固定文字列検索の分野も面白そう。

第7章
p241
(\D+|<\d+>)*[!?]
(\D++|<\d+>)*[!?] が同じというのが分かりません。
手元で試しても違うように見えます

p249
固定文字列検索でもオーバーラップしないという仕様はありえるし、正規表現にかぎらず文字列検索一般に該当する問題で、ただ正規表現の場合はオーバーラップしない仕様でも先読みを使えばオーバーラップさせられる、ということでは。

正規表現でもオーバーラップするものとしては、Mery 2.2.2.4953 | Haijin Boys Online とか Perl6 の overlap とか。

p257
可変長後読みはどこからマッチを開始するのかどうやって決めるのか、パターンを逆向きに構築して一文字ずつ後ろ向きにマッチしていく手法はどうか?とか、いろいろと大変だと昔なにかで見た気がします。

p257
空文字列の繰り返しをVM型エンジンでマッチしようとすると、無限ループになりいずれスタック溢れで止まると思うのですが、そういう問題ではないのでしょうか。

他の章で触れられてはいますがそちらでは最適化の一手としての説明ですし。

JavaScript のこの挙動は、
ECMA-262 Edition 5.1 15.10.2.5 Term

NOTE 4 Step 1 of the RepeatMatcher's d closure states that, once the minimum number of repetitions has been satisfied, any more expansions of Atom that match the empty String are not considered for further repetitions. This prevents the regular expression engine from falling into an infinite loop on patterns such as:

によるものだと思いますが、空文字列にマッチするかどうかは実際にマッチを試して成功してからでないと分からないのに「0回のマッチ(1回もマッチしていない)」として扱われるのが謎。

第8章
p264
VerbalExpressions より Regexp::Assemble を紹介した方がよかったかも。

Appendix
この本のメインディッシュ。
第1~8章のいろいろなところで「○○については Appendix で」という案内が書かれていたりします(各節冒頭のあらすじを除いても14か所くらい)。

もちろん第1~8章だけでも役に立ちます。

・組版的なところ

スペースを網掛け+ルビで表記しているのは分かりやすいです。

第1章以外で正規表現が等幅フォントになっていないのは構わないけど、* が上付きになっているのは注釈記号に見えて紛らわしいので、それだけはなんとかして欲しかった。

図が多くて分かりやすいです。
ただ、この本に限らない一般的な作法ではありますが、図をページの一番下、紙面に余裕がない場合は次ページの一番下に落としてあるのが、本文と図が離れすぎて読みづらいです。正直廃れて欲しい風習……。

スクリーンショットに書き込まれているコメントが、背景色とほとんど同じ色で見づらいです。

ノンブルが文字ごとに上端下端が違うフォントなので、ページをパラパラとめくった時に数字が上下に動いているようで見づらいです。

・以下些細な点。

p43 - 下の方のコードはスクリーンショットなので黒地に白抜きでは。

p64 図2.1 -
(3) 1=x1&x2v=(略) では。
(4) v=¬x1 字が小さくて見えづらいけどマイナスじゃなくて否定記号であってる?

p109 図3.4 - このように塗ったほうがよかったのでは。

p113 - 正規表現が 0*(10*10*)*` と書いてあるように見えるけど、自分の本の印刷の汚れ?

p175 リスト5.16 - 2354行のコメントが薄字になっていない。

p194 -・(?(condition)yes|no)(?(condition)yes)条件式
見出しレベルが違うのと、説明がよく分からない。

p204 図5.21 - a*+a のバイトコード

p217 図6.5 - #1 と #0 を繋ぐ線が矢印になっていない。

p235 - スクリーンショット 6、7行目の正規表現に ^ $ がない。

p242 - 一番上のスクリーンショット 3行目の正規表現に ^ $ がある。

p243 - スクリーンショット 3行目の正規表現に ^ $ がある。1、3行目が [!] になっている。

p265 リスト8.3 - 16行目のコメントが薄字になっていない。

p274 リスト8.6 - 「ですし」がおかしいのと、「数式」が別の意味で二つ使われていて紛らわしい。

p278 - 「これはintegerのdigitが1つ以上存在する」は「integerは数字が1つ以上存在する」あたりの方がよいのでは。

p279 リスト8.8 - integer だけラベルがついていて、上記の表現と相まって余計分かりづらくなっている。

p315 - A A A から C C C までだから 3^3=27 が正しい?

p334 - 索引にハ行がない(ハ行がないとは言ってない)

Catalyst Omega入れたら画面がピンクになった

コメントなし»

RADEON のドライバを入れたのが結構昔なので、たまにはアップデートしてみるかーと Catalyst Omega をインストールしたら画面がピンク色がかって表示されるようになってしまいました。

ドライバがぶっ壊れたかと肝を冷やしましたが、設定を修正して元に戻せました。

Fiddler: Unable to Generate Certificate エラーの対処

コメントなし»

Fiddler で Decrypt HTTPS traffic にチェックを入れると

fiddler_unable_to_generate_certificate

というエラーが出てしまう場合の対処。

Fiddler: Creation of interception certificate failed. | Harachie's Blog

直った。

Bookmarklet: ニコニコ生放送最小化

コメントなし»

Internet Explorer によるニコニコ生放送の閲覧を支援するブックマークレットです。

ニコ生を閲覧中に実行すると、Flash Player だけが表示されるように IE のウィンドウを出来るだけ小さくします。

もう一度実行するとウィンドウが大きくなります(手抜きのため、元と同じ大きさには戻りません)。

Windows 7(テーマは Windows 7)、IE10、ニコ生 GINZA にあわせて作ってあるので、それ以外の環境では動作しなかったりズレたりすると思います。

javascript:(function(w){var o=$('flvplayer');if(o.style.position==='fixed'){o.style.position='static';w.resizeTo(992,1000);}else{['ad_bnr','footer_ads'].each(function(id){var e=$(id);e&&e.remove();});o.hide();o.style.position='fixed';o.style.top='-61px';w.resizeTo(992,506);o.show();}})(window)

こんな感じになります。
niconama_minimize

Adblock Plusの闇が暴かれる

コメントなし»

広告を消してくれるブラウザ拡張機能「Adblock Plus」の秘密 - GIGAZINE

Adblock Plus が広告を受け入れるようになったのに対抗して、広告機能を削除した Adblock Edge というフォークが出たりといった動きもあるようで。

【CSS】Mozilla広告ブロック Part7かな【Adblock】の 688- あたり。

F12開発者ツールは@importしたCSSのURLがおかしい

コメントなし»

Internet Explorer 8 以降で F12 キーを押すと表示される「F12 開発者ツール」(F12 Developer Tools)。ちなみに F12 も正式名称の一部のようです。

CSS のタブにはページ内のスタイルシートを選択するリストボックスがありますが、@import で読み込んだ相対パスのスタイルシートが、少なくとも IE9 では(IE8、IE10 は試していないので不明)、正しくない URL で表示されます。

選択時に表示されるスタイルシートの内容と実際のページのレンダリング結果では正しく本来の URL のスタイルシートが反映されています。

例: 『ちいさな彼女の小夜曲』公式ホームページ
ie9_f12devtool_css

index.html から直接読み込まれている import.css は正しい URL です。

<link REL="stylesheet" type="text/css" HREF="css/import.css">

import.css から以下のように読み込まれている各ファイルは間違った URL になっています。

@import url("./base.css");
@import url("./common.css");
@import url("./page.css");
@import url("./format.css");

JavaScript で document.styleSheets[*].imports[*].href を参照すると開発者ツールと同じように間違った URL が得られます。同じ算出ルーチンを使っているか、開発者ツール自体がそのプロパティを参照してるのかも知れません。