「恐い」という感覚はわかる気がする。私も自殺未遂の数日後、床屋に行ったんだけど、顔剃りのときカミソリの刃が首筋に近づくのがものすごく恐怖だった。理由とかはわからんが、しばらくの間は「人命を奪いうるもの」がそこはかとない恐怖の対象であり続けた。
ほんとはもっそり下方修正が入らなきゃいけない会社ならごっそりある。
意外とたいしたことがないのは、
一時期あんなこんなで下がりまくった金融系かもしれない。
もちろん会社による。
今は遊べるような相場じゃないのでやるなら覚悟をきめてどうぞ。
何年か前にえらくひどい状況におかれてて、自分では気付いていなかったのだが、鬱的な症状だったことがある。そのころは電車を使うことが多かったんだけど、毎日毎日、電車が来るのを待ちながら、線路がよんでる気がしてた。あぁあっち行けばいいんだなぁって漠然と思ってた。なんだか二度寝するときのような気持ちであっち行きたいなぁいきたいなぁでも今いったらあれとかこれとかできないしなぁと思っていた。
たまにホームぎりぎりまで言ってしまうことがあった。ホームは意外に高さがあるので、下を覗き込むとちょっとためらう。さすがに。ここから降りるの大変そうだなぁ、こけたら痛そうだな、とかそういうことを思って下に降りたことはない。
当時は死にたいと思ってるだなんて思ってもみなかった。ただ行きたかっただけだった。その方が楽なような気がしていただけだった。たぶん止めたのは理性じゃなくて、また別なものなのだろうと思う。言語化できない何かが、死にたくないと思ってて、たとえば体が死ぬことを畏れていて、無意識のうちにどこかでブレーキをかけていたのだろう。私の場合はいたそうだなとかあれとかこれとかしないとみたいなものがブレーキになった。なんだかあほみたいな話なんだけど、電車に飛び込んだら痛いどころじゃないのに、線路に降りるときにこけたら痛そうとか考えている時点でかなりいっちゃってるんだと、当時は全然そんなことには気付かなかった。乗換えが楽だからって、後方車両のほうで待ちながらそういうことを延々と考えてるんだ。後方車両のほうは電車のスピードが速いから死ぬ確率が高いとかそういうことを考えてるわけじゃない。もうめちゃくちゃだ。意味がわからない。
なんかそれでも我に返る瞬間があったり、もしくは精神的にも波があったので全くそんなことを思わない日もあって、冷静に自分を振り返ることがあった。そういうときにとても怖くなるんだ。じっとりとした汗がでてくるんだ。そういう時はいつも怖くて、白線からだいぶはなれて待っていた。壁があるときは絶対に背中を壁から離さなかった。そうじゃなきゃまたふらふらといってしまいそうな気がして怖かったから。
今でもちょっと怖い。あのホームの高さも怖いし、混んでるホームも怖いし、電車の隙間も怖いし、白線を越えるときはそうとうどきどきする。けどもう線路に呼ばれることはなくなった。もしまた、呼ばれることがあったらどうなるかはわからない。踏み越える前にとどまることができるだろうか、と考える。でも、とその後に続ける。行きたいなと考えることと実際に行ってしまうまでにはずいぶんいくつもの関門があって、言語にならないものをひとつひとつなだめて納得させていかなきゃいけないんだ。その一つ一つを私は一気に飛び越えられなかった。飛び越えられない人なのか、単に飛び越えるほどでもなかったのか、それはわからないけれども、少なくとも私の中で私をあちら側へ行くのを引きとめようとする力は存在するのだと知った。それを忘れないようにしようと思う。
それも何のためにあるのか知らないけど体育が得意な奴の見せ場や体育の授業の一部としては機能してるんじゃないかな。
http://blogs.wankuma.com/episteme/archive/2007/11/08/106927.aspx
かなりテキトー。エラー処理とかしない。
package Animal; sub new { bless { cnt => 1 } , $_[0] } sub Sound { printf "%s\n", $_[0]->{voice} x $_[0]->{cnt} } sub SetCount { $_[0]->{cnt} = $_[1]; $_[0] } sub SetVoice { $_[0]->{voice} = $_[1]; $_[0] } package Dog; use base qw/Animal/; sub new { $_[0]->SUPER::new->SetVoice('Wan') } package Cat; use base qw/Animal/; sub new { $_[0]->SUPER::new->SetVoice('Nya-') } my $animal; $animal = Dog->new; $animal->Sound; $animal->SetCount(3); $animal->Sound; $animal = Cat->new; $animal->Sound;
ギーク(笑)が偉いみたいな風潮があるけど、
スーツ着て会社にいってシステム組み上げてる連中のほうが何倍も偉いとおもうよ。
その成果は表にはでてこないけどね。
数千万、数億と動くプロジェクトとギークがかみ合ったという話しはとんときいたことがない。
日本のギークなるそれは、ただ我がつよくてチームプレイはできないけども
それなりに腕は立つ人というだけなのではないか?
縁切るのがベストだと思うけど
ああ、これね。感受性とか全く無関係。
レポートに詳細を書けって言われているんじゃないか?
数式で書くところをちゃんと書くとか、説明にしても文章で書けという。
どうして「ソースコードのN行目・・・」的な文章をレポートに書いたのかわからない。
ソースコードの解説でも書こうとしたのかい?いらんよ
前の60行テンプレートエンジンを改良して、レイアウトテンプレート機能を追加してみた(それでも全部で90行)。
レイアウトテンプレート機能とは、例えば個別のテンプレートが<table>...</table>を出力して、それをレイアウトテンプレートが<html><body>...</body></html>で囲って出力するとかそんなの。
詳しくは終わりの方のサンプルをみてくれ。
これは Ruby on Rails(とその仲間たち)にある便利機能のひとつ。
ついでにいうとSmartyにはない機能のひとつ。
今まで知らなかった人はぜひ試してくれ。チョー便利だから。
前回はたくさんのブックマークありがと。
コメントで「男前テンプレート」と名前がついてたので、勝手に採用。
あと、これ以上の機能追加はしないので、各自勝手に改造して使ってくれ(そのためにコメントをつけてるから)。何でも人任せにするな。
コード:
<?php /* * OtokomaeTemplate.php -- レイアウトテンプレートに対応した90行のテンプレートエンジン * * - レイアウトテンプレート中で echo $_content; とすると中身が表示される。 * - テンプレート中で設定した変数をレイアウトテンプレートで使うことが可能。 * - レイアウトテンプレート名をテンプレート側で指定することも可能。 * - 使い方: * require_once('OtokomaeTemplate.php'); * $TEMPLATE_DIR = 'templates'; // 省略可、パーミッションに注意 * $LAYOUT_TEMPLATE = 'layout.php'; // 省略可 * $context = array('title'=>'Example', * 'list'=>array(10,'<A&B>',NULL)); * include_template('template.php', $context); * - 要 PHP 5.1 or later * - ライセンス: public domain (自由に改造してね) */ /* * 設定用のグローバル変数 */ $TEMPLATE_DIR = NULL; /* テンプレートを探すディレクトリ */ $LAYOUT_TEMPLATE = NULL; /* レイアウトテンプレートのファイル名 */ /* * テンプレートを読み込んで実行する。 * $_context は変数名をキー、値を要素とする連想配列。 * $_layout はレイアウトテンプレートのファイル名。 * - NULL または省略した場合は $LAYOUT_TEMPLATE を使う。 * - FALSE ならレイアウトテンプレートを使わない。 * - $_context['_layout'] = '...'; とすればテンプレート側でも指定可能。 */ function include_template($_filename, $_context, $_layout=NULL) { global $LAYOUT_TEMPLATE; $_content = render_template($_filename, $_context); if (@$_context['_layout'] !== NULL) // テンプレート側で指定された場合は $_layout = $_context['_layout']; // それを使う。 elseif ($_layout === NULL) // 引数で指定されなかった場合は $_layout = $LAYOUT_TEMPLATE; // デフォルトのファイル名を使う。 if ($_layout) { $_context['_content'] = $_content; // レイアウトテンプレート中で使う変数 $_content = render_template($_layout, $_context); } echo $_content; // or return $_content; } /* * テンプレートを読み込んで実行し、その結果を文字列で返す。 * include_template() の実体。 */ function render_template($_filename, &$_context) { $_cachename = convert_template($_filename); extract($_context); // 連想配列をローカル変数に展開 ob_start(); include($_cachename); // テンプレートを読み込んで実行 return ob_get_clean(); } /* * テンプレートファイルを読み込み、convert_string() で置換してから * キャッシュファイルに書き込む。読み込み時のロックは省略。 * (file_get_contents() もファイルロックできるようにしてほしいなあ。) */ function convert_template($filename) { global $TEMPLATE_DIR; if (! file_exists($filename) && $TEMPLATE_DIR) $filename = "$TEMPLATE_DIR/$filename"; $cachename = $filename . '.cache'; if (! file_exists($cachename) || filemtime($cachename) < filemtime($filename)) { $s = file_get_contents($filename); $s = convert_string($s); file_put_contents($cachename, $s, LOCK_EX); // LOCK_EX サポートは 5.1.0 から } return $cachename; } /* * テンプレートの中身を置換する。 * - '#{...}' を 'echo ...;' に置換 * - '%{...}' を 'echo htmlspecialchars(...);' に置換 * - ついでにXML宣言も置換 */ function convert_string($s) { $s = preg_replace('/^<\?xml/', '<<?php ?>?xml', $s); $s = preg_replace('/#\{(.*?)\}/', '<?php echo $1; ?>', $s); $s = preg_replace('/%\{(.*?)\}/', '<?php echo htmlspecialchars($1); ?>', $s); return $s; } ?>
<?php require_once('OtokomaeTemplate.php'); $TEMPLATE_DIR = 'templates'; $LAYOUT_TEMPLATE = 'layout.php'; $context = array('list'=>array(10,'<A&B>',NULL)); include_template('template.php', $context); ?>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <body> <h1>%{$title}</h1> <div id="maincontent"> <!-- テンプレートの内容 --> <?php echo $_content; ?> <!-- /テンプレートの内容 --> </div> </body> </html>
<?php // レイアウトテンプレート名をテンプレート中で指定する場合 ?> <?php //$_context['_layout'] = 'mylayout.php'; ?> <?php // レイアウトで使用する変数をテンプレート中で指定する場合 ?> <?php $_context['title'] = 'レイアウトのサンプル'; ?> <table> <?php foreach ($list as $i=>$item): ?> <tr bgcolor="#{$i % 2 ? '#FFCCCC' : '#CCCCFF'}"> <td>#{$i}</td> <td>%{$item}</td> </tr> <?php endforeach ?> </table>
出力例:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <body> <h1>レイアウトのサンプル</h1> <div id="maincontent"> <!-- テンプレートの内容 --> <table> <tr bgcolor="#CCCCFF"> <td>0</td> <td>10</td> </tr> <tr bgcolor="#FFCCCC"> <td>1</td> <td><A&B></td> </tr> <tr bgcolor="#CCCCFF"> <td>2</td> <td></td> </tr> </table> <!-- /テンプレートの内容 --> </div> </body> </html>
いくつか補足: