オリジナルの sh_javascript.jsはコメントの中の URLっぽい部分とメールアドレスっぽい部分をハイパーリンクにしていた。機能が劣るのは遺憾なので sh_javascript.jsと sh_ruby.jsに、コメントと文字列の中の URLっぽい部分をハイパーリンク化する機能を追加した。
その過程で気付いた、一行コメントの終了条件などに使われている $アンカーのマッチングが行われない場合があったのを修正した。(行末に達した時点でマッチングを打ち切っていたのが間違い。$は空文字列にもマッチする。全てのマッチに失敗するまで続ける必要があった)。これは自分が 2008-02-25に持ち込んだバグでオリジナルには存在しない。
# http://vvvvvv.sakura.ne.jp/ds14050/badboy/log/ How is this line highlighted ?
最終更新: 2009-09-01T05:05+0900
このようにハイライトされます。
'%04d-%02d-%02d' % [2008, 5, 8]
(整形した)HTMLソースはこう。
<span class="sh_string">'%04d-%02d-%02d'</span> <span class="sh_string">% [2008, </span> <span class="sh_number">5</span> <span class="sh_symbol">,</span> <span class="sh_number">8</span> <span class="sh_cbracket">]</span>
「% [2008, 」が一つの文字列にされてしまっている。どういう判断なのかと調べれば、%!string! と同じものだと見なされていた。(そのルールは自分で書いたんだけども)
知っていたでしょうか? %リテラルの区切りには空白(改行も!)が使えるのでした。(alnumと mbchar以外なら OKっぽい。変態すぎるよ)
最終更新: 2010-07-05T10:38+0900
[大型本] Jeffrey E.F. Friedl【詳説 正規表現 第3版】 オライリージャパン
この本の著者は regex派だそうな。FedExと同じように読めるからだとか。自分は気分で regexだったり regexpだったり reだったり。regexpって書く人はどう読んでんの? だって。そうか、読み方か。考えたこともなかった。Friedlさんの疑問にお答えしましょう。regexpと書いて正規表現と読む、です。
iPodを始め、よそでは 12:00 PM が正午を意味することについて(無理矢理)理由を考えてみました。
12:00-12:59が 12:00PM-12:59PM、00:00-00:59が 12:00AM-12:59AMになる理由。日本人の(と書いてもいいよね?)感覚では 12:00PM=00:00AM=深夜となるものが正午を表してしまう理由。
時刻と AM/PMをわけて考えなければいけない。まず、時刻の部分はそのまま読み方を表している。だから 0時台は存在せず 12時台が使われる (0時何分という読み方をする人もいるでしょうが、自分は 12時何分と読みます。時計の文字盤にも 0は無いし。本当の問題は海の向こうの人がどう読むか、ですが)。そして、AM/PMは午前か午後かを付加的に表している。
こじつけすぎるか……。(AM/PMが(午前/午後と違い)時刻の後ろに付くのは確かなんだけど)
00:30と書いて 12時30分と読んだり、午後0時半と読んだり、ひょっとしたら午後12時30分と読んだりする器用さが無いのが理由なんじゃないかと思ったのだが。*
自分のケータイでこっそり⁑こんな修正が行われていた。
サブディスプレイの待受画面に表示される時計を「Digital1(12h)」にすると、0時(午前0時)台が0:xxAM、12時(午後0時)台が12:xxAMと表示される。(他の12時間表示では、正しくそれぞれ12:xxAM、12:xxPMと表示される)
午前0時台は 0:xx AMではなく 12:xx AMが正しいと書いてある。
同じく Wikipedia。日本でも海外でもいろいろあるみたいね(なにが正しいとは言い切れない)。でも日本の公の判断が理性的で良い。だから AM/PMなんて使わずに午前/午後を使うべき。一番面倒がないのは 24時間制を使うことだし、もちろん自分のデジタル時計は全てそうしてるけど。
お気に入りに *.urlではなく *.lnkを保存。
IEのお気に入りはフォルダへのショートカットに乗っ取られました。
ターゲットを
"text.txt" "script.rb"
とするか
editor.exe "text.txt" ruby.exe "script.rb"
とするか。
前者のショートカットはどちらもただのファイルとして扱われ、後者は実行ファイルと同じように扱われる。「実行ファイルと同じように」とは、
スタートメニューでのファイル・フォルダの検索がいけてないので、こういった一手間が必要になる。
間に挟むもの(RR2302, 玄蔵X4)とディスクの数(4)が増えれば障害の原因も増えるという至極当然の結果なのだろうか。
一応ソフトをダウンロードしてきてファイルシステムの修復を試みたが全くダメ。Windowsの機能で一週間ごとにバックアップを取っていたので、ふんぎりをつけて初期化。
どんな抜けがあったのかはこれから明らかになっていくでしょう。(例えばドキュメントフォルダに放り込んでいた JustePort.exeのように、ひっそり消えているファイルが無数にあるはず)
思うに、拡張子でバックアップするファイルを選別するのは全く間違っている。特定のファイルをバックアップすることを想定していたのかもしれないが、今回起こったことは、特定のファイルだけが戻ってこないという状況。そのせいであちこちで不完全なファイルが発生している。imgのない ccd。jsのない html。setup.exeのない cab。などなど。
ユーザーが違えばその人が保存したいファイルも違う。同じ拡張子でも単にネットからダウンロードしてきただけのものか、その人が一から書いたファイルなのかでは価値が違う。自分がものを知っているなんて思わないで愚直に全部保存して欲しい。
気付いたのは日記を書くときに、カテゴリ名入力支援機能(クリックすると本文にカテゴリが挿入される*)のカテゴリリストに目当てのカテゴリがなかったから。
脱線。何かのソースを見たときに思ったのだけど ERB::Util.u も CGI.escape もエンコードしすぎだと感じてる人がいるみたい。(一部の記号をわざわざ復号していた。たしかに %XX が URLに現れるのは美しくない⁑)
閑休。存在するはずのカテゴリファイルがなくてエラーを出していたのは、ここ(20071208p01)で自分が書いた tdiary/categorizedio.rb だったので誰にでも起こる不具合なのか確証がなかったり。
http://tdiary-users.sourceforge.jp/cgi-bin/wforum/wforum.cgi?mode=allread&no=5718&page=0
tDiary標準のカテゴリモードがどのようになるのかは未確認だったり。
複数のポストを日付で括ってしまう tDiary(<日記だから)はどうしても <title>タグの中身が味気なくなってしまって、ボットにも人間にもアピールが弱いな、とか全然関係ないけど、いま思った。(BlogKitでは解決してそう)
ぼそり。(category.rbは @conf.data_pathと 'category'を連結するときにパスセパレータを二重化してる。問題はレンタルサーバ(FreeBSD)でもローカル(Windows)でも起きていないが、そういうのが気持ちわるい&気にしたくないので自分は File.joinや Scripting.FileSystemObject.BuildPathを必ず使う)
Firefox2が標準ユーザーでのアップデートに失敗するようになっていて 2.0.0.14のインストールが面倒くさかった*ので 2をアンインストールして 3 beta5をインストール。Firefox2のときと違って
extensions.checkCompatibility false
を知ってるから、バージョンの数字だけを見て、ほとんどの拡張を使用不可能にされるアホらしい事態慎重すぎる対応は避けられる。(といっても半数近くの拡張がすでに 3に対応していた。Google Toolbarは Fx3をクラッシュさせた)
というのが気付いたところ。
フォームの背景色の問題は起こるところと起こらないところがある。自サイトの tDiaryと本棚では色が変わらないが、はてなや、google.co.jpのホームページの検索窓は色が変わる。google.co.jpでも、結果ページの検索ボックスは背景色が変わらない。(いずれも Firebugで Inspectして、userContent.cssで行った background-colorの指定が有効なのは確認している)
Firefox2と 3(の Gecko)で何が変わったのだろう。背景色が全く変えられなくなったわけじゃないみたいだけど。
borderや border-styleや border-widthをインラインスタイル属性として <input>タグに書き込むと背景色が変わった。(ボーダーの属性値は noneでも solidでも 0pxでも良い)
わけがわからないから、Firefoxの CSSへの準拠度が上がったせいでサイトデザインの不具合が明らかになった、というわけではないな。
* 管理者として起動すればアップデートは簡単に済む。標準ユーザーのプロファイルに残された更新情報の削除がめんどうくさい。
最終更新: 2011-02-13T06:13+0900
SVGでやろうとして頓挫していたものの続き。
最終更新: 2012-01-26T13:29+0900
Rubyに来たときは意識しなかったが、最近 Ruby側から C++を眺めたときにあまりの違いに恐れおののいたこと(限りあるスタックの使いすぎに注意しようね)。
# Ruby myobject = MyClass.new();
// C++ MyClass myobject; MyClass *pmyobject = &myobject;
Rubyでは MyClass.new()で MyClassのインスタンスを作り、それを後から参照するために myobjectという名札を貼り付けている。C++では MyClass myobject; だけで既にインスタンスが存在していて、名札を貼り付ける行為は二行目が相当する。Rubyには myobjectのようにオブジェクトそのものを表す変数は存在しない*⁑⁂。
書いてて思った。ポインタ(に近いもの。参照。C++の参照とは違うもの)はスクリプト言語では普通に使われている*4。Rubyでは C++の myobjectに相当するものがなく、全てのオブジェクトが一段遠くにあるから、C++でやるように (*pmyobject).hoge() や pmyobject->hoge() というようにポインタをデリファレンスする手間を省いて myobject.hoge() という書き方でメソッドを呼べるが、Rubyの myobjectは C++の、myobjectよりむしろポインタの pmyobjectに一番近い。
* Fixnumは例外。
⁑ これが Rubyに ++、--が存在しない理由かとも思ったが、C++で単項インクリメント/デクリメントをメンバ関数でオーバーロードできることを考えると Rubyでやっていけない理由がわからない。Rubyでも ++相当のメソッドを定義できるということだし、全てがオブジェクト(内部状態を持てる)であることを謳っている Rubyだからこそ制約なしにやっても構わないんじゃ。http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/5323。
⁂ いやいやいや、仮に ++/--というメッセージが追加されても Numericはイミュータブルだという理由で使えなければ 99%の利用場面が奪われる。これをなんとかすると ++が +=のシンタックスシュガーになったり、Fixnumがオブジェクトでない(=変数がオブジェクトへの参照でない)ことが露呈したり、a=b=1; ++b; で a が 2 になったりする。これは違う。
*4 C++の &のような、明示的にアドレスを取得する方法がないので、ポインタのポインタは存在しない。