start

Emacsでシンボリックリンクをそのままのパスで開く

/hoge/piyo/symlink/path/to/realというディレクトリのシンボリックリンクがあったとして、Emacsで/hoge/piyo/symlink/src.cppを開くと、自動で実体のパス/path/to/real/src.cppに読み替えて開いてくださりやがる。大抵のケースでこれが望まれる挙動なんだろう。

だがしかし、バージョン管理システムが絡んでくると話は変わる。

VCS下のファイルand/orフォルダの一部を別の場所に置いてシンボリックリンクで繋いでるような場合、バージョン管理がうまく機能しなってしまう(そんな運用すんなよっていうツッコミはナシで)。/hoge/piyo/がVCS下なら、/hoge/piyo/symlink/src.cppはそのままのパスとして扱いたいワケ。

そんな時は次のようにすればOK!

(setq-default find-file-visit-truename nil)

これでシンボリックリンクを手繰らずに、与えられたパスそのままにfind-fileしてくれるようになる。

ADSLモデムNV IIIから通信量を取得する

WiMAXで220MbpsだのLTEで225Mbpsだの言ってるご時世、いにしえのADSLモデムNV3からデータ通信量を取得したくなったのでメモ。

telnetでモデムにログインする。アカウントはWebセットアップのものを入れる。

Telnet Server 1.10  All rights reserved.


login   : user
Password:

### Welcome To ADSL MODEM NV3 ###

>

'show status adsl'コマンドでADSLの状態を取得でき、その中に転送量が書いてある。

>show status adsl
 STATUS             ..... UP
 DSL TYPE           ..... CTLM
 LINE TYPE          ..... G.dmt Annex I
 EU TYPE            ..... triple
 OL TYPE            ..... ol
 ATM
   HC STATUS        ..... enable
   LINE TYPE        ..... gdmtanxidf
 MAX RATE
   DOWN(KBPS)       ..... 10976
   UP(KBPS)         ..... 2304
 ACT RATE
   DOWN(KBPS)       ..... 11194
   UP(KBPS)         ..... 2144
 INTERLEAVE DELAY
   DOWN(MS)         ..... 4
   UP(MS)           ..... 2
 INTERLEAVE DEPTH
   DOWN             ..... 32
   UP               ..... 4
 ATTENUATION        ..... 31
 RESTART COUNT      ..... 193
 SNR MARGIN(DB)     ..... 6
 TX CELL            ..... 96768862
 RX CELL            ..... 488271561
 HEC DISCARD        ..... 1035214
 CRC8 ERROR         ..... 353202
 CORRECT ERROR      ..... 818282547
 UNCORRECT ERROR    ..... 1592806
 NEAR-END ES        ..... 74251
 FAR-END ES         ..... 922
 ENHANCED AUTO
   FIXED
     LINE TYPE      ..... (empty)
     EU TYPE        ..... single
     OL TYPE        ..... fdm
     ACT RATE
       DOWN(KBPS)   ..... 0
       UP(KBPS)     ..... 0
   RESULT1
     OL TYPE1
       LINE TYPE    ..... G.lite Annex C
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE2
       LINE TYPE    ..... G.lite Annex C
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE3
       LINE TYPE    ..... G.lite Annex C
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
   RESULT2
     OL TYPE1
       LINE TYPE    ..... G.dmt Annex I
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE2
       LINE TYPE    ..... G.dmt Annex I
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE3
       LINE TYPE    ..... G.dmt Annex I
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
   RESULT3
     OL TYPE1
       LINE TYPE    ..... G.dmt Annex C
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE2
       LINE TYPE    ..... G.dmt Annex C
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE3
       LINE TYPE    ..... G.dmt Annex C
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
   RESULT4
     OL TYPE1
       LINE TYPE    ..... G.dmt Annex C(FBMsOL)
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE2
       LINE TYPE    ..... G.dmt Annex C(FBMsOL)
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE3
       LINE TYPE    ..... G.dmt Annex C(FBMsOL)
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
   RESULT5
     OL TYPE1
       LINE TYPE    ..... Quad Spectrum
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE2
       LINE TYPE    ..... Quad Spectrum
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0
     OL TYPE3
       LINE TYPE    ..... Quad Spectrum
       EU TYPE      ..... single
       ACT RATE
         DOWN(KBPS) ..... 0
         UP(KBPS)   ..... 0

