あっ、上手い
誤って画面外をクリックしたときに、GoogleAdsをクリックしました。
« 2007年05月 | メイン | 2007年07月 »
$hash = array(
"a" => 1,
"b" => 2,
);
$hash += array(
"c" => 3,
);
var_dump($hash); // → "a"~"c"まで格納されている
$arr = array(1, 2); $arr += array(3); var_dump($arr); // → おや? [0] ~ [1] までしか格納されていないじゃあ、こうしよう
$arr = array(1, 2);
$arr += array("", "", 3);
var_dump($arr); // → [0] = 1, [1] = 2, [2] = 3
OKKK
class Foo {
var $a = 1;
var $b = 2;
}
$foo = new Foo;
class Bar {
var $c = 3;
}
$bar = new Bar;
$foo += $bar;
var_dump($foo); // → Fatalエラー
んだよもおお
var str = "oops"; str._a = 12345; // _aプロパティを追加で、参照する
alert(str._a); // ---> undefined・・・おやー?
var str = new String("sorry");
str._a = 1;
alert(str); // ---> "sorry"
alert(str._a); // ---> 1
なぜだろう?
var foo = new String("foo");
var bar = new String("bar");
foo._toUpper = function(){return "FOO"};
bar._toUpper = function(){return "BAR"};
var hash = {};
hash[foo] = 1;
hash[bar] = 2;
for (var i in hash) {
alert(i._toUpper()); // ---> "_toUpper is not a function" のエラー
};
できなかった。
var s = new String("foo");
ss = s.valueOf();
alert(s); // -> "foo"
alert(typeof(s)); // -> "object"
alert(ss); // -> "foo"
alert(typeof(ss)); // -> "string"
ぬぁるほどね
var s = new String("foo");
s._a = function(){return "bar"};
ss = s.valueOf();
alert(s._a()); // -> "bar"
alert(ss._a()); // -> エラー
String.prototype._a = function(){return "foo"};
alert("dummy"._a()); // -> "foo"を出力
prototypeを拡張すると使えるんだって、この人に教えてもらった。
cd /usr/share/examples/cvsup/ wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/net/cvsup-without-gui-16.1h_2.tbz pkg_add cvsup-without-gui-16.1h_2.tbz cp -ip ports-supfile ports vi ports↓
#*default host=CHANGE_THIS.FreeBSD.org *default host=cvsup3.jp.freebsd.org※cvsup3.jp.freebsd.org のホスト名は変わり得るので、実行時に調べてください。
/usr/local/bin/cvsup -g -L 2 ports↓
Checkout ports/x11-wm/yawm/pkg-descr Shutting down connection to server Finished successfullyインストールが成功して、ログの末尾にこんなのが出力されました。
vi /etc/make.confでファイルを開いて、以下を追記します
WITHOUT_X11=yes参考サイト
cd /usr/ports/shells/zsh make make install chshviが立ち上がるので標準シェルを変えてください
cd /usr/ports/editors/vim make make install後は「/root/.vimrc」ファイルを作成し、いいように設定を書いて終(ry
cd /usr/ports/sysutils/screen make make install後は「/root/.screenrc」ファイルを作成し、い(ry
cd /usr/ports/misc/lv make make install

cd /usr/local mkdir src wget http://ftp.kddilabs.jp/infosystems/apache/httpd/apache_1.3.37.tar.gz tar xvzf apache_1.3.37.tar.gz cd apache_1.3.37 ./configure --prefix=/usr/local/apache1_3 --enable-module=so make make install
cd /usr/local/src wget http://www.php.net/get/php-4.4.7.tar.gz/from/fr.php.net/mirror tar xvzf php-4.4.7.tar.gz cd php-4.4.7 ./configure \ --prefix=/usr/local/php4_4 \ --enable-cli \ --with-mysql=/usr/local/mysql \ --enable-mbstring \ --enable-mbstr-enc-trans \ --enable-mbregex \ --with-apxs=/usr/local/apache1_3/bin/apxs \ --with-config-file-path=/usr/local/php4_4/etc \ --with-zlib-dir make make install※ "--enable-cli"はデフォルト有効かもしれないので不要かもしれません。
vi /usr/local/etc/apache22/httpd.conf以下のように、80番ポートを8081番に書き換えます
#Listen 80 Listen 8081※ちなみに、8080番は駄目でした。理由はわかりません :-)
/usr/local/sbin/httpd再起動します。
vi /home/htdocs/info.php以下の内容のファイルを作成し
<?php phpinfo();ブラウザで http://xxx.xxx.xxx.xxx:8081/info.php を叩いて動けばOKです。
vi /usr/local/apache1_3/conf/httpd.confユーザとグループを以下のように変更
#User nobody #Group nobody User www Group www拡張子にPHP4を関連付ける
LoadModule php4_module libexec/libphp4.so AddType application/x-httpd-php .php .phtml※LoadModuleの行は既にあるはず
/usr/local/apache1_3/bin/apachectl restart上記のコマンドで再起動します。
vi /usr/local/apache1_3/htdocs/test/info.phpに
<?php phpinfo();の内容のファイルを作成し、
var Foo = function(){
this._a = 1;
};
Foo.singleton = function(){
var self = arguments.callee;
if ("_instance" in self === false) self._instance = new Foo;
return self._instance;
};
var foo1 = Foo.singleton();
alert(foo1._a); // -> 1
foo1._a = 2;
var foo2 = Foo.singleton();
alert(foo2._a); // -> 2
alert(foo1._a); // -> 2
var bar = new Foo;
alert(bar._a); // -> 1
できたっぽい・・・けど、これでいいのか?
<script type="text/javascript"><!--
document.write(encodeURIComponent("おお、kjirouよ! 死んでしまうとはなさけな% &?い!!"));
// --></script>
※HTMLのcharsetはUTF-8にすること
require "uri"
$KCODE = "UTF"
p URI.unescape('ここに先程のjavascriptでURIエンコードした文字列をコピペ');
※ブラウザやターミナルの文字コードの設定は正しく行うこと
require "csv"
CSV.open("/path/to/filename.csv", "w") do |writer|
writer << ['aaa', 'bbb', 'ccc']
end
これだと(理由はわかりませんが)ファイル末尾に追加書きするモードがありません。
outfile = File.open('/path/to/filename.csv', 'a')
CSV::Writer.generate(outfile) do |writer|
writer << ['aaa', 'bbb', 'ccc']
end
上手くいきました。
outfile = File.open('/path/to/filename.csv', 'w') # 上書きモードに変えて行っていた
CSV::Writer.generate(outfile) do |writer|
writer << ['aaa', 'bbb', 'ccc']
end
対処としては、CSV.generate にメソッドを変更したら治りました。
/**
* インスタンスを生成する
*
* var foo = Foo.applyNew([param1, param2]); は
* var foo = new Foo(param1, param2); と等しい。
*/
Function.prototype.applyNew = function(args){
var Scope = function(){};
Scope.prototype = this.prototype;
var scope = new Scope();
var instance = this.apply(scope, args || []);
return (instance instanceof Object) ? instance : scope;
};
/**
* Singletonパターンでインスタンスを生成する
*/
Function.prototype.singleton = function(){
var self = arguments.callee;
if ("_instance" in self === false)
self._instance = this.applyNew(arguments);
return self._instance;
};
Function.prototype.singleton = function(){
if ("__instance__" in this === false)
this.__instance__ = this.applyNew(arguments);
return this.__instance__;
};
テスト
var Foo = function(a, b){
this.a = a;
this.b = b;
};
var f1 = Foo.singleton(1, "one");
var f2 = Foo.singleton();
f2.a = "two";
f2.b = 2;
alert(f1.a); // -> "two"
alert(f1.b); // -> 2
OKPK
var Foo = function(a){
this.a = a;
};
var Bar = function(b){
this.b = b;
};
var f = Foo.singleton(1);
var b = Bar.singleton(2);
alert(f.a); // -> 1
alert(b.b); // -> 2
f.a = 11;
b.b = 22;
var ff = Foo.singleton();
alert(ff.a); // -> 11
var bb = Bar.singleton();
alert(bb.b); // -> 22
OKPKPKK!(多分)
var Human = function(){
this.firstName = "亮";
this.lastName = "諸葛";
this.azana = "孔明";
};
Human.prototype.sayName = function(format){
alert(format(this.firstName, this.lastName, this.azana));
};
var foo = new Human();
foo.sayName(function(firstName, lastName){
return lastName + firstName; // -> "諸葛亮"
});
foo.sayName(function(firstName, lastName, azana){
return "我が名は" + lastName + firstName + " 字は" + azana; // -> "我が名は諸葛亮 字は孔明"
});
element.href = "javascript:void(0);";とか
<a href="javascript:void(0);" />を指定した際に、IE6で意図しない挙動になったという話。
<img id="image" src="./test.gif"/> <a id="switch_error" href="javascript:void(0);">SWITCH_ERROR</a> <a id="switch_success" href="javascript:void(0);">SWITCH_SUCCESS</a>javascript側でこんなのを設定する
document.getElementById("switch_error").onclick = function(){
document.getElementById("image").src = "./test2.gif";
};
document.getElementById("switch_success").onclick = function(){
document.getElementById("image").src = "./test2.gif";
return false;
};
リンクを押下すると、test.gif が test2.gif に変わるという意図のコードである。
![]() |
|