貧弱。
save_asで出力したyamlから、項目を削っても読み込めてしまう。
save_asの出力 1.yaml
site.name:
PREF: !ruby/object:WWW::Mechanize::Cookie
comment:
comment_url:
discard:
domain:
expires:
max_age:
name:
path:
port:
secure:
value:
version: 0
削った場合 2.yaml
site.name:
PREF: !ruby/object:WWW::Mechanize::Cookie
domain:
value:
version: 0
で、削った場合をloadさせた場合。
って、ここまで書いたけど、WWW::Mechanize::Cookieの親クラスであるWEBrick::Cookieを見たら、
require 'rubygems'
require 'mechanize'
require 'pp'
agent = WW
W::Mechanize.new
agent.cookie_jar.load("2.yaml")
pp agent2.cookies
=> [#<WWW::Mechanize::Cookie:0x2ed0970 @domain=nil, @value=nil, @version=0>]これで、全然問題が発生しなさそうだった。。。別に項目が無かったらnilが返るだけだし。。。
以下の条件の場合、
use struct;
use warnings;
use utf8;
binmode STDOUT => ":encoding(shiftjis)";
binmode STDIN => ":encoding(shiftjis)";
CGIモジュールから渡されるパラメータはなぜかutf8として扱われます。
use CGI;
my $query = CGI->new();
my $value = $query->param("hoge");
# $value の値が\xff\x00\xccだとすると
# \x{00ff}\x{0000}\x{00cc}となる
この文字列をPerl5.8.0付属Encodeに渡すと正しくとエンコードされません。
困ったことに、この現象はperl5.8.8などに付属しているEncodeでは発生しません。
use Encode;
my $string = Encode::decode("shiftjis", $value);
# 目的の$stringが得られない
しょうがないのでutf8だと誤解されている$valueをただのbyte列に変更して解決しました。
use Encode;
$value = pack("C*",unpack("U*",$value));
my $string = Encode::decode("shiftjis", $value);
# 目的の$stringが得られる
pack、unpackを使えばいいことに気づくまで3時間くらいかかったよ。。。orz
VOXのblogってVOX内の人しかコメントできないんだ。。。
これって不便なような。
これほしい。
先生と話す機会があったので授業についていろいろ愚痴意見を言ってきた。
ずっと前にredditで紹介されていたもの
http://home.netsurf.de/helge.horch/esug/index.html
ブラウザで動く。
これも一緒に紹介されていた。
http://d.hatena.ne.jp/sumim/20060612/p1
wikipediaでだけど。
とりあえず
Squeak = Smalltalk-80 + Squeak eToys
でよいらしい。
wikipediaでだけど。
これいいや
日本人のためのSqueakサイトの歩き方
smalltalkとsqueakって文法違うの?
なんか同じ扱いを受けてるみたいだけど、実際はどうなんだ?
fortran77と90みたく規格が違うのか?
あとで調べよう。