TX CELLRX CELLがそれ。単位はATMセルなので、48掛けでバイト数になる。上記例だと、送信4.32GiB、受信21.8GiBという事になる。

通信量だけが分かった所でそんなに嬉しくない。典型的には、その通信量がどれだけの期間で行われたか、っていう情報が重要なわけで時間情報が欲しいんだけれども、軽くコマンドを試してみた限りアップタイムに類する情報は取れない模様(´・ω・`)。こうなったら推定するしかない。

  • 実はこのモデム、実家のADSL回線のもので、トラフィックは然程大きくない環境にある。
  • show status adslの情報は少なくともモデム再起動でクリアされる。
    • プロバイダ側の接続履歴を見るに、↑のモデム再起動が行われるまでのPPPセッション継続時間は62時間で、この時間内に21GiBもの受信が行われたとは考えにくい。
    • また、月100回弱のPPP接続が発生している(恐らくADSLリンク切れ→再接続が行われている)ので、ADSLリンク切れのタイミングでTX/RX CELLがクリアされるとしたら、尚更小さな値になるハズ…
      • 実際にはそうなってないので、show status adslの情報はモデム再起動でしかクリアされないと考えられる。

というわけで、最後に再起動したのは正月帰った時であるからして、おおよそ75日間の通信量と推定される。まぁ、不意の電源断の可能性は否めないが、停電はまず無いだろうし、モデムの設置場所は屋根裏なのでコンセント抜きも考えにくい。

以上より、1日あたり280MiB程度の通信量って事になる。実家だしこんなもんじゃね。エロ動画とか落としまくる人も居ないし。

2015-03-23 追記

この記事を書いてから6日経過時点でのRX CELLは1.45GiBで、およそ240MiB/日という結果になった。というわけで、上記推定は概ねあってそう。

今更何でこんなことしたかと言うと、IIJmio高速モバイル/Dサービスのファミリーシェアプランが10GBに増量されるので、ADSL回線を巻き取れないかなーと思いましてね。個別契約のミニマムスタートプランが既に2回線あるので、家用に1回線追加のファミリーシェアプランにしてADSL終了できればいいなーと。

推定が間違ってなければ、ADSLで8.4GB/月使ってる事になるから割とギリギリだなぁ。今回の調査でモデムの通信量情報はリセットされた事だし、もうちょい見極めましょうかね。

尚、光に移行する気はねーっすw戸建てなので月額が間違いなく高くなるし、ADSLでもログからも判るようにリンク速度で10Mbpsほど出てるので、速度も全く問題ありませんので。

ZIL/L2ARC用にIntel SSD DC S3700 200GBを購入

家鯖のZFSボリュームのZIL/L2ARC用にIntel SSD DC S3700の200GB (SSDSC2BA200G3T)を購入した。Sofmapの中古で17000円程だったが、同じ中古品でも16000~36000円とかなり値幅があるのが謎。一応、★4つの中古優良品をチョイスしたのでS.M.A.R.T.を覗いてみると………

電源投入回数38回、使用時間11時間の極上品キタ━━━━(゚∀゚)━━━━!!

本体にDELLのシールがあり、型番的にもDELL向けの製品のようだ。ファームも2015/1/30リリースのDL06になっているので、割に最近の品なのかも。どっかからの放出品かしら?誰かが後から貼ったと思われる赤丸シールの存在は気になるところだがw

DELL用だと総書き込み量が見えないっぽい。もっとも、DC S3700は3.6ペタバイトものTBWを誇るので、そこそこ使い込まれた中古品だったとしても並の新品SSDよりも高耐久だと思う。それにガチでエンプラ用途で酷使されたようなブツは、そもそも真っ当な中古屋には流通しないだろうし。Intel純正ファームを書き込めないものかとググってみたら、X25-Mの話ではあるが80GBのコースターが出来たっていう書き込みがあった…gkbr

たかが家鯖のファイルシステムのキャッシュ用途に使うとか、本当にオーバースペックも良いところ。せっかくだしVMのHDDイメージ置き場としても使おう。

MacのUSB 3.0が遅くなる問題(USB 2.0で認識される)

MacBook Pro Late 2013でUSB 3.0-Gigabit Ethernetアダプタを使ったら速度が全然出なかった。経験的にUSB 3.0のLANアダプタはフルスピード近く出るはずなのだが、ファイルサーバからのコピーで272Mbps程しか出ておらず、明らかに遅い。

おかしいと思いシステム情報.appで確認したところ、なんとUSB 2.0接続されてやんの。それどころか、殆ど全て、というより外付けのUSB 3.0デバイス全てが2.0扱いになっていた。

一見するとUSB 3.0で繋がっているように見えるが「USB 3.0 Hi-Speed バス」っていうのはUSB 2.0用のバスで、そちらに殆どのUSB機器がぶら下がってしまっている。黄色に色付けしたデバイスがUSB 3.0対応機器なのだが、これじゃ遅くて当然だ。

で、なんでこんなことになってるかというと、本体が“レガシーモード1)”になってるからっぽい。「BootCampアシスタント」や「システム環境設定」の起動ディスク設定でWindows(などの所謂PC向けOS)がデフォルトで立ち上がる設定になっていると、USB 2.0までの対応となってしまうようだ。

この状態だと、ブートスクリーンでOSXを選んでもUSBは2.0までの対応になってしまう。レガシーモードを抜けるには起動ディスク設定でOSXを選んで再起動すればOK。恐らく、起動ディスク設定でEFIのUSBモードの切り替えも行っているのだろうから、PRAMリセット(command+option+P+Rを押しながら電源ON)でも解除できると思われる。

USB 3.0として正しく認識されていれば、下記のような表示になる。

ESSENTIAL DOCKがHi-SppedSuperSpeedの両方にあるのは、USBの規格に因るもの。ちょっとややこしいのだけれども、USBって実は3.0と2.0以前とでは内部的な互換性はなく2)、同じUSBとは言っても全くの別物が共存しているのであーる。なので3.0対応のHUBなんかを繋ぐと、2.0と3.0の2つのHUBを繋いでいるように見えるわけ。USB3.0 Card Reader(モニタ内蔵のSDカードリーター)が相変わらずHi-Speedバスの方にくっついてるけど、良く分からんw(後日確認したところ、しっかりとSuperSpeedバスの方にぶら下がってた。)

レガシーモードのままでも速度が遅いだけで普通に使えちゃうので、実は気づいてない人が結構いるかも?USBメモリを使うくらいならUSB 2.0でも殆ど問題ないだろうし。


1)
自分が勝手に命名したものなので正式用語ではない
2)
更にUSB 3.1でこれまた大きな変更が加えられている

EmacsでBOM付きUTF-8を扱うときはutf-8-autoを使おう

BOM付きUTF-8文章のファイルローカル変数(ファイル先頭の-*-で囲まれたアレ)のcodingutf-8-autoとしておくのが良さそう。autoだとBOMの有無を自動判別し、よしなに扱ってくれる。

大抵はutf-8(強制BOMなし)かutf-8-with-signature(強制BOMあり)のどちらかで事足りるが、Emacsと別のアプリ間で同一ファイルを行き来させると、たまにBOMの処理がバッティングしてBOMが2個ついたり消えたりって事が起きるので……。まぁ、Perforceの事なんですけどね!

PerfoceにBOM付きUTF-8のファイルを登録すると、どうもチェックアウト時にBOMを付加してるようで、それがEmacsのutf-8-with-signature処理と被って二重BOMになるのよね(´・ω・`)。かといって、ただのutf-8にすると何かの拍子にBOMが消えてしまい色々不都合なのよね(必ずしも消える訳でもないのがそれはそれで謎)。

BOM付きUTF-8とかこの世から死滅すればいいのに。ゲイツ、てめーの事だ!!BOM付きUTF-8は、CJK統合漢字の次に嫌いなUnicodeのクソ仕様だと思うわ。大体だね、16bitに全ての文字を収めようとしたUnicode自体がアルファベット圏人の浅はかな考えに起因するクソ規格であって、CJK統合漢字などという「見た目が同じだから」とかいう非漢字圏人の安易な発想に基づく仕様は、漢字圏各国の文化を破壊する人種差別的行為であると言わざるを得ないものであり(以下略

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo