Charlesでlocalhostのキャプチャを取る

CharlesというWebデバッギングプロキシソフトがあるのですが、localhostのキャプチャができないと嘆いておりましたところ、こちらに解決策がありました。

ブラウザでアクセスする際に、「localhost」ではなく、「localhost.」(最後にドット)を指定します。

以上、短すぎるエントリでした。

Facebooktwitterlinkedintumblrmail

揮発性の脳

Blogに書けずにいたら書こうと思っていた内容が揮発しました。
メモしときたかったVimのコマンドとか。 困りました。

昔から記憶力がないのですが最近また悪化したような気がします。

言い訳&気分転換でした。

この前の投稿SuppAppにつづいてイロイロ進行中です。お楽しみに。

Facebooktwitterlinkedintumblrmail

私的 Vim メモ(検索編)

Vim は大抵の環境で使える上に使いこなすと強力なのですが、vi として(というか h, j, k, l, i, a, ESC, x, dd, p, :w, :q, :q!, ZZ 大体これくらいで全てを済ますという vi としてもあまりつかいこなせてないスタイルで)しか使っていなかったので悔い改めて修行中です。

ちょっと慣れてもすぐに忘れてしまうということを繰り返して今がある。そんなわけで自分用にメモるのです。

検索

  • /[検索文字列]
    下方向に、[検索文字列]を検索する。

  • ?[検索文字列]
    上方向に、[検索文字列]を検索する。

  • *
    カーソル位置の単語で下方向に検索する。

  • #
    カーソル位置の単語で上方向に検索する。

  • n
    順方向に次の検索結果に移動する。

  • N
    逆方向に次の検索結果に移動する。

  • :nohlsearch
    検索結果表示のハイライトを消す。

Facebooktwitterlinkedintumblrmail

事務員は見た

おくんちのお土産。梅ヶ枝餅です。
浦さんに頂きました~ありがとうございます!

あつあつの状態で頂いたので、とても美味しかったです☆

そういえば今日、税務署に寄る途中、なんだか妙な人だかりを発見。
なんだろうな~と思って覗いてみたら、なんとそこには川合俊一さんが!!
ロケで来てたみたいです。長崎の人に笑顔で対応してる姿を見て、人柄の良さを感じました。

ちょっと得した一日。

Facebooktwitterlinkedintumblrmail

Mac の Web 共有で Proxy

インターネットからは普段隔離しているお客様のサーバーに yum でソフトを入れたいという状況になりました。メンテナンスなどでインターネットに接続しなければならないときには別ネットワークのLANケーブルと差し替えるという運用なのですが、クライアントに影響が出るためお客様がクライアントを使用している時間帯には作業ができません。

しょうがないので「夜間に作業させてもらうようにお話しようかと思います」と弊社、峰松に相談したら「インターネットに接続したノートPCに Proxy 立ててネットワークに接続させてもらってそれ経由でインストールしたらどうかな?」と。

その手があったか!

ってなわけで、私の Macbook は3G回線でインターネットに接続できるのでコイツに Proxy を立てることします。Mac だと Web 共有で Apache2 が起動するのでこれを利用することにしました。

設定ファイル、/etc/apache2/httpd.conf を眺めるとProxy関係の module はロードされるようになっていました。

LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

追加の必要はなさそう。

最後に他の設定ファイルを読み込む

Include /private/etc/apache2/other/*.conf

という記述がありましたので Proxy の設定、 /private/etc/apache2/other/proxy.conf を作成しました。/private/etc/apache2/ と /etc/apache2/ って同じ場所を指してるみていですね。

proxy.conf はこんな感じ。


ProxyRequests On
ProxyVia On


Order deny,allow
Deny from all
Allow from 192.168.1


192.168.1.* からフルオッケーという漢らしい設定です。「システム環境設定」→インターネットとワイヤレスの「共有」で Web 共有を起動(起動済みの場合は再起動)すると Proxy が有効になります。

漢らしすぎるので普段はこの設定が読み込まれないように proxy.conf_ とかにしておいたほうがいいですね。Web 共有自体普段は切っていますが 、念のため。

Facebooktwitterlinkedintumblrmail

IronPython Console をもっと便利に(TABによる補完とか)

IronPyhton の開発環境を構築しています。

お客様に .NET Framework 4.0 が必要な提案をしておりまして、しかも、コンパイルが必要な言語はイマイチ要件にあわない。初めは IronRuby でやろうかと思ったのですが、調べたところ日本語の扱いに不安がある。ここはそろそろ安定しているであろう IronPython かな?というわけ。

さて、本題。インタラクティブシェルを便利にする、ipy.exe おすすめの起動時オプションをご紹介。
どんなオプションがあるのかはこんな感じで確認できます。

C:\Users\murave>"C:\Program Files\IronPython 2.6 for .NET 4.0\ipy.exe" -?
Usage: ipy.exe Usage: ipy [options] [file.py|- [arguments]]

Options:
 -3                       Warn about Python 3.x incompatibilities
 -c cmd                   Program passed in as string (terminates option list)
 -D                       Enable application debugging
 -E                       Ignore environment variables
 -h                       Display usage
 -i                       Inspect interactively after running script
 -m module                run library module as a script
 -O                       generate optimized code
 -OO                      remove doc strings and apply -O optimizations
 -Q arg                   Division options: -Qold (default), -Qwarn, -Qwarnall,
-Qnew
 -s                       Don't add user site directory to sys.path
 -S                       Don't imply 'import site' on initialization
 -t                       Issue warnings about inconsistent tab usage
 -tt                      Issue errors for inconsistent tab usage
 -u                       Unbuffered stdout & stderr
 -v                       Verbose (trace import statements) (also PYTHONVERBOSE=
x)
 -V                       Print the version number and exit
 -W arg                   Warning control (arg is action:message:category:module
:lineno)
 -x                       Skip first line of the source
 -X:AutoIndent            Enable auto-indenting in the REPL loop
 -X:ColorfulConsole       Enable ColorfulConsole
 -X:CompilationThreshold  The number of iterations before the interpreter starts
 compiling
 -X:Debug                 Enable application debugging (preferred over -D)
 -X:EnableProfiler        Enables profiling support in the compiler
 -X:ExceptionDetail       Enable ExceptionDetail mode
 -X:Frames                Enable basic sys._getframe support
 -X:FullFrames            Enable sys._getframe with access to locals
 -X:GCStress              Specifies the GC stress level (the generation to colle
ct each statement)
 -X:LightweightScopes     Generate optimized scopes that can be garbage collecte
d
 -X:MaxRecursion          Set the maximum recursion level
 -X:MTA                   Run in multithreaded apartment
 -X:NoAdaptiveCompilation Disable adaptive compilation
 -X:PassExceptions        Do not catch exceptions that are unhandled by script c
ode
 -X:PrivateBinding        Enable binding to private members
 -X:Python30              Enable available Python 3.0 features
 -X:ShowClrExceptions     Display CLS Exception information
 -X:TabCompletion         Enable TabCompletion mode
 -X:Tracing               Enable support for tracing all methods even before sys
.settrace is called

Environment variables:
 IRONPYTHONPATH    Path to search for module
 IRONPYTHONSTARTUP Startup module

お勧めは、TABキーでのキーワードの補完が有効になる「-X:TabCompletion」、自動でインデントしてくれる「-X:AutoIndent」、コンソールがカラーになる「 -X:ColorfulConsole」あたり。昔はTabCompletion と AutoIndent は設定すると問題もあったのですが(TabCompletion では日本語が文字化けするとか)なおっているようです。

これらのオプション、3年前に買った『オープンソース×Windowsスクリプティング IronPythonの世界』(荒井 省三)という本で知ったのですが、いまだにこの本ぐらいしか参考書がないみたい。

私は、スタートメニューの IronPython Console のショートカットをコピーしてリンク先に上記のオプションを追加したショートカットを作ってます。便利ですよ。

切れちゃってますが、リンク先の内容は「”C:\Program Files\IronPython 2.6 for .NET 4.0\ipy.exe” -X:TabCompletion -X:AutoIndent -X:ColorfulConsole」です。ipy.exe の Path については調整してくださいね。

Facebooktwitterlinkedintumblrmail

お中元

少し前の話になりますが、社長の奥様から会社宛にお中元をいただきました。(いつもありがとうございます)

いつも真っ先に私が好きなモノを選ぶので、他の方には申し訳ないんですが(笑)、まあこれも開封した人の特権ということで…。

マカロンは初めて食べました!チョコ味。可愛いし美味しかったです。
プリンも大好きなので、こうやって県外のプリンを食べる機会を持てて幸せです。感謝です。

甘いものは好きですが、同時に好き嫌いも激しいので、最近周りの方が気を使って選んでくださるのが申し訳ないやら恥ずかしいやらで……スミマセン。笑

Facebooktwitterlinkedintumblrmail

UTF-8なCakePHP+EUC-JPなMySQL4.0

CakePHPは非常に良くできたPHPフレームワークです。
DBの種類等も設定ファイルに少し書いてやるだけで動いてくれます。

文字コードもそうで下記設定ファイルに書くだけです。
MySQLでEUC-JPを扱う場合も下記のようにするだけです。

/app/config/database.php
 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'port'=>3306,
        'database' => 'dbname',
        'login' => 'dbuser',
        'password' => 'dbpassword',
        'prefix' => '',
        'encoding' => 'ujis',
    );

}
?>

MySQLの場合はここで設定したencodingを使って、「SET NAMES ujis;」を自動的に発行してくれています。ここで問題が発生したのですが、MySQL4.0系にはSET NAMES構文がないので文字化けしてしまいます。CakePHP側もEUC-JPにしてしまえばいいのですが、今回はUTF-8である必要があり、DBとの入出力の際に、UTF-8⇔EUC-JPと変換することにしました。CakePHPはデータ操作の際に呼ばれるコールバック関数がありますので、そこで変換してやればOKです。

基本的に全ての生成されたModelはAppModelクラスを継承していますので、このクラスで変換してやります。

/app/config/app_model.php
data配列をEUC-JPに変換する処理

        return true;
    }
}
?>

もっと根っこのところで変換かけても良いのでしょうが、今回はCakePHPのライブラリには手を加えたくなかったので、こうしました。子クラスで上記関数をオーバーライドしている場合は親の関数を呼ぶのをお忘れなく。こうしたほうが良いというのがあればツッコミお待ちしてます。

Facebooktwitterlinkedintumblrmail

複数テーブルをまたいで重複しないIDを自動的に振る(PostgreSQL)


CREATE TABLE test(id serial, hoge text, primary key(id));
CREATE TABLE test2(id int default nextval(pg_get_serial_sequence('test'::text,'id'::text)::regclass), hoge text);

INSERT INTO test(hoge) VALUES('hoge');
INSERT INTO test2(hoge) VALUES('hoge');
INSERT INTO test(hoge) VALUES('hoge');

PostgreSQL8.1.9で確認。

testのidには1,3が、test2のidには2が入ります。
立っているclassは親でも使えと言う感じです。
デフォルト値にはcurrvalも使えますが、setvalで初期値を忘れずに。

普通に使う機会が無さそうなものばかりで。

Facebooktwitterlinkedintumblrmail

文字コードの話(EUC-JP)

大体知ってるという人も多いと思うので、概略だけ。

EUC-JPは拡張としてマイクロソフトが規定したCP51932と 日本ベンダ協議会が規定したeucJP-msが有ります。何が違うかと言うと
前者はJIS X 0212が無い、NEC選定IBM拡張文字が有る、ユーザ定義文字が入らない
後者はJIS X 0212が有る、NEC選定IBM拡張文字が無い、ユーザ定義文字が入る
と言う事のようです。
因みにブラウザではIEはCP51932のみ対応で、FirefoxやOperaは両方対応しているようです(表示に関して)。
で、またややこしい話ですが、これらの3ブラウザ全て送信時はCP51932らしいんですが
FirefoxだけはJIS X 0212をエンティティ化(数値文字列化って言うのかな)しないで送るので、Firefoxで送信した文字だけはFirefox以外で見ると文字化けする事があるという。
追記:今もそうなのか時間があれば調べたいと思います。

またSQLサーバではPostgreSQLとMySQLはeucJP-msですので、同じEUC-JPでも微妙に違う文字が送られて来る事を意識しないといけないんですね。

PHPでは5.2.1以降でしかeucJP-msは対応していませんので、中間処理もこれより前のバージョンでは手で修正が必要になるようです。

あとは他の文字コードからの変換で微妙に違う字体になったりする事もあるらしいです。

まぁ、SJISもEUC-JPも色々と問題があるんですが、UTF-8も問題が無いわけではないんですね。
その辺はサロゲートペアで調べれば出ると思います。対応アプリとかメモ帳でバックスペースとか。

間違いに関して、突っ込みお待ちしております。

Facebooktwitterlinkedintumblrmail