2007年 10月 01日

CocProxy

CodeRepos にコミットしてどきゅめんとかいた
http://coderepos.org/share/wiki/CocProxy

全然関係ないけど (なんか自分こういうのおおいんだけど、なんでだろ……)、今回 MatchData#begin と MatchData#end をはじめてつかった。
あと String#[a..b] = c もはじめてつかった。begin/end にいたっては今回はじめて知った。MatchData のリファレンスとかあんま見ないですよね。(ですよね?)

それにしても、なんか頭がおかしい。頭がおかしいって、ソレではなくて、なんていうんだろ、うまく回っていかない感じがする。もちろん前から回っていないのだけど、それに拍車がかかって、自動的に動いている感じがする。寝すぎなんだろうか。とか、今こうやってまた「全然関係ないこと」を書いてしまうぐらい頭が回ららないというかおかしい。頭悪いのは、どうしたらいいんだろ。なんだろもっと自重して生きていこう……もう遅いかもしれない。

OS X のネットワーク設定

ずっと ~/Library 以下を探してたけど、ない。 /Library/Preferences/SystemConfiguration/preferences.plist に書いてある。

  • Sets/* 以下に各ネットワーク設定が入ってる。
  • Sets/*/Network/Service/* は NetworkServices/* へのリンク
  • NetworkServices/* 以下に各サービスの情報
  • NetworkServices/*/Proxies/* にプロキシ設定
  • サービス情報は (各ネットワーク環境 * 各インターフェイス)

これ、この plist を直接いぢくる以外の方法でプロキシ設定って変更できないのかなぁ。なんか API とかないのかな。だいぶ探したけどないっぽくて困る。osascript で SendKey っぽいことしながら書きかえるのはちょっとみかけたけど、ださすぎる……
直接いぢるっていっても、root:admin 0644 だから sudo 必須で、結局あぷりけーそんがわから自動設定ってのはめんどいんだよなぁ。

あと疑問なのは、admin 権限もってないユーザってプロキシ設定の変更ってできないのかな。やってみろって話だけど余計なユーザつくりたくないなぁとおもってやる気なくしぎみ。というかもしそうだとしたらプロキシ設定必要なときどうするんだろ。Safari 使わない、とかになるのかな。まさかそんなわけないよなぁ……


もし直接変えるとすると、

  1. /CurrentSet を読む (/Set/0 だとしよう)
  2. /Set/0/Service のリンクをたどって /NetworkServices を列挙
  3. アクティブなインターフェイスのサービスを取得
  4. プロキシ設定

なんかでも、NotificationCenter とかになんか投げないと反映されなそうだなぁ。それに直接いぢるのはやっぱこわいしやりたくない。

Ruby でドキュメント書くとき

RD が好きじゃない、という内容でごたごた書いたけど、眠いからやめよう。Markdown/TracWiki スキー

=begin TracWiki

= Test =

 * hoge
 * [http://example.com/fuga fuga]

=end

=begin Markdown

Test
====

 * hoge
 * [fufa][1]

[1]: http://example.com/fuga

=end

でいいや……
Markdown にちょい修正加えられたのをよくつかう。けど、修正加えると Markdown じゃなくなるから困る。デフォで dl が書けないのが痛すぎる。

Markdown も TracWiki も Ruby じゃないっていう

>

2007年 09月 30日

iptables 復習

iptables の設定スクリプト書きなおしてて -j LOG したあと次のルールも実行されるのが不思議だなぁっておもった。
終了ターゲットにジャンプしない限り元のルールに戻ってくるんだった。LOG は非終了ターゲットだった。

iptables, DNS

なんか iptables いぢってたら DNS がひけなくなった……
iptables -F でちょい固まるのが気になる。

あと関係ないけど sudo reboot だとリブートしないで電源がきれたっぽいところでとまってしまう (この状態で電源ボタンおすと電源きれる)

おもむろに iptables -P INPUT DROP したせいっぽい。なんで iptables -A INPUT -i lo -j ACCEPT とかやってるのに、自ホストからも DNS ひけなくなるんだろ。というか iptables とおるんだ……

ポリシーも順番の影響うけるのかな。
だとすると最後に iptables -A INPUT -j DROP を書くの iptables -P INPUT DROP はどう違うんだろ。

順番はやっぱ関係なかった。ソースIPが意図したところからきてなかった。(これがなんでだかはわかってないけど)

それはともかく INPUT のポリシーを DROP にするのはかなりめんどいなぁ。

のっとり置換プロキシ

部分置換を実装してみた。

/* vim: ft=css:
 * proxy-replace: <style type="text/css">\s*<!--([^<]+)-->\s*</style>
 */

みたいなのを書いておくと、指定した正規表現の最初のキャプチャを、そのファイルで置換する。これは例えばはてなみたいにヘッダに CSS をうめこんでる場合にめんどくさいこと (一時的にテーマ変えて外部読みこみにしたり) しないで、編集できるようにする。
ファイル完全のっとりの場合と違ってリモートのファイルをとりにいく。

はてなでしかためしてない。というか gzip 圧縮されているのに気付かなくて、ruby1.9 の encoding まわりを疑ってハマった。

2007年 09月 29日

HDDの速度

が、CPU をひっぱってるんだなぁ。CPU 100% つかいきるとか、狙わない限りない……

open

[cygwin]
$ cat /bin/open
#!/usr/bin/env ruby
# vim: ft=ruby:

require "dl/win32"

file, params = ARGV[0], (ARGV[1..-1] || []).join(" ")

hwnd = 0
verb = "open"
dir  = Dir.pwd
cmd  = 1

shell_execute = Win32API.new("shell32.dll", "ShellExecuteA", %w(p p p p p i), "i")
shell_execute.call(hwnd, verb, file, params, dir, cmd)

なんか、最初からコマンドがあった気がする。思い出せない……

skkime

vs2005 版はランタイムが必要らしいとおしえてもらった
http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&DisplayLang=ja

というかどれダウンロードしていいかパっと見わからない (skkime も、MS VC++ Runtime も)。めんどくさくなって読まないで適当にダウンロードすると依存に気付かなくてハマる。

C-SPC で IME のオンオフしたいときは、キー設定で Control-Space に、toggle-ime をとにかく全部のモードで割り当てたらいいっぽい。

あと、候補ウィンドウのフォントを変えるのってどうすればいいんだろう。

z[SPC] で全角スペースの設定ができないなぁ。z\40 になって、とくに何も起こらない。
あと zx -> × の設定をしようとすると、自動確定せず、RET おすと RET がそのまま送信される。(つまり入力できない)
あとあと、追加した設定がプロパティシートひらくたびに増える。
というか設定が全く反映されてない。あきらめた。手動さいこうっ! そんな入力しないしいいや……

モニタ

今度はモニタがおかしい……だいぶ前から使っているモニタの上半分がかなり暗くなってしまった。フラットな色がもろグラデ……

再起動したらなおった。そういえば前にもおなじことがあった……