JavaScript: どんな型の値でもとりあえずメンバフィールドに値を突っ込んでみるテスト ― 2010年08月05日 13時06分43秒
えー。長らく更新をサボって申し訳ない。しかも今回の内容は完全に個人的なメモなのでなおさら申し訳ないw
JavaScript って割とオブジェクト指向的な性格の強い言語だと思うんだけど、いわゆるオブジェクト型の値に限らず、関数型の値であってもメンバフィールドを持つことができたりして、その辺どうなっているのか、っていう辺りを整理しておきたかった。
で、以下のような HTML を書いてみたわけだ罠。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<title>member field test</title>
<script type="text/javascript" language="JavaScript"><!--
window.onload = function() {
var table = document.getElementById("result");
if (table.firstChild.nodeName.toLowerCase() == "tbody") // IE6 対策
table = table.firstChild;
var testdata = [ 1, "", true, undefined, null, Infinity, NaN, function() {} ];
for (var i = 0; i < testdata.length; i++) {
var tr = document.createElement("tr");
// 値を表示
var td = document.createElement("td");
td.appendChild(document.createTextNode(
typeof testdata[i] == "function" ? testdata[i].toString() :
typeof testdata[i] == "string" ? '"' + testdata[i] + '"' :
testdata[i] === null ? "null" : // Gecko はこうしないと空欄になっちゃうので…
testdata[i]));
tr.appendChild(td);
// 型を表示
td = document.createElement("td");
td.appendChild(document.createTextNode(typeof testdata[i]));
tr.appendChild(td);
// フィールドへの代入を試みる
td = document.createElement("td");
var result;
try {
testdata[i].hoge = "Hoge!!";
result = testdata[i].hoge;
}
catch (ex) {
result = ex.toString();
}
td.appendChild(document.createTextNode(result));
tr.appendChild(td);
table.appendChild(tr);
}
};
//--></script>
</head>
<body>
<table id="result" frame="border" border="1" rules="all">
<tr><th>値</th><th>型</th><th>x.hoge</th></tr>
</table>
</body>
</html>
結果はこんな感じ。一応 IE6、Firefox、Safari にて動作確認済み。
結論をまとめると以下の通り。
- ブラウザ間で動作の差異は見られなかった。
nullの動作が意外なほどundefinedの動作に酷似している。オブジェクト型のくせに。ていうか、全くの別物なのに。- メンバフィールドに入れた値をその後も利用できるのは、通常のオブジェクト型の値を除けば関数型の値のみ。
- 数値、文字列、真偽値については、メンバフィールドへの値の代入のようなことをやっても例外は発生しない。が、あとでそのフィールドを参照すると
undefinedが返される。中途半端な動作だな。undefinedとnullは代入しようとした時点で例外が発生。- ついでに言うと、
undefinedとnullはtoString()メソッドを適用することもできなかった (例外を送出する)。undefinedについてはそも値ではない (より厳密には「インスタンスではない」) からということで納得がいくんだが、nullについてはなんだろ…オブジェクトなんだけどオブジェクトじゃないものであるということをことさらに表現したい、ってことなのか??
- ついでに言うと、
議員内閣制と官僚依存体質からの脱却; むしろ行政府を立法府の手中に ― 2009年09月19日 21時08分17秒
はてなーの反応の多くがちょっとアレなので、選挙前に買った←の本からの引用を交えて補足してみようと思う。この本は政策のレジュメとしても役に立つので、興味のある人は読んでみるといいと思う。
直接的に関連する記述は本の中の見出しで言うと「100人超の議員を内閣に送り込み、官僚依存体質から脱却する」ってやつ。p.113~115。それから、間接的には「政治任用ポストを大幅に増やす」(p.131~132) も関係してくると思う。他にもあるかな? おいらも勉強不足なもので…。
まず「100人超の~」の方から。まず大前提として、日本では議員内閣制を敷いていて、国会議員が国会議員の中から、行政府の長である内閣総理大臣を任命し、そしてその内閣総理大臣が行政府の主要ポストである各省大臣等を任命している。多くの場合、大臣、副大臣、政務官等のポストの多くを国会議員が請け負うことになる。
この制度の目的は、国の実際の運用を行う行政を、立法府のコントロール下に置くことにある。しかしながら、従来の体制においては、大臣・副大臣等が行政の実際の運用を把握し切れておらず、その説明責任を官僚に一任してしまうケースが多かった。すなわち、実態として立法府が行政府をコントロールできていなかった。
今回のニュースに対して、「官僚主導を打破し、政治主導に切り替えるという民主党の公約は反故にされた」と感じる人が多く出てしまうのは、現状のこうした実態を前提として考えているからなのではないかと思う。つまり、多くの人は、「政府=行政 (官僚と同類か、もしくは官僚の操り人形)」と考えてしまっている。しかしながら、民主党は、そもそもこうした実態そのものを覆したいと考えている。
政府が官僚主導となれば、どんなに党が政治主導で (すなわち民意に沿って) 動こうとも、官僚からの反発に押しとどめられて立案が進まないという事態に陥る。政治主導とすべきは政府そのものであり、そのためには、議会議席における党員がもぬけの殻になろうとも、多くの議員を内閣に送り込み、そして政策立案の場を政府に置くことで、議員の官僚に対する発言力を高める必要がある。
民主党は副大臣・政務官に加えて内閣に大臣補佐官のポストを新設し、国会議員を充てるという。また、衆参一人ずつの官房副長官も増員するほか、現在は官僚が占有している官房副長官補にも国会議員を充てる。しかも、政治主導をさらに確実なものとするため、民主党内閣では、党の幹事長や政調会長までが入閣するという。
党幹部を含め、それだけ大挙して主要な政治家が内閣に入ってしまうと、党がもぬけの殻になり、党運営がままならないのではないかと心配される向きもあろう。だが、民主党政権では、与党が内閣と一体化するのだという。
つまり、民主党が政権を取れば、党の政調機能は停止され、政策立案は党の政調がまるまる引っ越してきた内閣ですべて行われるようになる。これまでのような、官僚主導の政府と政治主導の党という二重構造は、政策立案における透明性を欠く。民主党のこのやり方は、それが族議員の跋扈を許したという反省の上に立っているという。
事務次官会見の廃止とも繋がる話で、政策に関する詳細な点にまで、これらの政府入りした議員 (または議員により任用された民間人)、そしてそれらを束ねる各省大臣が把握し、説明責任を果たす。そのための改革であるとも言える。
なお、これは当たり前すぎるくらい当たり前のことだが、民主党政権では国会の本委員会 (各論を議論する小委員会は除くという意味) での答弁は政治家に限定されるようになる。
現在は政策の細かい話になると、政治家が官僚に答弁をゆだねるシーンをたびたび目にするが、民主党政権では答弁はすべて政治家に限られる。つまり、政治家は細部まで政策や法案を把握していなければならない。いよいよ政策立案も、霞ヶ関の官僚にお任せできなくなるという意味では、政治主導に大きく近づく。
ただ、以下に引用するとおり、政府が政治主導で回るようになっても、彼らが民意から外れるような政策を打ち出してきたときに、それに対する批判の声を逐次届けていくようでなければあまり意味がない。官僚によるパターナリズムが民主党によるパターナリズムに変わるだけでは意味がないのだ。だからこそ、メディアの役割、責任は大きくなる。しかし、それが従来の記者クラブ占有で政府会見が閉ざされたままということになれば、政治と大手メディアの談合により、有権者による重大な指摘の機会が失われることになりかねない。政府会見の記者クラブ外への開放が非常に重要な改革の一つであると言われるゆえんがここにある、というわけだ。
しかし、それと同時に、民主党政権下では、政治がおかしなことをやらないよう、われわれ有権者が監視しなければならない。政治主導が実現すれば、われわれ有権者の責務も、以前よりずっと大きくなることを覚悟しておく必要がある。
はてブで以下のように指摘する方がいらっさいましたが、これはまさにその通りだと思う。
- vatista99 記者クラブを全面廃止してからにしろ
首相会見の開放が反故にされた件についてはおいらも気にしていたのですが、岡田外相が自身の会見では開放することを明言したほか、「これからも、徐々に開放を進めて参ります。」
とする松野官房副長官の言質が議員のブログで公表されたということもあり、当面は信じて待とうかなという気になりつつあるところではあります。頼むよホント。
もう一つの「政治任用ポストを~」の方もまさに政府を政治主導で埋め尽くせ作戦の一環、というお話です。主要部分を引用しますね。
まず、民主党は公務員を三段階に分け、それぞれに独自の任用方法と独自の機能を持たせるという。
一番上が首相や大臣の周囲に置かれるスタッフである。首相の周りには国家戦略スタッフを、大臣の周りには政務スタッフを置く。これは首相や大臣が自由に採用できる政治任用ポストで、官僚が任用されることもあり得るが、民間が中心になるという。政治任用なので、大臣が替わったらスタッフも職を退くことになる。いわば総理や大臣と一蓮托生のポストだ。現在の役所に置き換えれば、次官、官房長、審議官クラスがこれに当たる。
その次に現在の局長クラスがくる。これも政治任用ポストになる見込みだが、大半は公務員が占めることになるだろうという。しかし、局長以上のポストは、ある程度政権の側で決めることが必要だと民主党は言う。
官僚の上層部を大臣とセットでポータブルな立場にするのは重要。 現場の論理やお仲間意識に拘泥されるのを防ぐためでしょう。その下も政治任用としておくことで、抵抗勢力はいつでも首を切れる体制とし、公務員に対する議員の優位性を高める狙いがあるのでしょう。
以上、おいらもこの辺は専門の人ではないので、認識に誤り等あればご指摘いただければと思います。結論としては、少なくとも政治主導への切り替えという公約がこれによって反故にされるという話ではないし、そもそもマニフェストとして選挙前から言ってきたことですよ、というお話な訳ですね。ちゃんちゃんと。
神保さんの民主党批評本を買ってみた。 ― 2009年07月24日 10時14分55秒
買ってみますた。
まだ全然読んでないのですが、とりあえず民主党に関して尤も関心が高いのは「財源どうするのよ」問題だと思うので、その辺について触れている、「61. 消費税を社会保障目的税とし、五%全額を年金財源に」から一部を引用しておきます。
民主党は二〇〇五年の衆議院選挙で、当時の岡田克也代表が、年金財源として消費税を五%から八%に引き上げることを公約に掲げていた。しかし、その後小沢氏が代表になると民主党はこれを撤回。二〇〇七年の参議院選挙でも、マニフェストで消費税率は五%を維持し全額年金財源に充てると公約している。
だが二〇〇五年当時と比べ、民主党は子ども手当の金額を月額一万六〇〇〇円から二万六〇〇〇円に引き上げているし、他にも財源を必要とする新たなセーフティネット政策を追加している。そのなかで、消費税の増税だけを引っ込めてしまったために、財源問題が表面化することになる。
民主党が小沢代表の下で言い出した、予算の組み替えによる二〇.五兆円の新たな財源の捻出が、場当たり的であるとして今ひとつ信用されない最大の理由がここにある。
つまり、予算の組み替え論は、消費税増税を公約から引っ込めたために足りなくなった財源分を埋め合わせる目的で (より厳しい言い方をすれば、そのギャップをごまかす目的で)、民主党が持ち出してきた辻褄合わせではないかとの疑念を持つ人が、少なからずいるということだ。
民主党は、消費税を増税するには、無駄の削減などを徹底することで、まずは政府に対する国民の信頼を得るのが先決だとの立場をとる。そして、消費税の税収は社会保障以外には使わないことを法律で明文化すると約束している。その上で、当面はそれを年金財源とし、将来的には年金改革で創設する「最低保障年金」や国民皆保険制度の「医療費」などの財源に充てていくという。
「今の政府は無駄があまりにも多いので、増税を持ち出しても理解されることはあり得ない」 (福山哲郎政調会長代理) というのが現時点での民主党の立場だ。政権を取り、徹底的に無駄の削減を行った上で、それでもどうしても政策を実現するための財源が足りなければ、そのときは消費税の引き上げも含め、改めて国民に信を問う、というところか。
あ、念のため断っておきますが、↑に表示されるリンクはアフィです。貧しいおいらにささやかなる施しを…w
まぁ、この辺は個人的には概ね予想通りというか想像通りというか。とりあえず現時点では「増税無しにできそうだったらやれるとこまでやってみるけど、無理だったら増税するか公約のいくつかを諦めて貰うかのどっちかになるよ」ということなのでしょう。いずれ増税になる、という意味では自民党に任せていても多分同じ事なので、結局の所財源の問題を争点にするよりは、その使い道を争点にした方が良さそうな気もします。
最初に挙げたリンク先に概要が概ね書かれていますが、それを見る限りにおいては、全体的には思っていたより悪くなさげです。時間がなかなか取れないですが、追々この本を読んでもう少し検証してみたいと思います。
IE のテーブルセルに width スタイルを指定する気力が失せる例 ― 2009年04月23日 11時13分33秒
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-style-type" content="text/css" />
<title>teble cell width test</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table td, table th {
border: 1px solid #666;
}
table th {
width: 10ex;
background: #cef;
text-align: right;
padding-right: 1ex;
}
table td {
text-align: left;
padding-left: 2px;
}
</style>
</head>
<body>
<table>
<tr>
<th>name</th> <td colspan="3">T.MURACHI</td>
</tr>
<tr>
<th>age</th> <td>31</td>
<th>sex</th> <td>male</td>
</tr>
<tr>
<th>comment</th>
<td colspan="3">
Hi! I'm a fat programmer.
I like music, playing, listening, singing, and so on...
I own a company named "Harapeko Inc."
</td>
</tr>
</table>
</body>
</html>
- Firefox での表示例:
- Safari での表示例:
- IE7.0 での表示例:
結論: 神は死んだ。
…いや、とぼけている場合ではなくて、この現象、ネットでうまく検索することができないので、対策が分からずにいます。誰か教えて下さると有り難いデス…。
長島一由氏って、いつの間にやら民主党から国政選の候補者として準備していたのね。 ― 2009年02月22日 09時54分24秒
知らんかった…。トップの画像に思いっきり「衆議院」って明記されてるし…なかなか解散してくれなくってやきもきしてるんだろうなぁー (^_^;。しかしステキな眼鏡っ漢だw
この人以前はブログも書いていたんだけど、一番最後の、自分の本を紹介するエントリーのみを残して、他すべてのエントリーをばっさり削除してしまった模様。拙ブログからも度々参照させて いただいたりしていただけに、激しく残念。民営化への舞台裏とか、めちゃめちゃ興味深い記事だったのよ。
ただ、氏の逗子市長としての取り組み実績についてよくまとめられた冊子が PDF で公開されているので、政治、特に地方自治や行財政改革に興味のある人は、橋本知事をベタほめする前に、一度目を通してみる事をオススメします。まぁ、市町村長と都道府県知事とでは事情も環境も全く違うんでしょうから単純に比較はできませんが…。
例えば職員の雇用に関わる費用の削減においても、給与カットや首切りではなく、新規雇用の削減による 20年計画での半減を主軸に、非常勤職員の増員、業務の民間委託などでカバーするという政策を打ち出し、実践しています。こうした取り組みは、任期一年目でいきなり黒字化するような短期的な成果が見込めるものではありませんが、そもそも将来的に財政が回復する見通しを「仕組みとして」導入し、その説明責任を果たす事が可能であるなら、短期的に数字として表れるわかりやすい成果など、そもそも不要なのではないでしょうか?
地方自治の事例については、成功例にせよ失敗例にせよ、もっともっと情報共有されるべきなのではないかと思います。歴史教育と言うよりは、社会の共有認識を高めるという事が重要です。
しかし民主党かぁ…。衆院選、早く始まってくれると良いですね。(^_^;A
Visual Studio で日本語を入力すると「アクションが完了できませんでした。」と怒られたりする。 ― 2009年01月22日 16時50分13秒
Visual Studio 2008 Express Edition の Visual Web Developer 2008 を使用しているのですが、 Javascript ファイル (.js ファイル) の編集中に、特定の日本語を入力した際、アラート「アクションが完了できませんでした。」が表示される。例えば、「時刻」の「刻」の時が入力されたときにこのアラートが表示される。「刻一刻」のように入力すると、最初の「刻」の字がエディタに反映されるタイミングで 1回と、次の「刻」の字がエディタに反映されるタイミングで 1回の、計 2回表示される。
コメントを入力中にひっきりなしにアラートに遭遇するため、はっきり言ってうざい。生産性が著しく低下する。でも整形ルールをこいつのエディタにお任せしちゃっているので、今更他のエディターを併用するのも面倒くさい。ぐぐってみたけど、特に情報も出てこないので困った。似たような症状に見舞われた方、何か情報を提供していただけると助かりまする…。
id:dsl さめが追加調査をしてくださいました。多謝!!
- Unicode の下位オクテットが
0x3Bとなるような文字で再現する模様。- この中の「画」の字は当方でも当初より再現を確認していました。
- 再現するのは一行コメントを入力中のみで、リテラルや C のコメントを入力中には再現しない (これは手元の環境でも確認しました)。
- 下位オクテットが
0x3Bではない字でも再現するものが存在する模様 (「好」など)。
あんまりしつこく原因探っても仕方ないような気もしてきたw やっぱり .js ファイルの編集だけ他のエディター使って凌ごうかなぁ。あるいはいっそのことおいらも Eclipse に乗り換えるか…。
ちなみに Javascript (in HTML) で記述されていた力作ですが、 Perl の場合だとこんな感じで書けるっぽいです。
$ perl -MEncode -e 'print encode("UTF-8", pack("U", ($_ << 8) + 0x3b)) for (0..0xff); print "\n"'
ただ、結果がこんな感じで激しく乱雑になったりする訳ではありますがw
;ĻȻ̻лԻػܻ࠻ऻ഻༻ျᄻሻጻᐻᔻᘻᠻ᤻ᨻᬻ᰻ᴻḻἻ※℻∻⌻┻☻✻⠻⤻⨻⬻ⰻⴻ⸻⼻〻ㄻ㈻㌻㐻㔻㘻㜻㠻㤻㨻㬻㰻㴻㸻㼻䀻䄻䈻䌻䐻䔻䘻䜻䠻䤻䨻䬻䰻䴻主伻倻儻刻医吻唻嘻圻堻夻娻嬻尻崻帻弻总愻戻挻搻攻昻朻栻椻樻欻氻活渻漻瀻焻爻猻琻画瘻眻砻礻稻笻簻紻縻缻耻脻舻茻萻蔻蘻蜻蠻褻註謻谻贻踻輻逻鄻鈻錻鐻锻阻霻頻餻騻鬻鰻鴻鸻鼻ꀻꄻꈻꌻꐻꔻꜻꤻꬻ갻괻긻꼻뀻넻눻댻됻딻똻뜻렻뤻먻묻밻봻븻뼻쀻섻숻쌻쐻씻옻윻젻줻쨻쬻찻촻츻켻퀻턻툻팻퐻픻혻휻��������;;碌層כּﰻﴻ︻[
…ってそこ、張り合うところじゃないから! >ヲレ (^_^;A
あ…スターにはてブのしっぽが… ― 2008年12月26日 09時17分22秒
先日の記事に id:abekameri さめから頂いたスターの右に、はてなブックマークのコメントへのリンクが表示されちゃってますね…。これはおいらが自分で作ったはてブリンク自動生成スクリプトに <h2> タグ内のリンクを一律で処理させているからなのですが、これはさすがに想定外でした…。
抽出フィルタと排除フィルタって併用できるように作ってたかなぁ…? もしかしたらスクリプト自体修正が必要かも…。
フィルター設定を追加しました。併用できるように作ってありました。よかった。
Ubuntu 入れてみた。 ― 2008年11月13日 16時24分34秒
あんまりにもあっさり入ってしまうんで逆に怖くなるんですがw
しばらく腰を据えて使いつづけてみますかな…。
オンボードのサウンドデバイスがあるマシンで別途サウンドデバイスを増設して使用したい場合、オンボードのサウンドデバイスを BIOS の設定で無効化しないといけないらしい。Windows だと両方同時に使えたりするんだけど、この辺はもう Linux カーネル 2.6 の制限事項、なのかなぁ。 2.4 + ALSA のときは両方同時もいけたような気がしたんだけど…。
あと、ネットで拾った PDF ファイルでうまく閲覧できないのがあった。これなんだけど、日本語部分がまったく表示されない。多分フォントの問題だな。うちの会社の決算報告書は問題なく見れたけど。
デスクトップアプリも概ね充実してる。動画とかも大抵のファイルはそのまま見れちゃう。.fla とかも見れちゃう。knoppix では見れなかったからこれはちょっと嬉しかった。うん。もうちょっとゆっくり使ってみますw
Ubuntu には標準で PulseAudio というサウンドマネージャが入っていて、アプリケーションごとの音量コントロールとかができるようになっているらしいんだけど、各方面で重い重いと結構不評らしい。まぁ重いのも厭なんだけど、それ以前においらが使っている Delta 66 が PulseAudio と相性が悪いようで、 PulseAudio のプロセスが生きている間は音が鳴らないという有様だった。
で、これは PulseAudio を削除すれば解決するんだけど、Ubuntu 8.10 だと PulseAudio を起動しようとするセッションスクリプトを自分で削除する必要がある。その辺のやり方も含め、やり方が書かれているブログがあったので紹介します。超絶感謝 m(_ _)m 。
とりあえずホダ塾入れてみた。 ― 2008年04月22日 13時39分52秒
XOOPS Cube のホダ塾ディストリビューションを入れてみた。いろいろと勘違いとかもあって入れるだけでも随分と時間がかかったが。。。
ドメイン移転終わったらまた入れなおす予定なので、セットアップ手順をメモしておく。あ、一応、ファーストサーバのデルタ1・シリーズ対象ってことで。
-
Apache を使える状態にしておく。 mod_php5 とかは既に入ってた。
%su - %vi /etc/httpd.conf # 必要に応じて。 AddDefaultCharSet
noneoff とか %vi /etc/php.ini # 必要に応じて。デフォルトで概ね大丈夫そうだけど %/etc/init.d/httpd start # 既に起動中の場合は restart %ntsysv # httpd にチェックを入れる。ソフトバンクIDC が停電しても自動起動するように %chown murachi:apache /var/www/html # だっけかな? ディレクトリ名変えちゃったからもう忘れたw %chmod g+s /var/www/html %exit %cd /var/www/html %cat > test.php # 動作確認後、すぐ消す <?php phpinfo() ?>^D -
MySQL を使える状態にしておく。これも最初っから入ってる。
%su - %mysql_install_db --user=mysql %vi /etc/my.cnf # default-character-set=utf8 にする (後述) %/etc/init.d/mysqld start %ntsysv # mysqld にチェックを入れる
/etc/my.cnfは大体こんな感じ。矢印付きが書き加えた行。[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set=utf8 # ← [mysql.server] user=mysql basedir=/var/lib [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] # ← default-character-set=utf8 # ← [mysqldump] # ← default-character-set=utf8 # ←
-
MySQL の root ユーザーを設定する。 set password がなぜか使えなかった。
%mysql -u root mysql mysql> update user set password=password('password') while user='root'; mysql> flush privileges; mysql> quit %mysql -u root # これで入れちゃったら設定失敗 -
MySQL にデータベースとユーザーを追加する。
%mysql -u root -p mysql Enter password: mysql> create database xoopsdb; mysql> grant all on xoopsdb.* to xoopsuser identified by password 'password'; mysql> update user set host='localhost' while user='xoopsuser'; mysql> flush privileges; mysql> quit %mysql -u xoopsuser # これで入れちゃったら設定失敗 %mysql -u xoopsuser -p xoopsdb Enter password:
-
ホダ塾Xoops を環境にコピーする。
chmod g+sをうまく使えばグループapacheで統一されるので、書き込み権限必要なファイルやディレクトリもchmod 777やchmod 666ではなく、chmod g+wで足りるようになる。%cd %mkdir hodajuku %cd hodajuku %wget http://jaist.dl.sourceforge.net/sourceforge/hodajuku/hd_full_1_0_1b.tar.gz %tar -xzvf hd_full_1_0_1b.tar.gz %cp -R html/* /var/www/html/ %su # XOOPS_TRUST_PATH のコピー先ディレクトリを先に用意する。グループを apache で統一するため %mkdir /var/www/xoops_trust_path %chown murachi:apache /var/www/xoops_trust_path %chmod g+s /var/www/xoops_trust_path %exit %cp -R xoops_trust_path/* /var/www/xoops_trust_path %cd /var/www/html %chmod g+w cache uploads templates_c mainfile.php %cd ../xoops_trust_path %chmod g+w . cache uploads templates_c modules/protector/configs
-
ブラウザからサイトにアクセスすると、インストールが始まる。指示に従って進める。言語は ja-utf8 (だっけ?) を選択。
-
すべてが終わったら、不要なインストールの残骸の除去と、権限設定の修正を行う。
%cd /var/www/htdocs/ %rm -rf install %chmod g-w mainfile.php
以下の修正をしました。指摘 thanks >ぐるりさめ。
- ×
AddDefaultCharset none- → ○
AddDefaultCharset off
- → ○
ちなみに、実際の鯖の設定を確認してみたら、ちゃんと「off」になってた。何を見て間違えたんだろう>ヲレ。。。
mod_perl の無い環境で Apache::Registry みたいなことをする方法を考える ― 2008年04月10日 23時59分27秒
まだやってないけど。
CGI 呼び出しによって毎回起動するプロセスを「呼び出し側プロセス」、実際の処理と出力を行うプロセスを「処理側プロセス」と呼ぶことにして。
呼び出し側プロセスの処理は以下の通りかな。
- 名前付きパイプ pipe_A が無ければ作る。
- 名前付きパイプ pipe_B を作る。これは毎回、違う名前で作る。
- 処理側プロセスが存在しなければ fork し、子プロセスを処理側プロセスとして、そのプロセス ID をファイルに記録する。
- pipe_A を開き、pipe_B のファイル名と環境変数、そして標準入力からの入力を出力する。
- pipe_B を開き、入力した内容を標準出力に書き出す。
- pipe_B を削除する。
処理側プロセスの処理は以下の通りかな。
- pipe_A を開き、pipe_B のファイル名と環境変数、そして標準入力からの入力を入力する (その単位でデータを適切に読み出せるよう、データのサイズがわかるようになっている必要がある)。
- 処理を行い、結果を pipe_B に書き出す。
- 1 に戻る。
懸念点。つか、おいらの知識が圧倒的に足りてないだけの話なんだけど。
- 呼び出し側プロセスは毎回起動するわけだからあんまり解決になっていないのでは?
- 処理側プロセスが大量のモジュールを読み込むような場合には、それなりに効果はあるのかも。
- mod_perl が使えないような環境、すなわちさくらのレンサバみたいなレンタルサーバー環境では、処理側プロセスみたいなのは短時間で kill されちゃうだろうから運用的には効果は薄いのでは?
- その辺、ログを録ったりして実際の動きを確認してみたい。
- 実際に使われているシグナルの種類次第では、トラップして無視って運用もありかも。。。 (危険!!^_^;)
- パイプによる通信コストは無視できないのでは?
- これが一番のネックになりそうな気がする。もっとマシな方法がありそうなんだよなぁ確かに。。。
- pipe-A はセマフォ的なアクセス制御が必要では?
- アクセスが集中した場合、呼び出し側プロセスの待ち行列を DB か何かで管理して、行列が一定数を超える場合は 503 エラーにしちゃう、みたいな運用かなぁ。
- mod_perl で動かせる環境との間で可搬性が失われるのでは?
- そこはあまり心配してない。 mod_perl 用に別途インタフェースを用意して、どっちからでも同じように呼び出せるような作りにするのはいくらでも可能なはず。
以上、妄想メモ。






最近のコメント